Application-oriented ping-pong benchmarking: how to assess the real communication overheads

Timo Schneider, Robert Gerstenberger, Torsten Hoefler
2013 Computing  
Moving data between processes has often been discussed as one of the major bottlenecks in parallel computing-there is a large body of research, striving to improve communication latency and bandwidth on different networks, measured with ping-pong benchmarks of different message sizes. In practice, the data to be communicated generally originates from application data structures and needs to be serialized before communicating it over serial network channels. This serialization is often done by
more » ... plicitly copying the data to communication buffers. The message passing interface (MPI) standard defines derived datatypes to allow zero-copy formulations of non-contiguous data access patterns. However, many applications still choose to implement manual pack/unpack loops, partly because they are more efficient than some MPI implementations. MPI implementers on the other hand do not have good benchmarks that represent important application access patterns. We demonstrate that the data serialization can consume up to 80 % of the total communication overhead for important applications. This indicates that most of the current research on optimizing serial network transfer times may be targeted at the smaller fraction of the communication overhead. To support the scientific community, we extracted the send/recv-buffer access patterns of a representative set of scientific applications to build a benchmark that includes serialization and communication of application data and thus reflects all communication overheads. This can be used like traditional pingpong benchmarks to determine the holistic communication latency and bandwidth
doi:10.1007/s00607-013-0330-4 fatcat:bcqelzmllbdwbn2fxywsnrppyi