  In this paper, we address the problem of designing a distributed application
meant to run both classical and asynchronous iterations. MPI libraries are very
popular and widely used in the scientific community, however asynchronous
iterative methods raise non-negligible difficulties about the efficient
management of communication requests and buffers. Moreover, a convergence
detection issue is introduced, which requires the implementation of one of the
various state-of-the-art termination methods, which are not necessarily highly
reliable for most computational environments. We propose here an MPI-based
communication library which handles all these issues in a non-intrusive manner,
providing a unique interface for implementing both classical and asynchronous
iterations. Few details are highlighted about our approach to achieve best
communication rates and ensure accurate convergence detection. Experimental
results on two supercomputers confirmed the low overhead communication costs
introduced, and the effectiveness of our library.
