This module is responsible for launching protocol executions. There are two main scenarios: local execution and remote execution.
A. Local execution: This will depend on the ‘localhost’ configuration 1- Check if the protocol will be launched with MPI or not (using MPI template from config) 2- Check if the protocol will be submitted to a queue (using Queue template from config) 3- Build the command that will be launched.
B. Remote execution: 1- Establish a connection with remote host for protocol execution 2- Copy necessary files to remote host. 3- Run a local process (for local execution, see case A) in the remote host 4- Get the result back after launching remotely
launch(protocol, wait=False, stdin=None, stdout=None, stderr=None)¶
This function should be used to launch a protocol This function will decide which case, A or B will be used.
Use this function to schedule protocols that are not ready to run yet. Right now it only make sense to schedule jobs locally.