A key feature in OpenMOLE is the possibility to delegate the workload to a remote execution environment. Tasks in OpenMOLE have been designed so that the delegation a part of the workload to a remote environment is declarative.
You first need to define the environment(s) you want to use an authentication method. Then, the actual delegation of
the task is noted by the keyword
followed by a defined Environment
val env = LocalEnvironment(10)
val t1 = EmptyTask()
val t2 = EmptyTask()
val t3 = EmptyTask()
val mole = t1 -- (t2 on env) -- t3
You do not need to install anything or perform any kind of configuration on the target execution environment for
OpenMOLE to work. It reuses the infrastructure in place. You will however be required to provide the authentication
information in order for OpenMOLE to access the remote environment. At this point, just specify the credentials you're
using to login to this environment outside of OpenMOLE. Voila! That's all you need to do to use your environment
through OpenMOLE. In case you face authentication problems when targeting an environment through SSH, please refer
to the troubleshooting page.
When no specific environment is specified for a task, or a group of tasks, they will be executed sequentially on your
The use of a batch environment is generally not suited for short tasks (less than a 1 minute for a cluster to less
than 1 hour for a grid). In case your tasks are short you can group several executions. To group the execution by 100
in each job submitted to the environment, use the keyword
val mole = explo -< (t1 on env by 100)
Multiple environments are available to delegate your workload, check the following sections:
- Multi-thread, to execute the tasks concurrently on your machine,
- SSH, to execute tasks on remote server through SSH,
- Clusters, to execute tasks on a cluster managed by PBS/Torque, SGE, Slurm, Condor, or OAR.
- EGI, to execute tasks on the EGI grid,
- Ad-hoc Desktop Grid, to distribute your workflows on a set of desktop/laptop computers.