wiki:AppPlanConfig

DEPRECATED - replaced by AppPlanSpec

Configurable app plan functions

This is an alternative way of defining app plan functions. It allows you to define these functions using an XML config file (project/cgi-bin/plan_class_spec.xml) with the following format:

General

  <name>XXXXX</name>

Name of the plan class, string without spaces, exact match

  <type>X</type>

type of the plan class, May be specified numerically (0, 1, 2) or as token (CPU, CUDA, ATI)
Currently understood: 0 = CPU and 1 = CUDA
Suggested, but not supported in current code: 2 = ATI, 3 = NVidia OpenCL, 4 = ATI OpenCL.

  <project_prefs_tag>

name of a tag from the project specific preferences that can be used to enable or disable this plan-class (scanned as double, 0.0 if not present)

  <project_prefs_min>

min value this tag can have to allow this plan-class

  <project_prefs_max>

max value this tag can have to allow this plan-class

  <gpu_utilization_tag>

name of a tag from the project specific preferences which values is a custom GPU utilization factor supplied by the user. The 'ngpus' setting of the plan class will be multiplied by this when present.

  <cpu_feature>

CPU features required for this plan class. Multiple tags allowed. All features lowercase (e.g. sse2, altivec). Both host.p_features and host.p_model are checked

  <os_version>

regexp specifying an OS version (should work for all OS that way)

  <speedup>

speedup over standard "sequential" App for this platform

  <peak_flops_factor>

correct the (theoretical) peak flops by that factor (assumed efficency)

CUDA only options

  <min_cuda_compcap>

CUDA only: minimum compute capability

  <max_cuda_compcap>

CUDA only: maximum compute capability, set to 9999 to exclude emulation device

  <min_cuda_version>

CUDA only: minimum CUDA version

  <max_cuda_version>

CUDA only: maximum CUDA version

OpenCL only options

  <min_opencl_version>

OpenCL only: minimum required device version
IMPORTANT NOTE: the NVidia display driver version is only reported by Windows core clients. Mac and Linux clients only report the CUDA version. The display driver version will allways be 0 (zero) for these clients, hence this should NEVER be used to restrict a plan class for platforms other than Windows.
NOTE 2: Reporting driver version has been added to recent Mac Clients (6.13.x)
NOTE 3: the driver_version may be specified negative. In this case its absolute value is compared to the client's driver version, but only if this is reported. If the Client doesn't report a driver version, this check is skipped.

GPU only options

  <min_driver_version>

GPU only: minimum display driver version

  <max_driver_version>

GPU only: minimum display driver version

  <min_gpu_ram_mb>

GPU only: minimum required amount of video RAM (in MB)

  <gpu_ram_used_mb>

GPU only: video RAM a task will actually use (in MB)

  <avg_ncpus>
  <max_ncpus>
  <ngpus>

GPU only: number / fraction of GPUs used, defaults 0 for CPU plan classes, 1 otherwise. If ngpus < 0, set ncudas by the fraction of the total video RAM a tasks would take

  <gpu_flops>
  <cpu_flops>

GPU only: if both gpu_flops and cpu_flops are set, compute hu.avg_ncpus = avg_ncpus * sreq.host.p_fpops / cpu_flops and projected_flops = cp.peak_flops / gpu_flops * speedup + 1.0 / hu.avg_ncpus;

Deprecated options

  <min_macos_version>

Deprecated, use <os_version> instead. Min Darwin version required for this plan class, 0 = no check, numeric: 1000 * major version + 100 * minor version + patchlevel

  <max_macos_version>

Deprecated, use <os_version> instead. Max Darwin version allowed for this plan class, 0 = no limit

Example file

Here is an example of three plan class specifications, two CPU, one CUDA.

<plan_classes>

  <plan_class>
    <name>                CUDA32          </name>
    <min_cuda_compcap>    100             </min_cuda_compcap>
    <max_cuda_compcap>    9999            </max_cuda_compcap>
    <min_cuda_version>    3020            </min_cuda_version>
    <min_driver_version>  26000           </min_driver_version>
    <max_driver_version>  99999           </max_driver_version>
    <min_gpu_ram_mb>      300             </min_gpu_ram_mb>
    <gpu_ram_used_mb>     300             </gpu_ram_used_mb>
    <speedup>             10.0            </speedup>
    <avgncpus>            0.2             </avgncpus>
  </plan_class>

  <plan_class>
    <name>                BRP3SSE         </name>
    <cpu_feature>         sse             </cpu_feature>
    <project_prefs_tag>   also_run_cpu    </project_prefs_tag>
    <project_prefs_max>   0               </project_prefs_max>
  </plan_class>

  <plan_class>
    <name>                ALTIVEC         </name>
    <cpu_feature>         altivec         </cpu_feature>
    <min_macos_version>   80000           </min_macos_version>
    <speedup>             1.4             </speedup>
  </plan_class>

</plan_classes>
Last modified 6 years ago Last modified on 06/06/12 10:44:05