Object-Oriented Distributed and Parallel I/O Streams
Andrew W. Dick, Eshrat Arjomandi, Tim B. Brecht · Kluwer Academic Publishers eBooks · 2005
Writing programs for parallel and distributed computing environments can be significantly more complex than writing programs for their sequential counterparts. These complexities mainly arise from the additional synchronization and communication requirements imposed by such environments. These requirements also make debugging and maintaining such programs significantly more complicated. The problem of debugging and maintenance is further exacerbated by the lack of good debuggers and the lack of proper I/O support for such environments. In this paper we describe the design and implementation of an object-oriented streams library (piostream) which provides convenient and extensible constructs for input and output in parallel and distributed programming environments. These environments include multi-threaded applications, multi-processors, and distributed systems. Our design is based on the familiar C++ iostreamlibrary. Thus simplifying the use of I/O operations in parallel and distributed environments. A prototype implementation, which has been integrated within the ABC++ concurrent object-oriented library for C++, is described and used to demonstrate the feasibility of our design and the ease with which it can be used.