Need help with parsl?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

288 Stars 84 Forks Apache License 2.0 3.7K Commits 322 Opened issues


Parsl - Parallel Scripting Library

Services available


Need anything else?

Contributors list

Parsl - Parallel Scripting Library

|licence| |build-status| |docs| |NSF-1550588| |NSF-1550476| |NSF-1550562| |NSF-1550528|

Parsl is a parallel programming library for Python. Parsl augments Python with simple, scalable, and flexible constructs for encoding parallelism. Developers annotate Python functions to specify opportunities for concurrent execution. These annotated functions, called apps, may represent pure Python functions or calls to external applications, whether sequential, multicore (e.g., CPU, GPU, accelerator), or multi-node MPI. Parsl further allows these calls to these apps, called tasks, to be connected by shared input/output data (e.g., Python objects or files) via which Parsl can construct a dynamic dependency graph of tasks.

Parsl includes a flexible and scalable runtime that allows it to efficiently execute Python programs in parallel. Parsl scripts are portable and can be easily moved between different execution resources: from laptops to supercomputers to clouds. When executing a Parsl program, developers first define a simple Python-based configuration that outlines where and how to execute tasks. Parsl supports various target resources including clouds (e.g., Amazon Web Services and Google Cloud), clusters (e.g., using Slurm, Torque/PBS, HTCondor, Cobalt), and container orchestration systems (e.g., Kubernetes). Parsl scripts can scale from a single core on a single computer through to hundreds of thousands of cores across many thousands of nodes on a supercomputer.

Parsl can be used to implement various parallel computing paradigms:

  • Concurrent execution of a set of tasks in a bag-of-tasks program
  • Procedural workflows in which tasks are executed following control logic
  • Parallel dataflow in which tasks are executed when their data dependencies are met
  • Heterogeneous many-task applications in which many different computing resources are used together to execute different types of computational tasks
  • Dynamic workflows in which the workflow is determined during execution
  • Interactive parallel programming through notebooks or another interactive mechanism

The latest Parsl version available on PyPi is v1.1.0.

.. |licence| image:: :target: :alt: Apache Licence V2.0 .. |build-status| image:: :target: :alt: Build status .. |docs| image:: :target: :alt: Documentation Status .. |NSF-1550588| image:: :target: :alt: NSF award info .. |NSF-1550476| image:: :target: :alt: NSF award info .. |NSF-1550562| image:: :target: :alt: NSF award info .. |NSF-1550528| image:: :target: :alt: NSF award info


Parsl is now available on PyPI, but first make sure you have Python3.6+ ::

$ python3 --version

Install Parsl using pip::

$ pip3 install parsl

To run the Parsl tutorial notebooks you will need to install Jupyter::

$ pip3 install jupyter

Detailed information about setting up Jupyter with Python is available


Note: Parsl uses an opt-in model to collect anonymous usage statistics for reporting and improvement purposes. To understand what stats are collected and enable collection please refer to the

usage tracking guide 


The complete parsl documentation is hosted


The Parsl tutorial is hosted on live Jupyter notebooks


For Developers

  1. Download Parsl::

    $ git clone

  2. Build and Test::

    $ make # show all available makefile targets $ make virtualenv # create a virtual environment $ source .venv/bin/activate # activate the virtual environment $ make deps # install python dependencies from test-requirements.txt $ make test # make (all) tests. Run "make configlocaltest" for a faster, smaller test set. $ make clean # remove virtualenv and all test and build artifacts

  3. Install::

    $ cd parsl $ python3 install

  4. Use Parsl!


Parsl is supported in Python 3.6+. Requirements can be found

. Requirements for running tests can be found

Code of Conduct

Parsl seeks to foster an open and welcoming environment - Please see the

Parsl Code of Conduct 
_ for more details.


We welcome contributions from the community. Please see our

contributing guide 

Research notice

Please note that this repository is participating in a study into sustainability of open source projects. Data will be gathered about this repository for approximately the next 12 months, starting from June 2021.

Data collected will include number of contributors, number of PRs, time taken to close/merge these PRs, and issues closed.

For more information, please visit

the informational
__ or download the
participant information

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.