CPU Scheduler
From Unofficial BOINC Wiki
Contents |
[edit] General
The portion of the Work Scheduler that decides which CPU will get which Result to process during the Work Scheduling Process.
[edit] Time-slicing
Starting with version 4.00, the BOINC Client Software does time-slicing. This means that the BOINC Daemon may switch back and forth between results of different BOINC Powered Projects. This is done in a way that allocates CPU Time according to the "Resource Shares" you have assigned to each BOINC Powered Project that is "attached" to this computer.
For example, suppose you participate in SETI@Home with a Resource Share of 100 and Predictor@Home with a Resource Share of 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.
[edit] Preemption
When the BOINC Daemon switches from one Science Application to another, the first Science Application is said to be preempted. BOINC Daemon 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): Science 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 one or more of the Science Applications checkpoint infrequently.
- Leave suspended applications in memory: Science Applications are preempted by suspending them; they remain in Physical Memory / Virtual Memory while preempted (they don't necessarily occupy physical memory, but will based on available free RAM).
[edit] UCB Source
[edit] Copyright ©
- 2005 University of California
- 2005 Paul D. Buck
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.

