客服咨询

意见反馈

并行编程原理与实践
计算机信息及网络安全//
0.0
70
视频
12.5
课时
31.25
介绍
目录

课程概述

《并行编程原理与实践》课程浓缩了计算机系统结构与并行编程的众多知识,涵盖多线程编程(Pthread)、OpenMP、MPI、CUDA等多种并行编程技术,让您用最短的时间了解最广阔的并行编程相关概念、原理、方法和工具。课程参考了CMU、UC Berkeley等国内外名校的相关课程和优秀书籍,含英咀华,溯本求源,探索系统结构与并行编程的本质。通过本课程的学习,您能够深入理解并行计算机系统和程序设计的原理,掌握共享内存、分布式、异构平台上的并行编程和优化技术,了解计算机系统结构和并行编程技术的发展趋势。

课程目标

考核评价

讲师介绍

王一拙

计卫星

详细介绍

    《并行编程原理与实践》是一门理论性和实用性都很强的课程,主要讨论并行编程的基本概念,基本原理和基本方法。课程内容包括:并行计算机系统结构,并行程序设计的关键问题,以及常用的并行编程模型、语言和工具。通过本课程的学习可掌握有关并行编程的基础理论知识;通过实践掌握共享存储系统下多线程级并行编程、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并行编程

专题技术讲座

0. 课程介绍
课程介绍

(403s)

1. 并行编程概述
1.1 为什么要进行并行编程

(563s)

1.2 如何实现并行程序

(427s)

1.3 并行程序的性能评估

(591s)

1.4 超算系统动态和排名

(532s)

2. 并行计算机体系结构
2.1 计算机系统结构的背景知识

(661s)

2.2 计算机系统的分类

(357s)

2.3 传统体系结构

(1072s)

2.4 现代体系结构

(586s)

3. 并行编程方法
3.1 并行编程的基本过程

(632s)

3.2 寻找并发性

(886s)

3.3 并行程序的算法结构

(501s)

3.4 并行编程模式

(796s)

4. 并行编程的关键问题
4.1 任务划分(Partitioning)

(269s)

4.2 调度(Scheduling)

(961s)

4.3 数据分布

(1010s)

4.4 同步(Synchronization)

(585s)

4.5 通信(Communications)

(259s)

5. 多线程编程
5.1 多线程的基本概念

(585s)

5.2 Pthreads线程库

(236s)

5.3 线程的管理

(799s)

5.4 线程的同步

(705s)

6. OpenMP编程
6.1 OpenMP简介

(519s)

6.2 并行域

(179s)

6.3 工作共享

(1395s)

6.4 数据环境

(692s)

6.5 同步

(388s)

6.6 库函数和环境变量

(132s)

7. MPI编程
7.1 MPI简介

(448s)

8. 异构计算概述
8.1 什么是异构计算机系统

(504s)

8.2 CPU+GPU异构系统

(557s)

8.3 异构系统的选择和挑战

(238s)

8.4 异构并行编程模型

(655s)

9. CUDA编程
9.1 GPU编程概述

(459s)

9.2 CUDA编程模型

(1100s)

9.3 CUDA C语言编程

(1348s)

10. 并发相关Bug
10.1 并发相关错误

(1095s)

10.2 性能相关问题

(930s)

10.3 并发问题检测

(1019s)