基本信息: - 教材:本课程主要讲授数值并行计算,内容以课堂讲义为主
- 主要参考资料:
并行计算与实现技术,迟学斌等,科学出版社,2015 并行计算导论,张林波等, 清华大学出版社,2006 Parallel Programming: Concepts and Practice, Schmidt et al, 2018 (并行程序设计: 概念与实践, 张常有等译, 2020) Parallel and High Performance Computing, Robey & Zamora, 2021 (并行计算与高性能计算, 殷海英译, 2022) The Art of High Performance Computing, Eijkhout, 2023 - 远程客户端: SSH Secure Shell Client-3.2.9, SecureCRT
|
|
电子课件: - 02.27,并行计算介绍
网络资源: Introduction to Parallel Computing Tutorial (Lawrence Livermore National Lab) 计算机体系结构基础 课外阅读: 第60届全球超级计算机TOP500排名及分析,2022.11
- 03.06,Linux 操作系统介绍
参考资料: Linux Command Quick Reference, Vi 简介, Vi 小结, vim cheat sheet Linux 就该这么学 (第 2 版), 刘遄, 2021 Linux命令行与shell脚本编程大全 (第 4 版), Blum 等著, 2020, 门佳译, 2022 网络资源: Linux 教程, Shell 教程, Linux 常用命令, Linux 命令搜索 vim 入门基础, vi/vim 菜鸟教程 CentOS/Ubuntu 下载: 上海交大FTP, 清华开源软件镜像, 阿里巴巴开源镜像, 网易开源镜像
- 03.13,C 语言编程介绍 (示例代码)
参考资料: C 语言程序设计笔记, C Reference Card, 常用头文件 C Primer Plus (第 6 版), Prata 著, 2014, 姜佑译 2016, 涵盖 C11 零基础学 C 语言 (第 4 版), 康莉等著, 2019 网络资源: C 语言入门, C 语言教程, C reference, C 语言运算优先级, GCC docs online 编译器: https://gcc.gnu.org, https://clang.llvm.org - 03.20,C 语言编程介绍 (续)
应用举例: 矩阵乘积快速计算 课外阅读: Why GEMM is at the heart of deep learning 作业:用 C 语言编程实现矩阵乘积的各种不同算法, 并比较这些算法的计算效率.
- 03.27,OpenMP并行编程(一)
参考资料: Quick Card 4.0, Quick Card 5.0, Specification 4.0, Specification 5.0, OpenMP Examples 4.0.2 网络资源: OpenMP 主页, OpenMP Tutorial (Lawrence Livermore National Lab) 示例代码: OMP_hello.c, OMP_parallel_01.c, OMP_parallel_02.c OMP_for.c, OMP_parallel_for.c, OMP_for_schedule.c OMP_pi.c, OMP_pi_critical.c, OMP_pi_for.c - 04.03,OpenMP并行编程(二)
示例代码: OMP_sections.c, OMP_critical_pi.c, OMP_atomic_01.c, OMP_atomic_02.c - 04.10,OpenMP并行编程(三)
示例代码: OMP_lock.c, OMP_lock_pi.c, OMP_lock_atomic_critical.c 作业:实现 Jacobi 迭代算法的 OpenMP 并行计算.
- 04.17,矩阵-向量乘积并行算法, 矩阵-矩阵乘积并行算法
示例代码: C_MatVec_for.c, OMP_MatVec_for.c, OMP_MatVec_row.c OMP_MatMul_for.c, OMP_MatMul_row.c - 04.24,线性方程组直接法并行计算
示例代码: C_LU.c 作业:实现部分选主元 LU 分解的串行算法和 OpenMP 并行算法.
- 05.01,五一放假
- 05.08,消息传递编程接口 MPI:(一)编程基础
参考资料: MPI 3.1 Report (2015), MPI 4.0 Report (2021), 被替换的 MPI 旧函数 (2021) 网络资源: MPI-Forum, mpitutorial MPI 实现: MPICH, OpenMPI 示例代码: MPI_hello.c, MPI_pi.c MPI_Sendrecv_01.c, MPI_Sendrecv_02.c, MPI_Sendrecv_03.c, MPI_Sendrecv_04.c - 05.15,消息传递编程接口 MPI:(二)消息传递
示例代码: MPI_pi_reduce.c 作业:使用 reduce 计算 pi 的值,连续分配计算小区间. - 05.22/29,基于 MPI 的矩阵向量乘积, 基于 MPI 的矩阵矩阵乘积
示例代码: MPI_matvec.c, MPI_matvec_v.c, MPI_matvec_swap.c MPI_matmul.c, MPI_matmul_swap.c - 06.05,消息传递编程接口 MPI:(三)MPI 数据类型
消息传递编程接口 MPI:(四)进程与通信器操作 基于 MPI 的 LU 分解 - 06.12,基于 MPI 的二维 Poisson 方程求解
示例代码: jacobi.c, MPI_jacobi.c
|
|
参考资料: - Pacheco 著,邓倩妮等译,并行程序设计导论(An Introduction to Parallel Programming),机械工业出版社,2012
- 李晓梅等著,数值并行算法与软件,科学出版社,2014
- 陈国良, 《并行计算: 结构、算法与编程》第二版, 高等教育出版社, 2003
- 陈国良, 安虹等,《并行算法实践》, 高等教育出版社, 2004.
- J. Dongarra等著, 莫则尧等译, 《并行计算综论》, 电子工业出版社, 2005(英文版2003)
- Introduction To Parallel Computing (中文翻译)
OpenMP/MPI - M. Quinn著, 陈文光等译, 《MPI与OpenMP并行程序设计(C语言版)》, 清华大学出版社, 2004
- 秋明等著, OpenMP编译原理及实现技术, 清华大学出版社, 2012.
- 张武生等, 《MPI并行程序设计实例教程》, 清华大学出版社, 2009.
- M. Snir, et al, 《MPI: The Complete Reference》, 1996, 2nd 2001.
- W. Gropp, et al, 《MPI: The Complete Reference, Vol.2, MPI-2 Extensions》, 1998.
- W. Gropp, et al, 《Using MPI: Portable Parallel Programming With the Message-passing Interface》, 2nd, 1999.
- MPI Turorial
- MPI2 介绍(中文)
Fortran - S.J. Chapman 著, 《Fortran 95/2003程序设计》(第3版), 中国电力出版社, 2009.
- I. Chivers, J. Sleightholme, Introduction to Programming with Fortran, 2nd, 2012
(中译本, Fortran权威指南, 第一版, 2009)
GPU - J. Sander 等著, 《GPU高性能编程CUDA实战》, 机械工业出版社, 2012.
- R. Farber 著, 《高性能CUDA应用设计与开发:方法与最佳实践》, 机械工业出版社, 2013.
- A. Munshi 等著, 《OpenCL编程指南》, 机械工业出版社, 2012.
|
|