= Specifying plan classes in XML =
You can specify plan classes using an XML configuration file with the format
{{{
... specification of a plan class
... more plan class specifications
}}}
Name this file '''plan_class_spec.xml''' and put it in your project's
'''cgi-bin''' directory.
== Examples ==
An example configuration file is [http://boinc.berkeley.edu/trac/browser/boinc/trunk/boinc/sched/plan_class_spec.xml.sample here].
This file specifies the [AppPlan predefined plan classes].
== Specification format ==
The specification of a plan class has the following format.
All elements except '''''' are optional.
In version numbers, M is major, m is minor, R is release.
X :: the name of the plan class
:: !VirtualBox application
x :: requires at least X CPUs (may be fractional)
x:: use at most this many CPUs
x:: average # CPUs used. Use for non-compute-intensive apps;
for others it's calculated for you.
x:: multiply projected FLOPS by this factor.
Use this to favor one class over another.
For example, if you have both SSE and non-SSE versions, use 1.1 and 1.0 respectively.
regex:: use only hosts whose operating system name matches the given regular expression
x :: a required CPU feature (such as sse3). You can include more than one.
The following lets you use a project preference to decide whether to use the app version:
x:: the name of the tag
x:: the contents must match this regular expression
Fields for GPU apps:
X:: the GPU type ('''nvidia''', '''amd''', or '''intel''')
x:: the fraction of total FLOPs that are done by the CPU.
This is used to calculate CPU usage and estimated FLOPS.
x:: The minimum amount of GPU RAM.
This is needed because older clients report total RAM
but not available RAM.
x:: require this much available GPU RAM
x:: scale GPU peak speed by this (default 1).
x:: how many GPUs will be used
x:: minimum display driver version.
AMD driver versions are represented as MMmmRRRR.
NVIDIA driver versions are represented as MMMmm.
x:: maximum display driver version
:: CUDA application (NVIDIA)
:: CAL application (AMD)
:: OpenCL application
x:: you can use a project-specific preferences to let users
scale the # of GPUs used.
This is the tag name.
Fields for AMD/ATI Gpu apps:
:: Require libraries named "ati", not "amd".
You can verify which DLLs your application is linked against using
[http://www.dependencywalker.com/ Dependency Walker] against your application.
If your executable contains DLL names prefixed with 'ati', use this option.
Fields for NVIDIA GPU apps:
MMmm:: minimum compute capability
MMmm:: maximum compute capability
Fields for CUDA apps
MMmmm:: minimum CUDA version
MMmmm:: maximum CUDA version
Fields for OpenCL apps
MMmm:: minimum OpenCL version
MMmm:: maximum OpenCL version
Fields for !VirtualBox apps
MMmmrr:: minimum !VirtualBox version
MMmmrr:: maximum !VirtualBox version
:: 64-bit application