以下は JE2BWM ほかが作成した翻訳 です。 原文は University of California より GFDL で配付されており、 この翻訳も GFDL に従います。
原文: Workunits   (翻訳対象の更新日付は 6:53 PM UTC, April 28 2006 です)。

ワークユニット

boinc.gif
(英語のみ)

ワークユニットは、実行するべき計算を記述したものです。 ワークユニット1つは、データベーステーブルの中の1行(row)で表現されています。

BOINCは、ワークユニットを生成するための ユーティリティプログラムとC言語の関数を提供します。

ワークユニットが作られたときに指定される属性には以下のものがあります:

name 文字列で、ワークユニットの名前を表します。 当該プロジェクトのすべてのワークユニットに渡って一意 [、つまり重複がないもの] とします。
application 意図する計算をどの アプリケーション が実行するかを表します。 ワークユニットは、1つのアプリケーション[という、版より広い概念] に結びついています。 特定のアプリケーションの版や、[どれ以上どれ以下といった] 版の範囲に対応づけられているのではありません。 もし、入力データ形式を変更してしまって、古い版と非互換が生じたら、 [新しい版をつくるのでは済まなくて]、 新しいアプリケーションをもう一つ作らなければなりません。 このような事態は、XMLデータ形式を採用して いれば、かなりの場合避けることができます。
input files 入力ファイルの一覧です。 [ファイルごとに、] その名前と、アプリケーションが 各ファイルを参照するときの呼び名を記述します。 典型的にはデータサーバからダウンロードすることがほとんどです。 しかし、 <generate_locally/> 要素があるときは、 そのファイルはクライアントで生成されます (典型的には同じアプリケーションが前に動作したときに作られる)。 アプリケーションはファイル・ロックを使って、このファイルを2つの ジョブが同時に作成しないようにしなければなりません。
priority 優先度。 優先度の高い仕事が先に処理されます。
batch バッチ処理数。 ワークユニットの群に対して操作(キャンセルあるいは、優先度の変更など) をするときに採用できる整数値。
資源推定と限界値
rsc_fpops_est [このワークユニットの]計算をやり遂げるのに必要な 浮動小数点演算の平均回数予測値です。 ホストが与えられたときに、 そのホストではどのくらいの時間で計算が終わるかを評価するために使います。
rsc_fpops_bound [このワークユニットの]計算をやり遂げるのに必要な 浮動小数点演算の平均回数の上限値です。 この上限値をこえたら、[コア・クライアントによって]、 アプリケーションは中断させられます。
rsc_memory_bound [このワークユニットの計算をするときの、] 仮想記憶のワーキングセットサイズ訳注3の上限値です。 この値よりも多くのメモリ訳注4 が使用できるホストに対してだけ、このワークユニット[の仕事]が送られます。 この上限値をこえたら、[コア・クライアントによって]、 アプリケーションは中断させられます。
rsc_disk_bound このアプリケーションで使われる最大ディスク使用量の上限値です。 使用量には、入力ファイル、出力ファイル、一時ファイルのすべてが含まれます。 この値よりも多くのディスク領域が使用できるホストに対してだけ、 このワークユニット[の仕事]が送られます。 この上限値をこえたら,[コア・クライアントによって]、 アプリケーションは中断させられます。
冗長性とスケジューリング属性
delay_bound リザルト訳注5をクライアントに送出してから答えを受け取るまでの時間の上限値(単位は秒)。 スケジューラは、予測した計算完了までの時間がこの値をこえるようなホストには、 リザルトを送ることはありません。 クライアントがこの時間内に結果を返さないと、 サーバは送ったリザルトを「断念」して、他のクライアントに任せるべく、別のリザルトを生成します。

典型的なPCでのワークユニット平均処理時間の数倍の値を、ここに設定してください。 設定値が小さすぎると、送り出せないリザルトが出てきてしまい、 そのワークユニットには異常のフラグが立ちます。 設定値が大きすぎると、リザルトが返ってくるまでの時間にその分遅れが出るかもしれません。

