Parallel jobs are different from sequential jobs and require a different type of process management. We present here a process management system for parallel programs such as those written using MPI. A primary goal of the system, which we call MPD (for multipurpose daemon), is to be scalable. By this we mean that startup of interactive parallel jobs comprising thousands of processes is quick, that signals can be quickly delivered to processes, and that stdin, stdout, and stderr are managed intuitively. Our primary target is parallel machines made up of clusters of SMPs, but the system is also useful in more tightly integrated environments. We describe how MPD enables much faster startup and better runtime management of parallel jobs. We show how close control of stdio can support the easy implementation of a number of convenient system utilities, even a parallel debugger. We describe a simple but general interface that can be used to separate any process manager from a parallel library, which we use to keep MPD separate from MPICH.
Many systems are intended to manage a collection of computing resources for both single-process and parallel jobs; see the survey by @cite_7 . Typically, these use a daemon that manages individual processes, with emphasis on jobs involving only a single process. Widely used systems include PBS @cite_11 , LSF @cite_0 , DQS @cite_22 , and Loadleveler POE @cite_9 . The Condor system @cite_23 is also widely used and supports parallel programs that use PVM @cite_2 or MPI @cite_8 @cite_12 . More specialized systems, such as MOSIX @cite_13 and GLUnix @cite_1 , provide single-system image support for clusters. Harness @cite_19 @cite_4 shares with MPD the goal of supporting management of parallel jobs. Its primary research goal is to demonstrate the flexibility of the plug-in'' approach to application design, potentially providing a wide range of services. The MPD system focuses more specifically on the design and implementation of services required for process management of parallel jobs, including high-speed startup of large parallel jobs on clusters and scalable standard I O management. The book @cite_10 provides a good overview of metacomputing systems and issues, and Feitelson @cite_3 surveys support for scheduling parallel processes.
@cite_4 @cite_22 @cite_7 @cite_8 @cite_10 @cite_9 @cite_1 @cite_3 @cite_0 @cite_19 @cite_23 @cite_2 @cite_13 @cite_12 @cite_11
1759783712 116504777 2091257550 2043381104 2004593585 1513913200
Metacomputing frameworks have received renewed attention of late, fueled both by advances in hardware and networking, and by novel concepts such as computational grids. Harness is an experimental metacomputing system based upon the principle of dynamic reconfigurability not only in terms of the computers and networks that comprise the virtual machine, but also in the capabilities of the VM itself. These characteristics may be modified under user control via a "plug-in" mechanism that is the central feature of the system. In this paper we describe our preliminary experience in the design of PVM emulation by means of a set of plug-in. Preface Foreword 1. Grids in Context 2. Computational Grids I Applications 3 Distributed Supercomputing Applications 4 Real-Time Widely Distributed Instrumentation Systems 5 Data-Intensive Computing 6 Teleimmersion II Programming Tools 7 Application-Specific Tools 8 Compilers, Languages, and Libraries 9 Object-Based Approaches 10 High-Performance Commodity Computing III Services 11 The Globus Toolkit 12 High-Performance Schedulers 13 High-Throughput Resource Management 14 Instrumentation and Measurement 15 Performance Analysis and Visualization 16 Security, Accounting, and Assurance IV Infrastructure 17 Computing Platforms 18 Network Protocols 19 Network Quality of Service 20 Operating Systems and Network Interfaces 21 Network Infrastructure 22 Testbed Bridges from Research to Infrastructure Glossary Bibliography Contributor Biographies Recent improvements in network and workstation performance have made workstation clusters an attractive architecture for diverse workloads, including interactive sequential and parallel applications. Although viable hardware solutions are available today, the largest challenge in making such a cluster usable lies in the system software. This paper describes the design and implementation of GLUnix, operating system middleware for a cluster of workstations. GLUnix was designed to provide transparent remote execution, support for interactive parallel and sequential jobs, load ballancing, and backward compatibility for existing application binaries. GLUnix was constructed to be easily portable to a number of platforms. GLUnix has been in daily use for over two and a half years and is currently running on a 100-node cluster of Sun UltraSPARCs. This paper relates our experiences with designing, building, and operating GLUnix. We discuss three important design tradeoffs faced by any cluster system, and present the reasons for our choices. Each of these design decisions is then re-evaluated in light of both our experience and recent technological advancements. We then describe the user-level, centralized, event-driven architecture of GLUnix and highlight a number of aspects of the implementation. Performance and scalability measurements of the system indicate that a centralized, user-level design can scale gracefully to significant cluster sizes, incurring only an additional 220 μs of overhead per node for remote execution. The discussion focuses on the successes and failures we encountered while building and maintaining the system, including a characterization of the limitations of a user-level implementation and various features that were added to satisfy the user community. © 1998 John Wiley & Sons, Ltd. A continuing challenge to the scientific research and engineering communities is how to fully utilize computational hardware. In particular, the proliferation of clusters of high performance workstations has become an increasingly attractive source of compute power. Developments to take advantage of this environment have previously focused primarily on managing the resources, or on providing interfaces so that a number of machines can be used in parallel to solve large problems. Both approaches are desirable, and indeed should be complementary. Unfortunately, the resource management and parallel processing systems are usually developed by independent groups, and they usually do not interact well together. To bridge this gap, we have developed a framework for interfacing these two sorts of systems. Using this framework, we have interfaced PVM, a popular system for parallel programming with Condor, a powerful resource management system. This combined system is operational, and we have made further developments to provide a single coherent environment. Overview of MOSIX.- The UNIX file system.- Distributed UNIX file systems.- The UNIX process.- The MOSIX process.- The MOSIX linker.- Load balancing.- Scaling considerations.- System performance.- Distributed applications.