MTIO. A multi-threaded parallel I/O system

Abstract
Presents the design and evaluation of MTIO (Multi-Threaded Input/Output), a multi-threaded runtime library for parallel I/O. We extend the multi-threading concept to separate the computation and I/O tasks into two separate threads of control. Multi-threading in our design permits (a) asynchronous I/O even if the underlying file system does not support asynchronous I/O; (b) copy avoidance from the I/O thread to the compute thread by sharing address space; and (c) a capability to perform collective I/O asynchronously without blocking the compute threads. Further, this paper presents techniques for collective I/O which maximize load balance and concurrency while reducing communication overhead in an integrated fashion. Performance results on an IBM SP2 for various data distributions and access patterns are presented. The results show that there is a tradeoff between the amount of concurrency in I/O and the buffer size designated for I/O, and that there is an optimal buffer size beyond which the benefits of larger requests diminish due to large communication overheads.

This publication has 7 references indexed in Scilit: