Changes between Initial Version and Version 1 of Ticket #266


Ignore:
Timestamp:
Jun 12, 2007, 1:24:17 PM (17 years ago)
Author:
Nicolas
Comment:

Here's another advantage of multithreaded apps: Imagine an app that uses 300MB of RAM. With current BOINC, somebody with 8 cores/CPUs (two quad-cores?) would run 8 instances of the app (different workunits) in order to take advantage of all the computing power. That means BOINC apps in total would use 2.3GB of RAM! If, instead, that app was multithreaded, it could be a single instance using, say, 350MB of RAM and with 8 threads. That is, doing a single workunit 8 times as fast instead of 8 workunits at the same time*. Keeps all the hungry CPUs happy, with 1/8 of the needed RAM. The final throughput (workunits per day) would be around the same.

  • actually, I have seen a SETI user who had just installed BOINC for the first time (on a dual-core) who was surprised it was "two WUs at a time" instead of "single multithreaded WU twice as fast" - but I managed to explain him the reasons.

This feature would be definitely required when Intel releases that 80-core processor commercially (although many years till that happens, if it happens). The question is "How much RAM would you need to run eighty workunits at the same time?" I think with mostly any current BOINC project, the amount of memory needed would reach "insane" values...

There could be issues with credits using multithreaded apps, though... Can't think exactly what, but I'm sure there's something :)

(PS: I fixed the bulleted list on the description)

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #266

    • Property Keywords workunit added; work units removed
    • Property Type changed from Enhancement to Task
  • Ticket #266 – Description

    initial v1  
    55Boinc will need to be able to cope with huge multithreaded work units in the future (in version 7.0 or 8.0 I guess).
    66
    7 Quote :
    8   sending out multicore-ready models (via MPI) is something I've been toying with, esp for the higher-res models. although I'm not sure how BOINC will react to that, I suppose it couldn't stop our monitor job from launching a 2 or 4-CPU-usage model, but it would probably schedule other work to be done on these CPUs so we'd all be "fighting" for the same cores etc.
     7Quote:
     8> sending out multicore-ready models (via MPI) is something I've been toying with, esp for the higher-res models. although I'm not sure how BOINC will react to that, I suppose it couldn't stop our monitor job from launching a 2 or 4-CPU-usage model, but it would probably schedule other work to be done on these CPUs so we'd all be "fighting" for the same cores etc.
    99
    1010[http://boinc.berkeley.edu/dev/forum_thread.php?id=1863&nowrap=true#10839]
     
    1818Several ways to handle multithreaded jobs come to mind, all with different problems...
    1919
    20 * No limit on threads, exclusive access to the machine for it's timeslot (and debt would be charged per physical core available).  But if the work unit's thread usage fluctuates over time, that'd lead to wasted CPU time.
     20 * No limit on threads, exclusive access to the machine for it's timeslot (and debt would be charged per physical core available).  But if the work unit's thread usage fluctuates over time, that'd lead to wasted CPU time.
    2121
    22 * or reserve a number of cores but allow other jobs to run at the same time on the remaining cores  (e.g., 1 job exclusively using 2 threads, + 2 jobs using 1 thread each on a 4 core box)
     22 * or reserve a number of cores but allow other jobs to run at the same time on the remaining cores  (e.g., 1 job exclusively using 2 threads, + 2 jobs using 1 thread each on a 4 core box)
    2323
    24 * or let multiple work units fight for CPU time (i.e., allow more threads of work than there are physical cores, and let the operating system sort it all out.  4 jobs using 4 cores, any number of active threads).  Risk of CPU starvation?
     24 * or let multiple work units fight for CPU time (i.e., allow more threads of work than there are physical cores, and let the operating system sort it all out.  4 jobs using 4 cores, any number of active threads).  Risk of CPU starvation?
    2525
    2626The work-request process might need to consider memory size (i.e., don't simultaneously issue 4 5GB work units to a PC with 8GB and 4 cores since only one can practically run at a time).