Pure Python. Easily parallelize Python code.
Parsl provides an intuitive, pythonic way of parallelizing codes by annotating "apps": Python functions or external applications that run concurrently. Natural parallel programming!
![](images/parsl-code.png)
Implicit dataflow. Apps execute concurrently while respecting data dependencies.
Parsl creates a dynamic graph of tasks and their data dependencies. Tasks are only executed when their dependencies are met.
![](images/parsl-dflow.png)
Scalable Jupyter notebooks. Easily manage execution across distributed resources.
Parsl works seamlessly with Jupyter notebooks allowing apps within a notebook to be executed in parallel and on remote resources.
![](images/parsl-jupyter.png)
Write once, run anywhere. From laptops to supercomputers.
Parsl scripts are independent of the execution environment. A single script can be executed on one or more execution resources without modifying the script.
![](images/parsl-compute.png)