Title Python connector for ProActive Parallel Suite
OW2 project ProActive
OW2 project URL http://www.ow2.org/view/ActivitiesDashboard/ProActive
Other OW2 projects and URL (optional)

Keywords Cloud, Python, Java, NumPy, SciPy, Connector, Toolbox, Scientific, REST, Gradle, GIT
Description {{html clean="false" wiki="false"}}

ProActive Parallel Suite is an Open Source middleware featuring workflow design and distributed scheduling and execution (http://www.activeeon.com).

ProActive Parallel Suite integrates a set of connectors for direct integration of popular scientific languages and environment such as Matlab, Scilab and R (http://www.activeeon.com/products/distributed-toolboxes)

We would like to build a new connector for Python, which would allow Python programmers to submit to the ProActive Scheduler, directly from the Python interpreter, Python functions which will be executed by remote Python engines. 

The connector should be composed of two components a Client component and a Worker component.
For the Client component, here are the features expected :

- The API of the connector should be similar to the APIs of other Matlab, Scilab or R connectors.

- The definition of functions (source code), should be transferred automatically to the remote engines.

- Function parameters and function results should be transferred back and forth from the client to the remote engines.

- There must be a way to specify and transfer automatically input and output files

- Job submission should be non-blocking

- There should be primitives for waiting task completion or interrogating the task state.

For the Worker component, here are the features expected :

- It should be possible to create a standalone Python task from ProActive Workflow Editor for standalone execution (separated of the Python Client Connector)

- The Python function executed on the worker can integrate calls to native python libraries such as NumPy or SciPy.

-  Jython should not be used as a worker python engine because of its incompatibility with native python libraries.

The project can be split in three phases: 

- analyse existing connectors and become familiar with their API and behavior.

- analyse possible implementations of the worker component and build a prototype of standalone python task
- analyse possible implementations of the Client component that can allow python to create ProActive Scheduler job. Either the Scheduler JAVA or REST API can be used.
- build a prototype of the full connector cycle

You should be familiar with Java programming and at least one of Python, Matlab or R language. You will be helped by our software engineers from Sophia Antipolis, France (http://www.activeeon.com/company).

Main Topic Contact Person Name Brian Amedro
Main Topic Contact Person e-mail brian.amedro@activeeon.com
Other Topic Contact Person(s) Name(s) (optional) Fabien Viale
Other Topic Contact e-mail(s) (optional) fabien.viale@activeeon.com
Estimated Workload (total, in manmonths) 4
Targeted Contestants undergrad or master/PhD