Package pilot :: Package api :: Package compute :: Module api :: Class ComputeUnitDescription

Class ComputeUnitDescription

source code


ComputeUnitDescription (CUD).

The ComputeUnitDescription is a task description based on SAGA Job Description.

It offers the application to describe a ComputeUnit in an abstract way that is dealt with by the Pilot-Manager. It can contain references to depended DataUnits. ComputeUnitDescription are submitted to the ComputeDataService.

Format:

   compute_unit_description =            
       {
           'executable': <path to executable>,  
           'arguments': <arguments>,           # Arguments 
           'environment': <environment>,          # environment variables 
           
           # Working directory
           # Recommendation: Do not set working directory!
           #     if None working directory is sandbox directory of this CU (automatically
           #     created by BigJob)
           'working_directory': <working directory>,  
           
           # I/O
           'input': <stdin>,
           'error': <sterr>,
           'output': <stdout>,
                       
           # Parallelism
           
           # Defines how many CPU cores are reserved for the application process.
           'number_of_processes': <Total number of processes to start>,
           
           # Defines how the application process is launched:
           #     "single": ./a.out
           #     "mpi": mpirun -np <number_of_processes> ./a.out
           # In the MPI case BJ generates an appropriate machinefile
           'spmd_variation':      <Type and startup mechanism. Supported Values: [single, mpi]>,
           
           
           # Data - input/output data flow for ComputeUnit
           'input_data': [<data unit url>, ... ],      
           'output_data': [<data unit url>, ... ]
       }
   
   Example::
           compute_unit_description = {
                   "executable": "/bin/cat",
                   "arguments": ["test.txt"],
                   "number_of_processes": 1,
                   "output": "stdout.txt",
                   "error": "stderr.txt",   
                   "input_data" : [data_unit.get_url()], # this stages the content of the data unit to the working directory of the compute unit
                   "affinity_datacenter_label": "eu-de-south",              
                   "affinity_machine_label": "mymachine-1" 
               }     

ComputeUnitDescription objects are loosely typed. A dictionary containing the respective keys can be passed instead to the ComputeDataService.

Instance Methods
new empty dictionary

__init__(self)
x.__init__(...) initializes x; see help(type(x)) for signature
source code
 
__setattr__(self, attr, value)
x.__setattr__('name', value) <==> x.name = value
source code
 
__getattr__(self, attr) source code

Inherited from dict: __cmp__, __contains__, __delitem__, __eq__, __ge__, __getattribute__, __getitem__, __gt__, __iter__, __le__, __len__, __lt__, __ne__, __new__, __repr__, __setitem__, __sizeof__, clear, copy, fromkeys, get, has_key, items, iteritems, iterkeys, itervalues, keys, pop, popitem, setdefault, update, values, viewitems, viewkeys, viewvalues

Inherited from object: __delattr__, __format__, __reduce__, __reduce_ex__, __str__, __subclasshook__

Class Variables

Inherited from dict: __hash__

Properties

Inherited from object: __class__

Method Details

__init__(self)
(Constructor)

source code 

x.__init__(...) initializes x; see help(type(x)) for signature

Returns:
new empty dictionary

Overrides: object.__init__
(inherited documentation)

__setattr__(self, attr, value)

source code 

x.__setattr__('name', value) <==> x.name = value

Overrides: object.__setattr__
(inherited documentation)