min_quorum 定足数訳注6です。 冗長性のある計算をしたいときは、 この値を2よりも大きく設定してください。
target_nresults リザルトをいくつ初期作成するかを指定します。 この値は、少なくともmin_quorum(定足数)以上の値でなければなりません。 それより大きい値を設定する意味は、リザルトがどこかで失われる率を 考えに入れるということと、定足数に達する時間を早める という意味があり得ます。
max_error_results この値より多くのクライアントが、異常なリザルトを返してきたら、 対応するワークユニットには異常があると宣言されます。 つまり、それ以降、 [サーバはそのワークユニットの]リザルトを送出するのを止めて、 アシミレイター訳注7を起動します。 この防御策は、 アプリケーションをクラッシュさせるようなワークユニットに 対抗するためのものです。
max_total_results 対象のワークユニットについて、リザルトの数がこの値を超えると、 ワークユニットには異常があると宣言されます。 この防御策は、決して計算結果が報告されないワークユニットに対抗するためのものです。 (たとえば、そのワークユニットがコア・クライアントをクラッシュさせてしまうなど。 )
max_success_results このワークユニットについて、成功裏に計算完了したリザルトの数がこの値を超えても、 まだ合意がとれない場合、そのワークユニットには異常があると宣言されます。 この防御策は、非決定的な計算結果を作りだしてしまうワークユニットに対抗するためのものです。

ワークユニットには、動的に変化する属性があります。

error mask エラーマスク。 各種のエラー状況をしめす以下のビットマスクです。
  • WU_ERROR_COULDNT_SEND_RESULT:
    BOINC スケジューラは、そのワークユニットを多数(100台程度)の計算機のどれにも送信できませんでした。 おそらく、そのワークユニットの資源への要件(ディスク量、メモリ量、CPU) が、計算機に対して大きすぎたのか、あるいは、それらの計算機のプラットフォームでは、 [必要とする] アプリケーションの版が使えなかったからでしょう。 この場合、BOINC はそのワークユニットの処理を「断念」します。
  • WU_ERROR_TOO_MANY_ERROR_RESULTS:
    このワークユニットについて、失敗で返ってきたリザルトが多すぎます。 (失敗の状況は、アップロードまたはダウンロードに問題があったか、 クライアントがクラッシュしたかです)
  • WU_ERROR_TOO_MANY_SUCCESS_RESULTS:
    計算成功で戻ってきたリザルトがとても多く得られたにもかかわらず、 合意が得られませんでした訳注1 こうなるのは、アプリケーションが非決定的訳注2 なためかもしれません。
  • WU_ERROR_TOO_MANY_TOTAL_RESULTS: 合計すると、このワークユニットに過大な数のリザルトが送られました。

これらのエラー状況のいずれかが成り立つ場合、BOINC はそのワークユニットの処理を 「断念」し、それ以上 リザルトの送出を行いません。


(訳注1):合意が得られない
結果の内容に充分な数の一致が得られなかったという意味。
(訳注2):非決定的(nondeterministic)
ここでは、アプリケーションが同じ入力で同じ条件で正常に繰り返し動いたとしても、 毎回ばらばらな結果を出す性質をもっていること。
(訳注3):ワーキングセット
アプリケーションによって使用されるメモリの総量。
狭い意味では、現在、物理メモリ上に載っていて、ページインなしに効率よく アプリケーションがアクセスできる必要のある範囲を指すこともありますが、 ここではもっと広く、仮想記憶を通じて割り当てたメモリの総量のことらしい。
(訳注4): メモリ
原文ではRAM。
(訳注5): BOINCのリザルト(results)
リザルトは、計算の結果という意味だけではありません。 結果を意味することはもちろんですが、計算が始まる前に クライアントにばらまかれる個々の仕事も、リザルト(results)と呼んでいます。 つまり、 1つのワークユニットを多数のクライアントにばらまくとき、ばらまかれた単位のものを、 (計算が終わっていようと開始前であろうと)リザルトと呼んでいます。 これを「結果」と訳すと違和感があるので、カタカナで「リザルト」と訳します。
(訳注6): min_quorum (定足数)
冗長に計算をさせる場合、成功した計算結果が 複数返ってきて、それがこの定足数を超えると、典型的には、 その中に結果の内容がほぼ一致するものがある程度以上集まっているかどうかを調べます。 これがうまくいくと、 ワークユニットの計算にまともな結果が得られたと、BOINCのしくみでは判断します。 詳しくは、冗長性とエラー を参照してください。
(訳注7):assimilator
ワークユニットごとの計算結果を確定させて、プロジェクトのデータベースに記憶します。 詳しくは、冗長性とエラー を参照してください。

 


BOINCの訳のメインページに戻る | (原文のメインページに戻る)
 

最終更新時刻 00:52:22, 2006年08月12日(JST)
Copyright © 2008 University of California. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
Copyright © 2008 Komori Hitoshi(je2bwm at jarl.com). Japanese translation from English web pages on BOINC. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.