| 1 | = Specifying plan classes = |
| 2 | |
| 3 | You can specify plan classes using an XML configuration file with the format |
| 4 | {{{ |
| 5 | <plan_classes> |
| 6 | <plan_class> |
| 7 | ... specification of a plan class |
| 8 | </plan_class> |
| 9 | ... more plan class specifications |
| 10 | </plan_classes> |
| 11 | }}} |
| 12 | |
| 13 | The specification of a plan class has the following format. |
| 14 | All elements except '''<name>''' are optional. |
| 15 | |
| 16 | |
| 17 | <name>X</name> :: the name of the plan class |
| 18 | <virtualbox/> :: VirtualBox application |
| 19 | <is64bit/> :: 64-bit application |
| 20 | <min_cpus>x</min_cpus> :: requires at least X CPUs (may be fractional) |
| 21 | <max_threads>x</max_threads>:: use at most this many CPUs |
| 22 | <avg_ncpus>x</avg_ncpus>:: average # CPUs used. Use for non-compute-intensive apps; |
| 23 | for others it's calculated for you. |
| 24 | <projected_flops_scale>x</projected_flops_scale>:: in estimating this app's FLOPS on a given host, |
| 25 | multiply peak device speeds by this (0 < x <= 1). For GPU apps, use 0.2 or so |
| 26 | <os_regex>regex</os_regex>:: use only hosts whose operating system name matches the given regular expression |
| 27 | <cpu_feature>x</cpu_feature> :: a required CPU feature (such as sse3). You can include more than one. |
| 28 | |
| 29 | The following lets you use a project preference to decide whether to use the app version: |
| 30 | <project_prefs_tag>x</project_prefs_tag>:: the name of the tag |
| 31 | <project_prefs_regex>x</project_prefs_regex>:: the contents must match this regular expression |
| 32 | |
| 33 | Fields for GPU apps: |
| 34 | |
| 35 | <gpu_type>X</gpu_type>:: the GPU type (nvidia, amd, or intel) |
| 36 | <cpu_frac>x</cpu_frac>:: the fraction of total FLOPs that are done by the CPU. |
| 37 | This is used to calculate CPU usage and estimated FLOPS. |
| 38 | <min_gpu_ram_mb>x</min_gpu_ram_mb>:: The minimum amount of GPU RAM. |
| 39 | This is needed because older clients report total RAM |
| 40 | but not available RAM. |
| 41 | <gpu_ram_used_mb>x</gpu_ram_used_mb>:: require this much available GPU RAM |
| 42 | <gpu_peak_flops_scale>x</gpu_peak_flops_scale>:: scale GPU peak speed by this |
| 43 | <ngpus>x</ngpus>:: how many GPUs will be used |
| 44 | <min_driver_version>x</min_driver_version>:: minimum display driver version |
| 45 | <max_driver_version>x</max_driver_version>:: maximum display driver version |
| 46 | <cuda/>:: CUDA application (NVIDIA) |
| 47 | <cal/>:: CAL application (AMD) |
| 48 | <opencl/>:: OpenCL application |
| 49 | <gpu_utilization_tag>x</gpu_utilization_tag>:: you can use a project-specific preferences to let users |
| 50 | scale the # of GPUs used. |
| 51 | This is the tag name. |
| 52 | |
| 53 | Fields for NVIDIA GPU apps: |
| 54 | |
| 55 | <min_nvidia_compcap>x</min_nvidia_compcap>:: minimum compute capability |
| 56 | <max_nvidia_compcap>x</max_nvidia_compcap>:: maximum compute capability |
| 57 | |
| 58 | Fields for CUDA apps |
| 59 | |
| 60 | <min_cuda_version>x</min_cuda_version>:: minimum CUDA version |
| 61 | <max_cuda_version>x</max_cuda_version>:: maximum CUDA version |
| 62 | |
| 63 | Fields for OpenCL apps |
| 64 | |
| 65 | <min_opencl_version>x</min_opencl_version>:: minimum OpenCL version |
| 66 | <max_opencl_version>x</max_opencl_version>:: maximum OpenCL version |
| 67 | |
| 68 | Fields for VirtualBox apps |
| 69 | |
| 70 | <min_vbox_version>x</min_vbox_version>:: minimum VirtualBox version |
| 71 | <max_vbox_version>x</max_vbox_version>:: maximum VirtualBox version |