计算机系统是由软件和硬件组成的,微处理(CPU)在本世纪初就已从单核时代发展到了多核时代,目前大多数计算机系统的硬件体系结构都存在多个能够并行运行的处理单元,要充分发挥其性能,就需要编写并行程序,让程序在这些处理单元上并行执行;另一方面,软件应用的规模不断扩大,复杂性不断提高,如不采用并行方式实现,将会使其运行时间超长,几乎无法使用。总之,计算机系统结构的发展和软件应用的发展使得并行编程技术得到越来越广泛的应用。
《并行编程原理与实践》是一门理论性和实用性都很强的课程,主要讨论并行编程的基本概念,基本原理和基本方法。课程内容包括:并行计算机系统结构,并行程序设计的关键问题,以及常用的并行编程模型、语言和工具。通过本课程的学习可掌握有关并行编程的基础理论知识;通过实践掌握共享存储系统下多线程级并行编程、OpenMP编程、分布式存储系统下的MPI编程、CPU+GPU异构系统下的CUDA编程等技术;了解大数据处理相关并行编程技术,C++、Java、Python等高级语言中的并行编程技术,以及并行计算机系统结构和并行编程技术的发展趋势。课程中通过对国产处理器、超算系统的介绍,增强学生的民族自信心和自豪感,激励学生科技创新,助力科技强国。
程序设计基础(C语言)、计算机体系结构(组成原理)、操作系统。
英文书目
[1] A Grama, A Gupra, G Karypis, V Kumar. Introduction to Parallel Computing (2nd ed.). Addison Wesley, 2003.
[2] B Gaster, L Howes, D Kaeli, P Mistry, and D Schaa. Heterogeneous Computing With Opencl. Morgan Kaufmann Publishing and Elsevier, 2011.
[3] C Lin, L Snyder. Principles of Parallel Programming. USA: Addison-Wesley Publishing Company, 2008.
[4] Shane Cook. CUDA Programming: A Developer's Guide to Parallel Computing with GPUs. Morgan Kaufmann Publishing, 2012.
[5] David B. Kirk, Wen-mei W. Hwu. Programming Massively Parallel Processors, 3rd Edition. Morgan Kaufmann, 2016.
[6] Peter Pacheco. An Introduction to Parallel Programming. Morgan Kaufmann, 2011.
[7] Roman Trobec, Boštjan Slivnik, Patricio Bulić, Borut Robič. Introduction to Parallel Computing: From Algorithms to Programming on State-of-the-Art Platforms. Springer, 2018
[8] Bertil Schmidt, Jorge Gonzalez-Dominguez, Christian Hundt, Moritz Schlarb . Parallel Programming Concepts and Practice. Morgan Kaufmann, 2018.
[9] Michael McCool, Arch D. Robison, James Reinders. Structured Parallel Programming - Patterns for Efficient. Morgan Kaufmann, 2012.
中文书目
[1] 并行编程模式. 张云泉等译. 机械工业出版社, 2015.
[2] 并行程序设计导论. 邓倩妮等译. 机械工业出版社, 2013.
[3] 并行程序设计:概念与实践. 张常有等译. 机械工业出版社, 2020.
[4] 结构化并行程序设计:高效计算模式. 于策等译. 机械工业出版社, 2018.
[5] 并行计算—结构、算法、编程. 陈国良著. 高等教育出版社, 1999.
[6] 高性能计算并行编程技术—MPI并行程序设计. 都志辉著. 清华大学出版社, 2001.
[7] 并行编程. 张杨编著. 清华大学出版社, 2023.
Q : 该课程适合哪些人学习?
A : 本课程适合所有对计算机系统结构和高性能计算感兴趣的学生、学者、软硬件工程师学习,您能从中得到系统设计和优化的启发。