Les logiciels CHOC
Les logiciels sont développés par chaque partenaire, plutôt que
de mettre des tarballs anciens de ces logiciels, nous avons préféré
mettre les liens vers leurs sites hébergeurs initiaux.
Parallel library Kaapi
The Athapascan/Kaapi API permits to define the concurrency between computational tasks which make synchronization from their accesses to objects into a global distributed memory. The parallelism is explicit and functional, the detection of the synchronizations is implicit. The semantic is sequential and an Athapascan's program is independent from the target parallel architecture (cluster or grid). The execution of program relies on an interpretation step that builds 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 run time environment and the scheduling algorithm to compute a schedule of tasks and a mapping of data onto the architecture. The implantation is based on light weight process (thread) and one-side communication (active message).
- Athapascan is a high level interface in the sense that no reference is made to the execution support. The synchronization, communication, and scheduling of operations are fully controlled by the software.
- Athapascan is an explicit parallelism language: the programmer indicates the parallelism of the algorithm through Athapascan 's two, template functions, Fork and Shared.
- Athapascan is implemented by a C++ interface. Therefore any code written in either the C or C++ languages can be directly recycled in Athapascan.
- Athapascan provides a data flow language. The program execution is data driven and determined by the availability of the shared data, according to the access made. In other words, a task requesting a read access on shared data will wait until the previous task processing a write operation to this data has ended.
- Athapascan is portable. The portability is inherited from the Athapascan-0 communication layer of the environment, which may be installed on all platforms where a POSIX threads kernel and a MPI communication library have been configured. - Athapascan is efficient. The efficiency with which Athapascan runs has been both tested and theoretically proved. The Athapascan programming interface is related to a cost model that enables an easy evaluation of the cost of a program in terms of work (number of operations performed), depth (minimal parallel time) and communication volume (maximum number of accesses to remote data). The execution time on a machine can be related to these costs.
Exact Library :Bob++
The
Bob++ library offers a C++ interface to enable the fast development
of sequential or parallel applications based on methods like Branch and Bound,
Divide and Conquer, A* and Dynamic programming.
Recently, we have added MIP application on top of Bob++, using the
Glop and the
Glock library.
Glop library is a light interface to access to most of the Linear Solvers.
Glock is a Generic cut library on top of Glop.
Approched Library :ParadisEO
The ParadisEO (PARAllel and DIStributed Evolving Objects) framework enables the easy and fast development of the most common parallel and distributed models of hybrid metaheuristics.