EuroPython 2015

Parallel Programming Constructs and Techniques Using an Embedded Flexible Language (EFL) for Python

Parallel Programming Constructs and Techniques Using an Embedded Flexible Language (EFL) for Python

M. Goldstein , D. Dayan, D. Berlowitz, O. Berlowitz, Max Rabin, M. Nagar, D. Soudry, R. B. Yehezkael

Multi-core CPUs are abundant and utilizing them effectively requires programmers to parallelize CPU-intensive code. To facilitate this, we have developed EFL, a deterministic parallel programming tool. The parallel parts of a program are written as EFL-blocks, which are embedded into a sequential host language program. The sequential parts of the program are written in the host language, outside the EFL blocks.
An EFL pre-compiler translates EFL blocks into parallel Python code. EFL may be embedded in any host language by writing an appropriate pre-compiler. The EFL pre-compiler is being developed for other host programming languages (C++, Java, C#, Fortran, etc) as well as for other parallel platforms (DTM/MPI4PY, etc. ). Here we present the parallel programming constructs of EFL, such as parallel assignments, parallel for-loops, etc., and some examples of using EFL to implement Parallel Programming Design Patterns.


Do you have some questions on this talk?

New comment