Preface Part I. An Introduction to Clusters 1. Cluster Architecture Modern Computing and the Role of Clusters Types of Clusters Distributed Computing and Clusters Limitations; My Biases 2. Cluster Planning Design Steps Determining Your Cluster's Mission Architecture and Cluster Software Cluster Kits CD-ROM-Based Clusters Benchmarks 3. Cluster Hardware; Design Decisions Environment 4. Linux for Clusters Installing Linux Configuring Services Cluster Security Part II. Getting Started Quickly 5. openMosix What is openMosix? How openMosix Works Selecting an Installation Approach Installing a Precompiled Kernel Using openMosix Recompiling the Kernel; Is openMosix Right for You? 6. OSCAR Why OSCAR? What's in OSCAR Installing OSCAR Security and OSCAR Using switcher; Using LAM/MPI with OSCAR 7. Rocks Installing Rocks Managing Rocks Using MPICH with Rocks Part III. Building Custom Clusters; 8. Cloning Systems Configuring Systems Automating Installations; Notes for OSCAR and Rocks Users 9. Programming Software Programming Languages Selecting a Library LAM/MPI MPICH Other Programming Software Notes for OSCAR Users Notes for Rocks Users 10. Management Software C3 Ganglia Notes for OSCAR and Rocks Users 11. Scheduling Software OpenPBS Notes for OSCAR and Rocks Users 12. Parallel Filesystems PVFS; Using PVFS Notes for OSCAR and Rocks Users Part IV. Cluster Programming 13. Getting Started with MPI MPI A Simple Problem; An MPI Solution I/O with MPI Broadcast Communications; 14. Additional MPI Features More on Point-to-Point Communication; More on Collective Communication Managing Communicators; Packaging Data 15. Designing Parallel Programs Overview; Problem Decomposition Mapping Tasks to Processors Other Considerations 16. Debugging Parallel Programs Debugging and Parallel Programs Avoiding Problems Programming Tools; Rereading Code Tracing with printf Symbolic Debuggers; Using gdb and ddd with MPI Notes for OSCAR and Rocks Users; 17. Profiling Parallel Programs Why Profile? Writing and Optimizing Code Timing Complete Programs Timing C Code Segments; Profilers MPE Customized MPE Logging Notes for OSCAR and Rocks Users Part V. Appendix References Books URLs; Index
Joseph D. Sloan has been working with computers since the mid-1970s. He began using Unix as a graduate student in 1981, first as an applications programmer and later as a system programmer and system administrator. Since 1988 he has taught mathematics and computer science at Lander University. He also manages the networking computer laboratory at Lander, where he can usually be found testing and using the software tools described in this book.