ABSTRACT

In the two previous chapters, synchronous and asynchronous algorithms for solving common problems have been described formally and their implementations have been explained. To implement those algorithms, it is possible to use programming environments which are not dedicated to the implementation of asynchronous algorithms. However, it is obviously preferable and easier to implement them using a dedicated environment. In order to implement a synchronous algorithm, any message passing environment can be used. As mentioned previously, the implementation of an asynchronous algorithm requires the disassociation of the computations from the communications. That is why in this chapter we first present some environments that we have used to implement asynchronous algorithms. Those environments are: Corba OmniOrb 4, PM2 and MPICH/Madeleine which is a multithreaded implementation of MPI. With them, the programmer needs to explicitly manage the features of AIAC algorithms. Later, two programming and execution environments have been designed to implement AIAC algorithms, namely JACE and CRAC. We present them and we explain what interesting features they provide to implement AIAC algorithms.