Affinity-aware optimization of multithreaded two-phase I/O for high throughput collective I/O
Yuichi Tsujita, Atsushi Hori, Yutaka Ishikawa · 2014
Collective MPI-IO for non-contiguous accesses has been playing a big role in not only direct MPI-IO API calls but also scientific applications using parallel I/O libraries such as HDF5, which utilizes MPI-IO APIs underneath its parallel I/O APIs. We have been focusing on performance improvements in such a collective MPI-IO by using a representative MPI-IO library named ROMIO. Inside ROMIO, an optimization scheme named two-phase I/O achieves higher performance even if we have non-contiguous accesses. We have developed multithreaded ROMIO using Pthreads for further performance improvement. In this paper, we present a better performance optimization in collective write operations by using a newly implemented functionality to manage CPU core bindings for invoked I/O threads in addition to a multiple I/O request queueing scheme. We achieved performance gains up to 29% with the CPU core bindings compared to I/O throughput without CPU core bindings. Furthermore, we noted that a multiple number of I/O request slots in queues mitigated the internal unbalanced data-exchange phase times among MPI processes.