| 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 | |