Table of Contents 1. Abstract 2. Overview 1. What is Parallel Computing? 2. Why Use Parallel Computing? 3. Concepts and Terminology 3. von Neumann Computer Architecture 4. Flynn's Classical Taxonomy 5. Some General Parallel Terminology 4. Parallel Computer Memory Architectures 6. Shared Memory 7. Distributed Memory 8. Hybrid Distributed-Shared Memory 5. Parallel Programming Models 9. Overview 10. Shared Memory Model 11. Threads Model 12. Distributed Memory / Message Passing Model 13. Data Parallel Model 14. Hybrid Model 15. SPMD and MPMP 6. Designing Parallel Programs 16. Automatic vs. Manual Parallelization 17. Understand the Problem and the Program 18. Partitioning 19. Communications 20. Synchronization 21. Data Dependencies 22. Load Balancing 23. Granularity 24. I/O 25. Limits and Costs of Parallel Programming 26. Performance Analysis and Tuning 7. Parallel Examples 27. Array Processing 28. PI Calculation 29. Simple Heat Equation 30. 1-D Wave Equation 8. References and More Information
Abstract |
This tutorial covers the very basics of parallel computing, and is intended for someone who is just becoming acquainted with the subject. It begins with a brief overview, including concepts and terminology associated with parallel computing. The topics of parallel memory architectures and programming models are then explored. These topics are followed by a discussion on a number of issues related to designing parallel programs. The tutorial concludes with several examples of how to parallelize simple serial programs.
Level/Prerequisites: None
Overview |
What is