pyworkflow.protocol.launch module

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.launch(protocol, wait=False, stdin=None, stdout=None, stderr=None)[source]

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, wait=False)[source]

Use this function to schedule protocols that are not ready to run yet. Right now it only make sense to schedule jobs locally.