This page refers to the gLite version of CREAM. For CREAM released with EMI, please refer to the new CREAM wiki: http://wiki.italiangrid.org/CREAM

The CREAM CE allows to forward, via tha BLAH component, requirements to the batch system.

For this purpose the JDL CERequirements attribute, described in the CREAM JDL guide can be used.

For direct submissions to the CREAM CE (e.g. jobs submitted to the CREAM CE using the CREAM CLI glite-ce-job-submit command) the CeRequirements attribute is supposed to be filled by the end-user.

For jobs submitted to the CREAM CE via the WMS, the CeRequirements attribute is instead filled by the WMS, considering the JDL Requirements expression and the value of the CeForwardParameters attribute in the WMS configuration file (/opt/glite/etc/glite_wms.conf).

For example, if in the user JDL there is :

Requirements= "other.GlueHostMainMemoryRAMSize > 100 &&
other.GlueCEImplementationName==\"CREAM\"";

and if the WMS configuration file there is:

CeForwardParameters  = {"GlueHostMainMemoryVirtualSize","GlueHostMainMemoryRAMSize",
"GlueCEPolicyMaxCPUTime"};

in the JDL sent by the WMS to CREAM there will be:

CeRequirements= "other.GlueHostMainMemoryRAMSize > 100";

The CERequirements expression received by CREAM is then forwarded to BLAH. Basically BLAH manages the CERequirements expression setting some environment variables, which are available and can be properly used by the $GLITE_LOCATION/bin/xxx_local_submit_attributes.sh script (e.g. $GLITE_LOCATION/bin/pbs_local_submit_attributes.sh for PBS/Torque, $GLITE_LOCATION/bin/lsf_local_submit_attributes.sh for LSF). This script must be properly created by the site admin.

For example, considering the following CeRequirements expression:

CeRequirements="other.GlueHostMainMemoryRAMSize > 100 &&
other.GlueCEStateWaitingJobs <10 &&
other.GlueCEImplementationName==\"CREAM\"
&& other.GlueHostProcessorClockSpeed >= 2800 &&
(Member(\"FDTD\", other.GlueHostApplicationSoftwareRuntimeEnvironment))";

the following settings will be available in $GLITE_LOCATION/bin/xxx_local_submit_attributes.sh:

GlueHostMainMemoryRAMSize_Min='100'
GlueCEStateWaitingJobs_Max='10'
GlueCEImplementationName='CREAM'
GlueHostProcessorClockSpeed_Min='2800'
GlueHostApplicationSoftwareRuntimeEnvironment='"FDTD"'

What is printed by the $GLITE_LOCATION/bin/xxx_local_submit_attributes.sh script is automatically added to the submit command file.

For example if the JDL Cerequirements expression is:

CeRequirements = "(Member(\"FDTD\", other.GlueHostApplicationSoftwareRuntimeEnvironment))";

and the $GLITE_LOCATION/bin/pbs_local_submit_attributes.sh is:

#!/bin/sh
if [ "$other.GlueHostApplicationSoftwareRuntimeEnvironment" == "FDTD" ]; then
 echo "#PBS -l software=FDTD"
fi

then the PBS submit file that will be used will include:

...
...
# PBS directives:
#PBS -S /bin/bash
#PBS -o /dev/null
#PBS -e /dev/null
#PBS -l software=FDTD
....
....

where the line:

#PBS -l software=FDTD

is set via the $GLITE_LOCATION/bin/pbs_local_submit_attributes.sh script.

Other information:

  • There are no differences if in CeRequirements expresssion there is e.g.
CeRequirements = other.xyz==\"ABC\"
or:
CeRequirements = "xyz==\"ABC\"";
In both cases in $GLITE_LOCATION/bin/xxx_local_submit_attributes.sh the variable xyz will be set.
  • As shown above, having x>a or x>=a doesn't make any difference in the setting of the environment variable x in the $GLITE_LOCATION/bin/xxx_local_submit_attributes.sh script. It will be in both cases: x_Min='a'

Please note that with CREAM CE v. <= 1.5 (glite-ce-blahp <= 1.12) the local submit script file is run only when the cerequirements JDL attribute is set. With CREAM CE v. >= 1.6 (glite-ce-blahp >= 1.14) the local submit script file is instead always run.

Please also note that with CREAM CE v. <= 1.5 (glite-ce-blahp <= 1.12) the local submit script file is not run with Condor as batch system. This was fixed with CREAM CE v. >= 1.6 (glite-ce-blahp >= 1.14)