Workflows
Overview
Workflows offer benefits of automation and efficient orchestration (eg. data parallel execution) of multi-stage computation. Furthermore, they are powerful reproducibility and portability tools for science and engineering applications.
Typically, a workflow is written in a high level language that is offered and understood by a workflow management software or simply a workflow tool.
Workflow tools available on Condos
We currently offer support for the following workflow tools on HPC:
Nextflow
Makeflow
Swift
A brief description about each of the aforementioned workflow tools is provided below:
Nextflow Nextflow is a favored workflow tool among Singularity container users. Similarly, it is popular among users from the Biosciences domain.
Makeflow The Makeflow workflow system uses a Makefile like language to define workflows that may be deployed and executed over clusters and clouds.
Swift Swift uses a C-like syntax to define workflows. Swift is capable of stitching computational steps defined in the workflow as a true HPC workflow that uses the Message Passing Paradigm of parallel computation using the MPI libraries and its own load balancer.
📝 Note: While Nextflow and Makeflow require additional configuration if you wish to run them on compute nodes, Swift can run directly on compute nodes by simply plugging it into a job definition script just like any other MPI application.
Example Workflows
Hello World
Nextflow
Save the above code in a file, eg. hello.nf
. To run the workflow on open condo login node, do the following:
You should see output similar to the following:
Makeflow
A "Hello World" in Makeflow would look something like so:
Save the above code in a file, say hello.mkf
and run it on the open condo like so:
If all goes well, the output should look like so:
And you should see a new file called hello.txt
in your current working directory.
Swift
A Swift Hello World workflow looks like so:
Swift uses two steps to workflow execution: compile and run.
Load the swift module on condo like so:
Compile and run the workflow like so:
The above step will produce a TCL file called hello.tic
. Run the TCL file like so:
If all goes well, you should see the following output:
General remarks
Note that the above workflows will run on login nodes. In order for them to run over compute nodes, more configuration is needed.
Note that
Nextflow
expects absolute paths for data and executables since it works in its own temp directory. Please adjust the paths to where you choose to run the workflow.
Where to go from here?
Use the Crystal Workflow with these workflow tools.
Last updated