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. |
| 9 | An app version has an associated '''plan_class''': a character string, possibly empty. |
| 10 | The plan class is encoded in the app version's directory name, |
| 11 | as used by [UpdateVersions update_versions]. |
45 | | The scheduler reply includes, for each job, an XML encoding of HOST_USAGE. |
| 42 | You are free to define your own set of plan classes, |
| 43 | and to link your own '''app_plan()''' function with the scheduler. |
| 44 | The BOINC scheduler comes with a default '''app_plan()''' (in sched/sched_plan.cpp). |
| 45 | This 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 | |