An Interoperability Approach to System Software, Tools, and Libraries for Clusters

Systems software for clusters typically derives from a multiplicity of sources: the kernel itself, software associated with a particular distribution, site-specific purchased or open-source software, and assorted home-grown tools and procedures that attempt to glue everything together to meet the needs of the users and administrators of a particular cluster. Whether a cluster is a general-purpose resource serving multiple users or dedicated to a single application, getting everything to work together is a challenge. The challenge is partially met by special software distributions for clusters such as OSCAR or ROCKS. In this article, we discuss another approach (although it is not inconsistent with existing distributions), in which a small number of concepts are deployed to facilitate the customized integration of various software tools for cluster management, operation, and user jobs. The concepts include (1) a component approach to basic system software such as schedulers, queue managers, process managers, and monitors; (2) a software development kit for constructing networks of system software components, either from scratch or by wrapping “foreign” software, and (3) the use of explicit parallelism in building system tools for high performance. We illustrate this approach with a description of a mid-sized general-purpose cluster operated entirely by software built this way.

[1]  William Gropp,et al.  Scalable Unix Commands for Parallel Processors: A High-Performance Implementation , 2001, PVM/MPI.

[2]  Robert B. Ross,et al.  PVFS: A Parallel File System for Linux Clusters , 2000, Annual Linux Showcase & Conference.

[3]  Narayan Desai,et al.  MPI Cluster System Software , 2004, PVM/MPI.

[4]  William Gropp,et al.  Mpi - The Complete Reference: Volume 2, the Mpi Extensions , 1998 .

[5]  Philip M. Papadopoulos,et al.  Leveraging standard core technologies to programmatically build Linux cluster appliances , 2002, Proceedings. IEEE International Conference on Cluster Computing.

[6]  Narayan Desai,et al.  The process management component of a scalable systems software environment , 2003, 2003 Proceedings IEEE International Conference on Cluster Computing.

[7]  Robert Latham,et al.  Parallel netCDF: A Scientific High-Performance I/O Interface , 2003, ArXiv.

[8]  Narayan Desai,et al.  Component-based cluster systems software architecture a case study , 2004, 2004 IEEE International Conference on Cluster Computing (IEEE Cat. No.04EX935).

[9]  Jianwei Li,et al.  Parallel netCDF: A High-Performance Scientific I/O Interface , 2003, ACM/IEEE SC 2003 Conference (SC'03).

[10]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[11]  Erik A. Hendriks,et al.  BProc: the Beowulf distributed process space , 2002, ICS '02.

[12]  Narayan Desai,et al.  MPISH: a parallel shell for MPI programs , 2005, 19th IEEE International Parallel and Distributed Processing Symposium.

[13]  William Gropp,et al.  MPI: The Complete Reference , Vol. 2 - The MPI-2 Extensions , 1998 .

[14]  Stephen L. Scott,et al.  OSCAR: Open Source Cluster Application Resources , 2001 .

[15]  Aric D. Blumer,et al.  The Parallel Virtual File System , 1994 .