GithubHelp home page GithubHelp logo

knagaitsev / parsl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from parsl/parsl

0.0 1.0 0.0 20.06 MB

Parsl - Parallel Scripting Library

Home Page: http://parsl-project.org

License: Apache License 2.0

Python 97.15% Shell 0.92% Makefile 0.41% C 0.11% Vim Script 0.12% Dockerfile 0.07% CSS 0.03% HTML 1.18%

parsl's Introduction

Parsl - Parallel Scripting Library

Apache Licence V2.0 Build status Documentation Status NSF award info NSF award info NSF award info NSF award info

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.0.0.

QuickStart

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 here

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

Documentation

The complete parsl documentation is hosted here.

The Parsl tutorial is hosted on live Jupyter notebooks here

For Developers

  1. Download Parsl:

    $ git clone https://github.com/Parsl/parsl
    
  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 config_local_test" for a faster, smaller test set.
    $ make clean # remove virtualenv and all test and build artifacts
    
  3. Install:

    $ cd parsl
    $ python3 setup.py install
    
  4. Use Parsl!

Requirements

Parsl is supported in Python 3.6+. Requirements can be found here. Requirements for running tests can be found here.

Code of Conduct

Parsl seeks to foster an open and welcoming environment - Please see the Parsl Code of Conduct for more details.

Contributing

We welcome contributions from the community. Please see our contributing guide.

parsl's People

Contributors

yadudoc avatar benclifford avatar annawoodard avatar connorpigg avatar zhuozhaoli avatar benhg avatar danielskatz avatar lukaszlacinski avatar garri1105 avatar kylechard avatar hategan avatar btovar avatar lgray avatar daheise avatar wardlt avatar rc-git avatar macintoshpie avatar tjdasso avatar lhayhurst avatar ravihansa3000 avatar ahaysx avatar glentner avatar jmoon1506 avatar monicadlewis97 avatar khurtado avatar kulshekhar avatar bilke avatar meschw04 avatar mjwilde avatar rapguit avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.