Time-slicing
Starting with version 4.00, the BOINC core client does time-slicing. This means that the core client may switch back and forth between results of different projects. This is done in a way that allocates CPU time according to the 'resource shares' you have assigned to each project.
For example, suppose you participate in SETI@home with resource share 100 and Predictor@home with resource share 200. A single-processor machine might be scheduled as follows:
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
...
A two-processor machine might be scheduled as follows:
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
In every 3 hour period, your computer spends 4 hours on Predictor@home and 2 hours on SETI@home, which is the desired ratio.
This feature is necessary to handle projects like Climateprediction.net, whose work units take a long time (1 or 2 months) to complete on a typical computer. Without time-slicing, your computer would have to finish an entire work unit before it could start working on a different project.
Preemption
When BOINC switches from one application to another, the first application is said to be preempted. BOINC can do preemption in two different ways; you can select this as part of your General Preferences.
Don't leave the suspended applications in memory (default). Applications are preempted by killing them; they are later restarted, and resume from their last checkpoint. This saves virtual memory (swap space) but can waste CPU time, especially if applications checkpoint infrequently.
Leave suspended applications in memory. Applications are preempted by suspending them; they remain in virtual memory while preempted (they don't necessarily occupy physical memory).
翻译BY VMZY
Time-slicing(时间分片)
从4.00版开始,BOINC核心客户端支持time-slicing。这意味着,核心客户会在不同的项目之间反复交换。 它根据您为各个项目分配的'资源份额'分配Cpu-time。
例如,假设您参加SETI@home分配资源份额100和Predictor@home分配资源份额200。单处理器机器也许会按如下分配:
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
...
双处理器机器也许会按如下分配:
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上花费2个小时,并在SETI@home上花费1个小时,即预期的比率。
这个功能在处理象Climateprediction.net项目时是必要的,因为它在一台典型的计算机完成一个WU的时间很长(1或2个月)。没有time-slicing,您的计算机会必须完成整个WU后,它才能开始研究另外一个项目。
替换
当BOINC从一种应用程序转换到另一个时,第一应用程序被替换。BOINC可以用二种不同方式替换; 您能作为您的General Preferences一个选项选择。
不要把暂停的应用程序留在内存中(缺省)。应用程序会直接被关闭;他们以后会从他们的前个check point存盘点重新开始。这种方式节省虚拟内存(交换空间)但可能浪费Cpu-time,特别是如果应用程序的check point存盘点很少。
把暂停的应用程序留在内存中。应用程序会被暂停;他们留在虚拟内存中(他们不占物理内存)。
[此贴子已经被作者于2004-9-4 12:03:26编辑过]
[ Last edited by Youth on 2005-4-27 at 13:03 ]