Changes between Version 26 and Version 27 of AppPlan
- Timestamp:
- Jun 6, 2012, 10:45:32 AM (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AppPlan
v26 v27 1 1 = Plan classes = 2 2 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: 5 4 6 5 * whether an application should run on a particular host; … … 8 7 * how fast it is expected to run. 9 8 10 It works as follows. 9 Each app version has an associated plan class; 10 multiple app versions may have the same plan class. 11 See [AppVersionNew how to specify an app version's plan class]. 12 Each plan class has a textual name. 13 The default plan class (whose name is empty) is for 14 single-threaded CPU applications. 11 15 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]. 16 There are a number of predefined plan classes (see below). 17 In addition, you can define your own plan classes in two ways: 14 18 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]. 19 21 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 == 22 23 24 The following plan classes are predefined: 23 25 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). 28 30 '''sse3''':: A CPU app that requires the SSE3 CPU feature. 29 31 '''vbox32''':: An app that runs in a 32-bit VirtualBox VM 30 32 '''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.33 33 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 36 Note: plan classes containing the substrings 'nvidia', 'cuda', and 'ati' are reserved 37 for GPU applications. 38 Plan classes for AMD GPUs must contain the substring 'ati'; 39 plan classes for NVIDIA GPUs much contain either 'nvidia' or 'cuda' as a substring. 36 40 37 41 The following plan classes for NVIDIA are pre-defined: … … 61 65 If there is a choice, the scheduler will give preference to later classes, 62 66 i.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 reserved69 for GPU applications.'''