Changes between Version 46 and Version 47 of AppPlanSpec
- Timestamp:
- Jul 26, 2018, 12:31:28 PM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AppPlanSpec
v46 v47 25 25 All elements except '''<name>''' are optional. 26 26 In version numbers, M is major, m is minor, R is release. 27 28 === General === 27 29 28 30 <name>X</name> :: the name of the plan class; must obey the [AppPlan#Planclassnames rules for names]. … … 65 67 <max_batch>x</max_batch>:: maximum allowed batch # 66 68 67 === Fields for multicore apps===68 69 The following distinguishesbetween "logical" and "physical" CPUs.69 === Hyperthreading === 70 71 We distinguish between "logical" and "physical" CPUs. 70 72 Processors with hyperthreading have two logical CPUs per physical CPUs. 71 Pre-7.14 versions of the BOINC client measure and report only the number N of logical CPUs. 72 For these clients, we conservatively assume that the number of physical CPUs is max(1, N/2). 73 73 The numbers of usable logical and physical CPUs on a host are denoted NLC and NPC. 74 74 "Usable" refers to computing preferences, 75 75 which allow volunteers to limit the % of CPUs (logical and physical) that can be used. 76 NUL and NUP denote the number of usable logical and physical CPUs on the host. 77 78 Floating-point intensive apps should express their parallelism in terms of physical CPUs, 76 77 Pre-7.14 versions of the BOINC client measure and report only NLC. 78 For these clients, we conservatively assume that NPC is max(1, N/2). 79 80 <physical_threads>[0|1]</physical_threads> :: If set, each application thread uses a physical CPU; 81 the default is logical CPU. 82 83 Floating-point intensive apps should use this, 79 84 since pairs of logical CPUs generally share an FPU. 80 VM-based apps should do so as well, since VMWare may refuse to create a VM with more than NUP threads. 81 82 <min_ncpus>N</min_ncpus> :: run only on hosts with NUL >= N. 83 <min_ncpus_phys>N</min_ncpus_phys> :: run only on hosts with NUP >= N. 84 <max_threads>N [M]</max_threads>:: Use min(N, NUL-M) logical CPUs (if not specified, M is zero). 85 <max_threads_phys>N [M]</max_threads_phys>:: Use min(N, NUP-M) physical CPUs (if not specified, M is zero). 85 Multi-thread VM-based apps should do so as well, since VMWare may refuse to create a VM with more threads than NPC. 86 87 === Multithread apps === 88 89 By default, apps are assumed to use 1 thread. 90 Plan classes for apps that use multiple threads (possibly a variable number, depending on the host) 91 use the following elements. 92 93 If '''<physical_threads>''' is set, NCPUS refers to NPC, otherwise to NLC. 94 95 <min_ncpus>N</min_ncpus> :: run only on hosts with NCPUS >= N. 96 <max_threads>N [M]</max_threads>:: Use min(N, NCPUS-M) threads (if not specified, M is zero). 86 97 <nthreads_cmdline>0|1</nthreads_cmdline>:: if set, pass command-line args '''--nthreads N''' 87 to the app, where N is the number of logical CPUs to use.98 to the app, where N is the number of threads to use. 88 99 <mem_usage_base_mb>X</mem_usage_base_mb>:: 89 100 <mem_usage_per_cpu_mb>Y</mem_usage_per_cpu_mb>:: if specified, estimated memory usage (in Megabytes) is X + NY, 90 101 where N is the number of CPUs used. 91 102 Pass this to the app with a '''--memory_size_mb X''' command-line arg. 103 104 Implementation note: the number of CPUs sent to the client, 105 and visible to the user, is in terms of logical CPUs. 106 if '''<physical_threads>''' is set, and the host is hyperthreaded, 107 this will be twice the number of threads. 92 108 93 === Fields forGPU apps ===109 === GPU apps === 94 110 95 111 Required: … … 120 136 <max_gpu_peak_speed>X</max_gpu_peak_speed>:: use only GPUs with peak speed <= X 121 137 122 === Fields forAMD/ATI GPU apps ===138 === AMD/ATI GPU apps === 123 139 124 140 <need_ati_libs/>:: Require libraries named "ati", not "amd". … … 157 173 }}} 158 174 159 === Fields forNVIDIA GPU apps ===175 === NVIDIA GPU apps === 160 176 161 177 <min_nvidia_compcap>MMmm</min_nvidia_compcap>:: minimum compute capability 162 178 <max_nvidia_compcap>MMmm</max_nvidia_compcap>:: maximum compute capability 163 179 164 === Fields forCUDA apps ===180 === CUDA apps === 165 181 166 182 <min_cuda_version>MMmmm</min_cuda_version>:: minimum CUDA version 167 183 <max_cuda_version>MMmmm</max_cuda_version>:: maximum CUDA version 168 184 169 === Fields forOpenCL apps (CPU or GPU) ===185 === OpenCL apps (CPU or GPU) === 170 186 171 187 <opencl/>:: include this for OpenCL applications … … 174 190 <double_precision_fp/>:: reject plan class if the device doesn't support double precision floating point math 175 191 176 === Fields forOpenCL apps for AMD ===192 === OpenCL apps for AMD === 177 193 <min_opencl_driver_revision>MMmmrr</min_opencl_driver_revision>:: minimum OpenCL driver revision 178 194 <max_opencl_driver_revision>MMmmrr</max_opencl_driver_revision>:: maximum OpenCL driver revision 179 195 180 === Fields for!VirtualBox apps ===196 === !VirtualBox apps === 181 197 182 198 <virtualbox/> :: !VirtualBox application; send only to hosts with !VirtualBox installed … … 191 207 they'll be run single-core. 192 208 193 === Fields forAndroid apps ===209 === Android apps === 194 210 <min_android_version>MMmmrr>:: minimum Android version (e.g. 4.1.2 = 40102) 195 211 <max_android_version>MMmmrr>:: maximum Android version 196 212 197 === Fields for non-compute-intensive apps ===213 === Non-compute-intensive apps === 198 214 <avg_ncpus>x</avg_ncpus>:: average # CPUs used. Use for non-compute-intensive apps; 199 215 for others it's calculated for you.