View on GitHub

Noodles

The programmable workflow engine for Python

Download this project as a .zip file Download this project as a tar.gz file

Welcome to the Noodles project home.

The primary goal of Noodles is to make it easy to run jobs on cluster supercomputers, in parallel, straight from a Python shell. The user enters a Python script that looks and feels like a serial program. The Noodles engine then converts this script into a call graph. This graph can be executed on a variety of machines using the different back-end runners that Noodles provides. This is not so much a design driven by technology but by social considerations. The end user may expect an elegant, easy to understand, interface to a computational library. This user experience we refer to as eating of noodles.

The computational library that is exposed to the user by means of Noodles needs to adhere to some design principles that are more strict than plain Python gives us. The library should follow a functional style of programming and is limited by the fact that function arguments need to pass through a layer where data is converted to and from a JSON format. The design of such a library is the cooking of noodles. As it is with ramen noodles, ofttimes the cook is also an avid consumer of noodles.

The complexity of running a workflow in parallel on a wide variety of architectures is taken care of by the Noodles engine. This is the production of noodles which is left as an exercise for the Noodles dev-team at the Netherlands eScience Center.

Installation

Installing is easy! Just: "pip install noodles", but do make sure you're using Python 3.5.

Documentation

The documentation to Noodles is generated using Sphinx and can be found here: Noodles documentation.

Copyright & Licence

Noodles 0.2.0 is copyright by the Netherlands eScience Center (NLeSC) and released under the LGPLv3.

See http://www.esciencecenter.nl for more information on the NLeSC.

Netherlands eScience Center logo