This paper presents a novel, top-down, high-level approach to parallel
izing file I/O. Each parallel file descriptor is annotated with a high
-level specification, or template, of the expected parallel behavior.
The annotations are external to and independent of the source code, At
run-time, all I/O using a parallel file descriptor adheres to the sem
antics of the selected template. By separating the parallel I/O specif
ications from the code, a user can quickly change the I/O behavior wit
hout rewriting the code. Templates can be composed hierarchically to c
onstruct complex access patterns. Two sample parallel programs using t
hese templates are compared against versions implemented in an existin
g parallel I/O system (PIOUS). The sample programs show that the use o
f parallel I/O templates are beneficial from both the performance and
software engineering points of view.