Articles | Volume 9, issue 6
https://doi.org/10.5194/gmd-9-2099-2016
https://doi.org/10.5194/gmd-9-2099-2016
Development and technical paper
 | 
09 Jun 2016
Development and technical paper |  | 09 Jun 2016

A new adaptive data transfer library for model coupling

Cheng Zhang, Li Liu, Guangwen Yang, Ruizhe Li, and Bin Wang

Abstract. Data transfer means transferring data fields from a sender to a receiver. It is a fundamental and frequently used operation of a coupler. Most versions of state-of-the-art couplers currently use an implementation based on the point-to-point (P2P) communication of the message passing interface (MPI) (referred to as “P2P implementation” hereafter). In this paper, we reveal the drawbacks of the P2P implementation when the parallel decompositions of the sender and the receiver are different, including low communication bandwidth due to small message size, variable and high number of MPI messages, as well as network contention. To overcome these drawbacks, we propose a butterfly implementation for data transfer. Although the butterfly implementation outperforms the P2P implementation in many cases, it degrades the performance when the sender and the receiver have similar parallel decompositions or when the number of processes used for running models is small. To ensure data transfer with optimal performance, we design and implement an adaptive data transfer library that combines the advantages of both butterfly implementation and P2P implementation. As the adaptive data transfer library automatically uses the best implementation for data transfer, it outperforms the P2P implementation in many cases while it does not decrease the performance in any cases. Now, the adaptive data transfer library is open to the public and has been imported into the C-Coupler1 coupler for performance improvement of data transfer. We believe that other couplers can also benefit from this.

Download
Short summary
We propose a butterfly implementation for data transfer. Although the butterfly implementation outperforms the existing implementation (the P2P implementation) in many cases, it degrades the performance in some cases. So we design and implement an adaptive data transfer library that automatically chooses an optimal implementation between the P2P one and the butterfly one and also further improves the performance based on the butterfly implementation through skipping some butterfly stages.