Synopses & Reviews
To the outside world, a "supercomputer" appears to be a single system. In fact, it's a cluster of computers that share a local area network and have the ability to work together on a single problem as a team. Many businesses used to consider supercomputing beyond the reach of their budgets, but new Linux applications have made high-performance clusters more affordable than ever. These days, the promise of low-cost supercomputing is one of the main reasons many businesses choose Linux over other operating systems.This new guide covers everything a newcomer to clustering will need to plan, build, and deploy a high-performance Linux cluster. The book focuses on clustering for high-performance computation, although much of its information also applies to clustering for high-availability (failover and disaster recovery). The book discusses the key tools you'll need to get started, including good practices to use while exploring the tools and growing a system. You'll learn about planning, hardware choices, bulk installation of Linux on multiple systems, and other basic considerations. Then, you'll learn about software options that can save you hours--or even weeks--of deployment time.Since a wide variety of options exist in each area of clustering software, the author discusses the pros and cons of the major free software projects and chooses those that are most likely to be helpful to new cluster administrators and programmers. A few of the projects introduced in the book include:
- MPI, the most popular programming library for clusters. This book offers simple but realistic introductory examples along with some pointers for advanced use.
- OSCAR and Rocks, two comprehensive installation and administrative systems
- openMosix (a convenient tool for distributing jobs), Linux kernel extensions that migrate processes transparently for load balancing
- PVFS, one of the parallel filesystems that make clustering I/O easier
- C3, a set of commands for administering multiple systems
Ganglia, OpenPBS, and cloning tools (Kickstart, SIS and G4U) are also covered. The book looks at cluster installation packages (OSCAR & Rocks) and then considers the core packages individually for greater depth or for folks wishing to do a custom installation. Guidelines for debugging, profiling, performance tuning, and managing jobs from multiple users round out this immensely useful book.
T h i s n e w g u i d e c o v e r s e v e r y t h i n g a n e w c o m e r t o c l u s t e r i n g w i l l n e e d t o p l a n, b u i l d, a n d d e p l o y a h i g h - p e r f o r m a n c e L i n u x c l u s t e r . F o c u s i n g o n c l u s t e r i n g f o r h i g h - p e r f o r m a n c e c o m p u t a t i o n, t h e b o o k d i s c u s s e s t h e k e y t o o l s y o u' l l n e e d, i n c l u d i n g g o o d p r a c t i c e s t o u s e w h i l e e x p l o r i n g t h e t o o l s a n d g r o w i n g a s y s t e m . Y o u' l l l e a r n a b o u t p l a n n i n g, h a r d w a r e c h o i c e s, b u l k i n s t a l l a t i o n o f L i n u x o n m u l t i p l e s y s t e m s, a n d o t h e r b a s i c c o n s i d e r a t i o n s . T h e n, y o u' l l l e a r n a b o u t s o f t w a r e o p t i o n s t h a t c a n s a v e y o u h o u r s - - o r e v e n w e e k s - - o f d e p l o y m e n t t i m e . T h e b o o k c o v e r s t h e m a j o r f r e e s o f t w a r e p r o j e c t s a n d s h o w s h o w t o c h o o s e t h o s e t h a t a r e m o s t l i k e l y t o b e h e l p f u l t o n e w c l u s t e r a d m i n i s t r a t o r s a n d p r o g r a m m e r s . T h e s e i n c l u d e M P I, t h e m o s t p o p u l a r p r o g r a m m i n g l i b r a r y f o r c l u s t e r s; O S C A R a n d R o c k s, t w o c o m p r e h e n s i v e i n s t a l l a t i o n a n d a d m i n i s t r a t i v e s y s t e m s; o p e n M o s i x a c o n v e n i e n t t o o l f o r d i s t r i b u t i n g j o b s; a n d m a n y o t h e r s . G u i d e l i n e s f o r d e b u g g i n g, p r o f i l i n g, p e r f o r m a n c e t u n i n g, a n d m a n a g i n g j o b s f r o m m u l t i p l e u s e r s r ou n d o u t t h i s i m m e n s e l y u s e f u l b o o k .
About the Author
Joseph D. Sloan has been working with computers since the mid-1970s.He began using Unix as a graduate student in 1981, first as anapplications programmer and later as a system programmer and systemadministrator. Since 1988 he has taught computer science, first atLander University and more recently at Wofford College where he can befound using the software described in this book.
Table of Contents
Preface; Audience; Organization; Conventions; How to Contact Us; Using Code Examples; Acknowledgments; Part I: An Introduction to Clusters; Chapter 1: Cluster Architecture; 1.1 Modern Computing and the Role of Clusters; 1.2 Types of Clusters; 1.3 Distributed Computing and Clusters; 1.4 Limitations; 1.5 My Biases; Chapter 2: Cluster Planning; 2.1 Design Steps; 2.2 Determining Your Cluster's Mission; 2.3 Architecture and Cluster Software; 2.4 Cluster Kits; 2.5 CD-ROM-Based Clusters; 2.6 Benchmarks; Chapter 3: Cluster Hardware; 3.1 Design Decisions; 3.2 Environment; Chapter 4: Linux for Clusters; 4.1 Installing Linux; 4.2 Configuring Services; 4.3 Cluster Security; Part II: Getting Started Quickly; Chapter 5: openMosix; 5.1 What Is openMosix?; 5.2 How openMosix Works; 5.3 Selecting an Installation Approach; 5.4 Installing a Precompiled Kernel; 5.5 Using openMosix; 5.6 Recompiling the Kernel; 5.7 Is openMosix Right for You?; Chapter 6: OSCAR; 6.1 Why OSCAR?; 6.2 What's in OSCAR; 6.3 Installing OSCAR; 6.4 Security and OSCAR; 6.5 Using switcher; 6.6 Using LAM/MPI with OSCAR; Chapter 7: Rocks; 7.1 Installing Rocks; 7.2 Managing Rocks; 7.3 Using MPICH with Rocks; Part III: Building Custom Clusters; Chapter 8: Cloning Systems; 8.1 Configuring Systems; 8.2 Automating Installations; 8.3 Notes for OSCAR and Rocks Users; Chapter 9: Programming Software; 9.1 Programming Languages; 9.2 Selecting a Library; 9.3 LAM/MPI; 9.4 MPICH; 9.5 Other Programming Software; 9.6 Notes for OSCAR Users; 9.7 Notes for Rocks Users; Chapter 10: Management Software; 10.1 C3; 10.2 Ganglia; 10.3 Notes for OSCAR and Rocks Users; Chapter 11: Scheduling Software; 11.1 OpenPBS; 11.2 Notes for OSCAR and Rocks Users; Chapter 12: Parallel Filesystems; 12.1 PVFS; 12.2 Using PVFS; 12.3 Notes for OSCAR and Rocks Users; Part IV: Cluster Programming; Chapter 13: Getting Started with MPI; 13.1 MPI; 13.2 A Simple Problem; 13.3 An MPI Solution; 13.4 I/O with MPI; 13.5 Broadcast Communications; Chapter 14: Additional MPI Features; 14.1 More on Point-to-Point Communication; 14.2 More on Collective Communication; 14.3 Managing Communicators; 14.4 Packaging Data; Chapter 15: Designing Parallel Programs; 15.1 Overview; 15.2 Problem Decomposition; 15.3 Mapping Tasks to Processors; 15.4 Other Considerations; Chapter 16: Debugging Parallel Programs; 16.1 Debugging and Parallel Programs; 16.2 Avoiding Problems; 16.3 Programming Tools; 16.4 Rereading Code; 16.5 Tracing with printf; 16.6 Symbolic Debuggers; 16.7 Using gdb and ddd with MPI; 16.8 Notes for OSCAR and Rocks Users; Chapter 17: Profiling Parallel Programs; 17.1 Why Profile?; 17.2 Writing and Optimizing Code; 17.3 Timing Complete Programs; 17.4 Timing C Code Segments; 17.5 Profilers; 17.6 MPE; 17.7 Customized MPE Logging; 17.8 Notes for OSCAR and Rocks Users; Part V: Appendix; Appendix A: References; A.1 Books; A.2 URLs; Colophon;