Parsl is a Python library that allows for the natural expression of parallelism in Python programs. It allows Python functions to be executed concurrently while respecting data dependencies. Parsl returns "futures" as proxies for results that may not yet be available. It decomposes parallel execution into a task dependency graph. Parsl scripts can run on local machines, grids, clouds, or supercomputers without changes to the code.