A brief history of Athapascan

1990 - The OUF library (Occam Users Frustration) was written for the Meganode (an 128 Inmos transputer-based parallel machine). OUF provided a common parallel programming interface, which allowed programs to be compiled with any of the existing compilers (Inmos, C3L, etc.). The programming model was communicating processes and there was no support for profiling or debugging.

1991 - The OUF library was ported to Sun3 and Sun4 architectures, in order to benefit from Unix debuggers. It served as the lower layer for an experimental toolkit used to write dynamic schedulers. It was written using PVM 1.0 and Sun's light weight processes (LWP) library. LWP provided preemptive threads which emulated the transputers time-sharing and PVM provided the communication primitives and the virtual parallel machine. The remote procedure call abstraction (RPC) was chosen as a convenient mean for writing distributed programs and implemented it on top of Sun OUF.

1993 - The APACHE1 project was created across the LMC-IMAG and LGI-IMAG laboratories. Athapascan2 was defined as a portable and efficient environment for parallel programming, gifted with profiling, analysis, deterministic reexecution and debugging. It was conceived in two layers: Athapascan-0, which implemented the parallel RPC extension and Athapascan-1, the user-level interface and the load balancing. The Athapascan-0a kernel was the first version of Athapascan-0, written on top of PVM and different threads libraries.

1995 - MPI and POSIX threads were chosen as the new basic libraries of Athapascan, for performance and portability reasons. Athapascan-0 was redesigned to be full preemptive with priorities, with remote thread creation and thread-to-thread communication..


1 In French, ``Algorithmique Parallèle et pArtage de CHargE''
2 Athapascan was the language spoken by the Apache native american tribe.