Makeflow is a workflow system for executing large
complex workflows on clusters, clouds, and grids.
Makeflow is easy to use.
The Makeflow language is similar to traditional Make, so if you
can write a Makefile, then you can write a Makeflow.
A workflow can be just a few commands chained together,
or it can be a complex application consisting of thousands
of tasks. It can have an arbitrary DAG structure and
is not limited to specific patterns.
Makeflow is production-ready.
Makeflow is used on a daily basis to execute complex scientific applications
in fields such as data mining, high energy physics,
image processing, and bioinformatics. It has run on campus clusters,
the Open Science Grid, NSF XSEDE machines, NCSA Blue Waters, and Amazon Web Services.
Here are some real examples of workflows used in production systems:
Makeflow is portable. A workflow is written in a technology
neutral way, and then can be deployed to a variety of different
systems without modification, including local execution on
a single multicore machine, public cloud services such as Amazon EC2 and Amazon Lambda,
batch systems like HTCondor, SGE, PBS, Torque, SLURM, or the bundled Work Queue system.
Makeflow can also easily run your jobs in a container environment
like Docker or Singularity on top of an existing batch system.
The same specification works for all systems, so you can easily move
your application from one system to another without rewriting everything.
Makeflow is powerful. Makeflow can handle workloads of millions
of jobs running on thousands of machines for months at a time.
Makeflow is highly fault tolerant: it can crash or be killed,
and upon resuming, will reconnect to running jobs and continue
where it left off. A variety of analysis tools are available to
understand the performance of your jobs, measure the progress of a workflow,
and visualize what is going on.