Changes between Version 26 and Version 27 of AppPlan


Ignore:
Timestamp:
Jun 6, 2012, 10:45:32 AM (12 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AppPlan

    v26 v27  
    11= Plan classes =
    22
    3 '''Plan classes''' is a mechanism that lets the scheduler decide,
    4 using project-supplied logic:
     3'''Plan classes''' are policies that allow the BOINC scheduler to decide:
    54
    65 * whether an application should run on a particular host;
     
    87 * how fast it is expected to run.
    98
    10 It works as follows.
     9Each app version has an associated plan class;
     10multiple app versions may have the same plan class.
     11See [AppVersionNew how to specify an app version's plan class].
     12Each plan class has a textual name.
     13The default plan class (whose name is empty) is for
     14single-threaded CPU applications.
    1115
    12 An app version has an associated '''plan_class''': a character string, possibly empty.
    13 See [AppVersionNew how to specify an app version's plan class].
     16There are a number of predefined plan classes (see below).
     17In addition, you can define your own plan classes in two ways:
    1418
    15 When deciding whether to send a job to a host,
    16 the scheduler examines all latest-version app_versions for the platform,
    17 calls '''app_plan()''' for each,
    18 and selects the one for which '''projected_flops''' is greatest.
     19 * using an [AppPlanSpec XML configuration file]
     20 * by [PlanClassFunc expressing the policy in C++ code].
    1921
    20 If '''gpu_ram''' is nonzero, the BOINC client (6.10.25+)
    21 won't start the app unless that much RAM is available on the allocated GPU.
     22== Predefined plan classes ==
    2223
     24The following plan classes are predefined:
    2325
    24 This defines the following plan classes:
    25 
    26  '''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'''.
    27  '''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).
     26 '''mt''':: An application that can use anywhere from 1 to 64 threads, and whose speedup with N CPUs is .95N.
     27   It is passed a command-line argument '''--nthreads N'''.
     28 '''nci''':: A non-CPU-intensive application that uses 1% of a CPU
     29   (this will cause the BOINC client 6.7+ to run it at non-idle priority).
    2830 '''sse3''':: A CPU app that requires the SSE3 CPU feature.
    2931 '''vbox32''':: An app that runs in a 32-bit VirtualBox VM
    3032 '''vbox64''':: An app that runs in a 64-bit VirtualBox VM
    31 Each coprocessor application has an associated [wiki:AppPlan plan class]
    32 which determines the hardware and software resources that are needed to run the application.
    3333
    34 '''NOTE: plan classes for AMD GPUs must contain the substring 'ati';
    35 plan classes for NVIDIA GPUs much contain either 'nvidia' or 'cuda' as a substring.'''
     34=== GPU plan classes ===
     35
     36Note: plan classes containing the substrings 'nvidia', 'cuda', and 'ati' are reserved
     37for GPU applications.
     38Plan classes for AMD GPUs must contain the substring 'ati';
     39plan classes for NVIDIA GPUs much contain either 'nvidia' or 'cuda' as a substring.
    3640
    3741The following plan classes for NVIDIA are pre-defined:
     
    6165If there is a choice, the scheduler will give preference to later classes,
    6266i.e. it will pick cuda23 over cuda.
    63 
    64 Once you have chosen a plan class for your executable,
    65 create an [wiki:UpdateVersions app version], specifying its plan class.
    66 
    67 
    68 '''Note: plan classes containing the substrings 'nvidia', 'cuda', and 'ati' are reserved
    69 for GPU applications.'''