Athapascan : an API for Asynchronous Parallel Programming User's Guide
Abstract
Athapascan is a macro data-flow application programming interface (API) for asynchronous parallel programming. The API permits to define the concurren- cy between computational tasks that synchronize on the access through a global distributed memory. Parallelism is explicit and functional but detection of synchronizations is implicit. The semantic of Athapascan is sequential; then, an Athapascan's program is independent from the target parallel architecture (cluster or grid). The execution relies on an interpretation algorithm that computes a macro data-flow graph. The graph is direct and acyclic (DAG) and it encodes the computation and the data dependencies (read and write). It is used by the runtime support to schedule the tasks and map the data onto the target architecture. Implantation is based on the use of lightweight process (threads) and one-sided communications (actives messages). This report presents the C++ library of the API of Athapascan.