使用MPI和OpenMP的C++并行编程
552 页
Chinese
PDF
4.5

使用MPI和OpenMP的C++并行编程

使用MPI和OpenMP的C++并行编程

作者:

年份:

简介:

引言

Michael Quinn的著作《Parallel Programming in C++ with MPI and OpenMP》(2003年)是一本经典的并行编程教科书,至今仍具有现实意义。尽管该书出版已超过20年,但分布式内存(MPI)和共享内存(OpenMP)的基本概念并未发生根本性变化。本书提供了一种平衡的方法:从并行理论到C++实践示例。它非常适合希望深入学习并行计算的学生、工程师和开发人员。

本书内容

本书共15章,涵盖了并行编程的所有关键方面。第一部分致力于基础知识:并行计算模型、性能评估、同步问题和数据竞争。然后作者转向两项主要技术:

  • MPI(消息传递接口)——用于集群和分布式系统。详细讨论了点对点和集体通信、派生数据类型、虚拟拓扑。
  • OpenMP——用于多核处理器和共享内存。涵盖了编译器指令、线程管理、同步、循环并行化。

单独的章节专门讨论混合编程(MPI+OpenMP)、调试、性能分析和优化。每个主题都附有代码示例,可以立即运行和修改。

本书适合谁

本书面向已经熟悉C++(最好达到中级或以上水平)的读者。有用的知识包括:指针操作、动态内存、模板。不要求具备并行性的初步知识——作者会逐步引入概念。主要读者群体:

  • 技术专业的学生(计算机科学、计算数学);
  • 高性能系统(HPC)开发人员;
  • 从事仿真、数据处理、机器学习的工程师;
  • 并行编程课程的教师。

读者将学到什么

学习本书后,读者将能够:

  • 理解并行计算模型(SIMD、MIMD、SPMD);
  • 使用MPI编写进程间数据交换的程序;
  • 使用OpenMP并行化循环和任务;
  • 结合MPI和OpenMP开发混合应用程序;
  • 测量加速比、效率和可扩展性;
  • 避免常见错误:死锁、竞争条件、伪共享;
  • 使用性能分析工具(gprof、Intel VTune)进行优化。

优势

  • 实践导向。每个概念都有可运行的代码支持。示例从简单(数组求和)到复杂(并行矩阵乘法、Floyd算法)不等。
  • 结构清晰。章节逻辑连贯:由浅入深。每章末尾都有总结和练习(答案可在网上找到)。
  • 深度。作者不仅列举MPI/OpenMP函数,还解释它们为何如此工作。讨论了性能、延迟、带宽等问题。
  • 平台无关性。示例可在Linux、Windows(MSVC、MinGW)和macOS下编译。仅使用标准库。
  • 现实意义。尽管是2003年的书,MPI-2和OpenMP 2.0仍是现代标准(MPI-4、OpenMP 5.x)的基础。本书提供了坚实的基础。

推荐给谁

本书对所有希望认真从事并行编程的人都有用。如果你是初学者——从解释基本概念的前几章开始。如果你已有经验——跳过引言,专注于混合编程和优化的章节。特别推荐给教师:本书的结构非常适合作为一学期的课程教材,并配有

推荐