Delegation to the EGI grid

EGI is a grid infrastructure gathering computing resources from all over the world. It is a very powerful computing environment, but shows technically challenging to use. OpenMOLE makes it very simple to benefit from the grid.

Setup your grid credentials

Note: The following instructions explain how to setup the EGI authentication in console mode. If you are using the script editor you can configure it directly in the authentication panel.

To delegate a task to EGI you need to register your certificate in OpenMOLE. In the console execute:
EGIAuthentication() = P12Certificate(encrypted, "/path/to/your/certificate.p12")

You need to execute this operation only once and for all. OpenMOLE persists this information in your preferences folder.

Submitting job to EGI

To use EGI through DIRAC you should setup an EGIAuthentication as explained above using a P12Certificates. Other methods are not supported by DIRAC. To use EGI you must be registered in a Virtual Organisation (VO). The VO is the only compulsory parameter when creating an EGI environment:
val env = EGIEnvironment("biomed")

Here the VO biomed is specified, but you can specify the EGI VO of you choice.

Options available for DIRAC are:
  • cpuTime: the maximum duration for the job in terms of CPU consumption, for instance 1 hour,
  • openMOLEMemory: the memory of attributed to the OpenMOLE runtime on the execution node, if you run external tasks you can reduce the memory for the OpenMOLE runtime to 256MB in order to have more memory for you program on the execution node, for instance openMOLEMemory = 256,
  • service: a DIRAC REST API,
  • group: the name of the DIRAC group,
  • bdii: the BDII to use for listing resources accessible from this VO. The BDII in your preference file is used, when this field is left unspecified.
  • vomsURL: the URL of the VOMS server used for the authentication,
  • fqan: additional flags for authentication,
  • setup: setup to use on the DIRAC server. It is set to "Dirac-Production" by default,
  • name: the name an environment will take in the logs.

The EGIEnvironment can be tuned using the previous options as in this example:
val env =
    cpuTime = 4 hours,
    openMOLEMemory = 200

Delegate tasks using WMS servers

If you want / need to use the submission using the legacy WMS servers of EGI you may use:
val env = WMSEnvironment("")

Many options are available to configure the WMS environment:
  • port: the number of the port used by the ssh server, by default it is set to 22,
  • walltime: the maximum duration for the job in term of user time, for instance wallTime = 1 hour,
  • memory: the memory in mega-byte for the job, for instance memory = 2000,
  • architecture: could be "x86_64" for restricting your jobs to 64-bit systems,
  • jobType: should be set to "MPI" for MPI jobs,
  • cpuNumber: the number of CPU required for your job,
  • smpGranularity: the number of cores linked to a shared memory machine (same as cpuNumber for multi-threaded processes),
  • threads: the number of threads for concurrent execution of tasks on the worker node, for instance threads = 4,
  • requirements: a requirement string in accordance to the GLUE schema. It will be added to the other requirements,
  • fqan, cpuTime, openMOLEMemory, bdii, vomsURL, name are also usable in the same way as for the EGI environment.

The WMSEnvironment can be tuned using the previous options as in this example:
val env =
    cpuTime = 4 hours,
    memory = 2000,
    architecture = "x64_86",
    jobType = "MPI",
    cpuNumber = 8,
    smpGranularity = 1,
    openMOLEMemory = 200