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:



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


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.


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)


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


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


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


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


speedup over standard "sequential" App for this platform


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

CUDA only options


CUDA only: minimum compute capability


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


CUDA only: minimum CUDA version


CUDA only: maximum CUDA version

OpenCL only options


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


GPU only: minimum display driver version


GPU only: minimum display driver version


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


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


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 only: if both gpu_flops and cpu_flops are set, compute hu.avg_ncpus = avg_ncpus * / cpu_flops and projected_flops = cp.peak_flops / gpu_flops * speedup + 1.0 / hu.avg_ncpus;

Deprecated options


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


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.


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

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

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

Last modified 9 years ago Last modified on Jun 6, 2012, 10:44:05 AM