New Blog Post by Dr. Pande
Posted: Fri Jul 12, 2013 12:03 am
x
Community driven support forum for Folding@home
https://foldingforum.org/
"Uses a full core" and "needs a full core" are slightly different cases. Most of the time the "use" seems to be just spin waiting for the (NVidia) GPU. Ideally, a device (HDD/SDD for example) is interrupt driven. A thread sets up a task for it, sends the task to the OS which then suspends the thread. Once the OS/driver receives an interrupt from the device (request completed), it resumes the thread: "here's the stuff you asked for, now go do something with it."TheWolf wrote:Many have overclocked CPU's, others don't, since it use a full CPU core "in most cases" per GPU naturally I would think the difference would be cause by the CPU type in use and if OCed or not.
Also not to leave out if the GPU is overclocked or not.
Your thoughts?
Code: Select all
// a small subtask has been started
while( GPU_is_busy ) {
// Lean & Mean:
// do absolutely nothing else but loop, core at 100%
}
// proceed with new small subtask
Code: Select all
// a small subtask has been started
while( GPU_is_busy ) {
// subtask is expected to finish soon
// but not quite soon enough to be rude
// so let's give the OS a chance to schedule
// something else, and *hopefully* it'll resume us
// "just on time" if that happens
yield();
}
// proceed with new small subtask
Code: Select all
// a small subtask has been started
while( GPU_is_busy ) {
// OS provides a high resolution timer
// compared to expected subtask duration, so
// we'll either let the CPU core sleep for a while
// or let the OS do something else with it for
// a fixed duration
sleep( x );
}
// proceed with new small subtask