Athapascan
Athapascan is an high level application programming interface.
Get here a postscript file with a short
presentation in french (40 Kb).
In Short...
- Athapascan is a high level data-flow language, 100% C and C++
compatible, with explicit parallelism and enabling various scheduling
strategies.
- It is based on KAAPI
- Availability and download: please read KAAPI
web pages.
• Key Features:
- The C++ library
- Multiple runtime implementation specialized for SMP machine and
cluster computing
- Portability: inherited from KAAPI
• High level:
- Macro Data-Flow
- Granularity determined by the programmer
• Easy to use:
- Implicit communication: global memory space
Shared <int> a;
- Explicit parallelism: by asynchronous remote procedure call on
C++ function object
TASK f ( Shared<int> x ) { .. } task formal
prototype and body declaration
Fork<f>()(a) ;
asynchronous task call with a as effective parameter
- Implicit synchronisation: consistency on access to the global
memory defined by lexical ordering (`;')
Shared<int> x;
Fork<update>()(a);
/* ...; x.Write(7); ... */
... ;
Fork<print>()(a) ;
/* ...; printf("%d", x.Read()+2; ... */
prints 9 on output (execution of print(a) is delayed
until update(a) resumes)
- No reference to the execution support in the language: the
semantic of the program is independent from the scheduling Fork
f(x):
default implicit scheduling
- Enabling various scheduling such Scotch partitioning, LPTF, or
other developed by the user !
- Possibility to customize the scheduling strategy by code
annotation :
Fork<f>(SetCost(cost))(x)
• Based on theoretical foundations :
- Allows a program cost analysis : sequential and parallel time,
communication cost and sequential memory space
- Existence of scheduling algorithms, proved alpha-competitive for
a well-defined class of programs
- Selected publications
Authors/contacts:
Applications: