You are previewing Problem-solving in High Performance Computing.
O'Reilly logo
Problem-solving in High Performance Computing

Book Description

Problem-Solving in High Performance Computing: A Situational Awareness Approach with Linux focuses on understanding giant computing grids as cohesive systems. Unlike other titles on general problem-solving or system administration, this book offers a cohesive approach to complex, layered environments, highlighting the difference between standalone system troubleshooting and complex problem-solving in large, mission critical environments, and addressing the pitfalls of information overload, micro, and macro symptoms, also including methods for managing problems in large computing ecosystems.

The authors offer perspective gained from years of developing Intel-based systems that lead the industry in the number of hosts, software tools, and licenses used in chip design. The book offers unique, real-life examples that emphasize the magnitude and operational complexity of high performance computer systems.

  • Provides insider perspectives on challenges in high performance environments with thousands of servers, millions of cores, distributed data centers, and petabytes of shared data
  • Covers analysis, troubleshooting, and system optimization, from initial diagnostics to deep dives into kernel crash dumps
  • Presents macro principles that appeal to a wide range of users and various real-life, complex problems
  • Includes examples from 24/7 mission-critical environments with specific HPC operational constraints

Table of Contents

  1. Cover
  2. Title page
  3. Table of Contents
  4. Copyright
  5. Dedication
  6. Preface
  7. Acknowledgments
  8. Introduction: data center and high-end computing
  9. Chapter 1: Do you have a problem?
    1. Abstract
    2. Identification of a problem
    3. Problem definition
    4. Problem reproduction
    5. Cause and effect
    6. Conclusions
  10. Chapter 2: The investigation begins
    1. Abstract
    2. Isolating the problem
    3. Comparison to a healthy system and known references
    4. Linear versus nonlinear response to changes
    5. Conclusions
  11. Chapter 3: Basic investigation
    1. Abstract
    2. Profile the system status
    3. Process accounting
    4. Statistics to your aid
    5. Conclusions
  12. Chapter 4: A deeper look into the system
    1. Abstract
    2. Working with /proc
    3. Examine kernel tunables
    4. Conclusions
  13. Chapter 5: Getting geeky – tracing and debugging applications
    1. Abstract
    2. Working with strace and ltrace
    3. Working with perf
    4. Working with Gdb
  14. Chapter 6: Getting very geeky – application and kernel cores, kernel debugger
    1. Abstract
    2. Collecting application cores
    3. Collecting kernel cores (Kdump)
    4. Crash analysis (crash)
    5. Kernel debugger
    6. Conclusion
  15. Chapter 7: Problem solution
    1. Abstract
    2. What to do with collected data
  16. Chapter 8: Monitoring and prevention
    1. Abstract
    2. Which data to monitor
    3. How to monitor and analyze trends
    4. How to respond to trends
    5. Configuration auditing
    6. System data collection utilities
    7. Conclusion
  17. Chapter 9: Make your environment safer, more robust
    1. Abstract
    2. Version control
    3. Configuration management
    4. The correct way of introducing changes into the environment
    5. Conclusion
  18. Chapter 10: Fine-tuning the system performance
    1. Abstract
    2. Log size and log rotation
    3. Filesystem tuning
    4. The sysfs filesystem
    5. Proc and sys together
    6. Conclusion
  19. Chapter 11: Piecing it all together
    1. Abstract
    2. Top-down approach
    3. Methodologies used
    4. Tools used
    5. From simple to complicated
    6. Operational constraints
    7. Smart practices
    8. Conclusion
  20. Subject Index