《并行编程原理与实践》是一门理论性和实用性都很强的课程,主要讨论并行编程的基本概念,基本原理和基本方法。课程内容包括:并行计算机系统结构,并行程序设计的关键问题,以及常用的并行编程模型、语言和工具。通过本课程的学习可掌握有关并行编程的基础理论知识;通过实践掌握共享存储系统下多线程级并行编程、OpenMP编程、分布式存储系统下的MPI编程、CPU+GPU异构系统下的CUDA编程等技术;了解大数据处理相关并行编程技术,C++、Java、Python等高级语言中的并行编程技术,以及并行计算机系统结构和并行编程技术的发展趋势。课程中通过对国产处理器、超算系统的介绍,增强学生的民族自信心和自豪感,激励学生科技创新,助力科技强国。
课程内容包括:
第1章 并行编程原理
这部分主要介绍并行编程的基本原理,包括并行计算机系统的体系结构和性能评估,并行编程所涉及的任务划分、调度、数据分布、通信和同步等关键技术问题,并行编程的常用模型、语言和工具概况。
1.1 并行编程概述
1.2 并行计算机体系结构
1.3 并行编程的方法
1.4 并行编程的关键问题
第2章 共享存储系统并行编程
这部分主要介绍共享存储系统下的并行编程技术,包括线程级并行的基本概念,pthread多线程并行编程技术和OpenMP并行编程技术。
2.1 线程级并行编程
2.2 OpenMP编程
第3章 分布式存储系统并行编程
这部分主要介绍分布式存储系统下的并行编程技术,包括MPI标准和编程技术,云计算平台上大数据处理常用的编程框架,如MapReduce、Spark、Storm等。
3.1 MPI编程
3.2 大数据相关编程技术(暂未上线)
第4章 异构系统并行编程
这部分主要介绍异构系统下的并行编程技术,包括CPU与GPU/ FPGA/ ASIC/ DSP等加速芯片形成的异构多核系统结构,以及在机器学习等方面的应用,重点介绍CPU+GPU异构系统下的并行编程框架。
4.1 异构计算机系统结构
4.2 CUDA编程
4.3 OpenCL编程(暂未上线)
4.4 OpenACC编程(暂未上线)
第5章 高级程序设计语言与并行编程(暂未上线)
这部分从编程语言自身发展的层面,介绍主流编程语言中的并行编程语法元素、函数库和接口等。
5.1 C++并行编程
5.2 Java并行编程
5.3 Python并行编程
专题技术讲座