Description

Current parallel programming models leave a lot to be desired and fail
to maintain pace with improvements in hardware architecture. For many
scientific research groups these models only widen the gap between
equations and scalable parallel code. The Resilient Optimizing Flow
Language (ROFL) is a data-flow language designed with the purpose of
solving the problems of both domain abstraction and efficient
parallelism. Using a functional, declarative variant of the Python
language, ROFL takes scientific equations and optimizes for both scalar
and parallel execution.

ROFL is closely tied to Python and the SciPy libraries. ROFL uses Python
expression syntax, is implemented in Python, and emits optimized Python
code. ROFL's implementation in Python allows ROFL to be embedded in
Python. Using Python as a target language makes ROFL extensible and
portable. By removing imperative loop constructs and focusing on
integration with the NumPy and SciPy libraries, ROFL both supports and
encourages data parallelism.

In this presentation, we introduce the ROFL language, and demonstrate by
example how ROFL enables scientists to focus more on the equations they
are solving, and less on task and data parallelism.