Changes between Version 9 and Version 10 of AppPlan


Ignore:
Timestamp:
Jan 22, 2009, 11:44:19 AM (15 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AppPlan

    v9 v10  
    77It works as follows.
    88
    9 An app_version record (in the server DB) has a character string field '''plan_class'''.
    10 This identifies the range of processing resources that the application
    11 requires and is able to use.
    12 You can define these however you like,
    13 e.g. "cuda_1.1" apps require a CUDA-enabled GPU,
    14 "mt32" is a multithreaded app able to use 32 CPUs, etc.
     9An app version has an associated '''plan_class''': a character string, possibly empty.
     10The plan class is encoded in the app version's directory name,
     11as used by [UpdateVersions update_versions].
    1512
    16 The scheduler is linked with a project-supplied function
     13The scheduler is linked with a function
    1714{{{
    1815bool app_plan(SCHEDULER_REQUEST &sreq, char* plan_class, HOST_USAGE&);
    1916}}}
    20 The '''sreq''' argument contains various data:
     17The '''sreq''' argument contains:
    2118 * in '''sreq.host''' field, a description of the host's processors and memory
    22  * in '''sreq.global_prefs''' field, a parsed version of the user's global preferences
    23  * in '''sreq.coprocs''', a list of its coprocessors.
     19 * in '''sreq.global_prefs''' field, the user's global preferences
     20 * in '''sreq.coprocs''', a list of the hosts's coprocessors.
    2421
    2522When called with a particular SCHEDULER_REQUEST and plan class,
     
    4340The client uses '''flops''' to estimate job completion times.
    4441
    45 The scheduler reply includes, for each job, an XML encoding of HOST_USAGE.
     42You are free to define your own set of plan classes,
     43and to link your own '''app_plan()''' function with the scheduler.
     44The BOINC scheduler comes with a default '''app_plan()''' (in sched/sched_plan.cpp).
     45This defines the following plan classes:
     46
     47 '''mt''':: An application that can use anywhere from 1 to 64 threads, and whose speedup with N CPUs is .95N.  It is passed a command-line argument '''--nthreads N'''.
     48 '''cuda''':: A CUDA application that requires 254MB of GPU RAM, and that uses .5% as many CPU FLOPS as GPU FLOPS.
     49 '''nci''':: A non-CPU-intensive application that uses 1% of a CPU (this will cause the BOINC client 6.7+ to run it at non-idle priority).
     50
    4651
    4752