Low-Level Interfaces for High-Level Parallel I/O
Report by Dartmouth Department of Computer Science
As the I/O needs of parallel scientific applications increase, file systems for multiprocessors are being designed to provide applications with parallel access to multiple disks. Many parallel file systems present applications with a conventional Unix-like interface that allows the application to access multiple disks transparently. By tracing all the activity of a parallel file system in a production, scientific computing environment, we show that many applications exhibit highly regular, but non-consecutive I/O access patterns. Since the conventional interface does not provide an efficient method of describing these patterns, we present three extensions to the interface that support \em strided, \em nested-strided, and \em nested-batched I/O requests. We show how these extensions can be used to express common access patterns.