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
- pyworkflow.protocol.launch.analyzeFormattingTypeError(string, dictionary)
- receives a string with %(VARS) to be replaced with a dictionary
it splits te string by
- and test the formatting per line. Raises an exception if any line fails
with all problems found
- pyworkflow.protocol.launch.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.
- pyworkflow.protocol.launch.schedule(protocol, initialSleepTime=0, wait=False)
Use this function to schedule protocols that are not ready to run yet. Right now it only make sense to schedule jobs locally.