バージョン4+ での CPU スケジューリング |
|
バージョン4から、BOINCのコア・クライアントは、 タイム・スライシングを実施するようになりました。 コア・クライアントが何をするのかというと、 異なるプロジェクトのリザルト計算の間を行ったり来たりするのです。 参加者が個々のプロジェクトに割り当てた「資源占有率」(resource shares) に従ってCPU時間が割り当たるように、切替えを行います。 例を挙げましょう。 SETI@homeに資源占有率 100、 Predictor@home に資源占有率 200 で参加していたとします。 プロセッサーが1つの計算機では、下の例のようなスケジューリングがおこります。
1:00 - 2:00: SETI@home 2:00 - 3:00: Predictor@home 3:00 - 4:00: Predictor@home 4:00 - 5:00: SETI@home 5:00 - 6:00: Predictor@home 6:00 - 7:00: Predictor@home ...プロセッサーが2つあるマシンだったら、下のような例がありうるでしょう。
CPU 0 CPU 1
1:00 - 2:00: Predictor@home SETI@home
2:00 - 3:00: Predictor@home SETI@home
3:00 - 4:00: Predictor@home Predictor@home
4:00 - 5:00: Predictor@home SETI@home
5:00 - 6:00: Predictor@home SETI@home
6:00 - 7:00: Predictor@home Predictor@home
3時間ごとにみると、この計算機は Predictor@homeに4時間のCPU時間を
割り当て、2時間を SETI@home に割り当てています。 この比率は
指定した望ましい比になっています。
この機能を必要とするプロジェクトの例として、 Climateprediction.net, を挙げることができます。 このプロジェクトのワークユニットを1つ計算完了するには、 典型的な計算機では、長い時間 (1〜2ヶ月)がかかります。 タイムスライシングのしくみがないと、別のプロジェクトのワークユニットの 計算を始める前に、[長い時間がかかる]ワークユニットを まるまる1つ終わらせなければならなくなるでしょう。
BOINCがアプリケーションをあちらからこちらへと切替えるとき、 もともと走っていたアプリケーションは、中断された/preempted と言います。 BOINCは以下の2つのやり方のどちらかで、 中断を行うことができます。 General プレファレンスの中で、 どちらの中断の仕方を使うかを指定することができます。
最終更新時刻 00:47:51, 2006年08月12日(JST)
Copyright © 2010 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 © 2010 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.