并行计算:高性能计算学习路线(针对大二同学)

您所在的位置:网站首页 并行算法的设计技术 并行计算:高性能计算学习路线(针对大二同学)

并行计算:高性能计算学习路线(针对大二同学)

2024-07-03 16:40:49| 来源: 网络整理| 查看: 265

下面是给团队里的大二的同学列的高性能计算方向学习路线和学习资料汇总,可以供有这方面学习需求的同学参考。 (后面我会再加一个分布式机器学习方向学习路线,持续更新中...)

基础课程 (并行)算法设计与分析

离散数学基础好的同学可以直接看《算法导论》,该书是算法设计领域非常权威的资料(对应MIT 6.006课程),比如20年CPC初赛的图BFS算法的伪代码就直接截取自该书。离散数学基础差一点的学习可以看学堂在线邓俊辉老师的《数据结构》公开课,该课程对初学者非常友好。

数值算法

并行算法优化不光包括面向树、图等离散对象的算法,也有面向矩阵、多项式等连续对象的算法,包括但不限于LU分解、QR算法、高斯消元、有限元分析、离散傅里叶变换等。这部分与离散算法有所不同的是,需要特别注意数值稳定性、数值淹没、数值算法收敛性等问题。可以参考Timothy-Sauer的《数值分析》,可以用C/C++自己实现下上面的算法。

计算机系统

在算法优化过程中需要特别注意从整个计算机系统层面的宏观思考,而系统既包括单机也包括多机,即包括单核也包括多核。比如一提到“并行”这个词,你就要想到多机器之间的进程级并行、单机器上的线程级并行、指令级的流水线并行等。此外,以空间换时间是个很常用的手段,一提到局部性原理,你就要想到网络、磁盘访问的缓冲区局部性、内存中数组排列的访存局部性、CPU高速缓存中的局部性等。这方面推荐《CSAPP》这本书及其配套的Lab(对应CMU 15-213课程)。这是该课程网站:https://www.cs.cmu.edu/~213/, 相关lab也可以从GitHub上下载。

操作系统

操作系统是CS中对编程能力要求最高的一门课,据说OS课的实验完全搞懂了,几万行代码的项目随便上(大雾)。一般而言,像Unix的系统编程接口(如pthread)和网络编程接口在计算机系统课程中已经学过了,OS这门课的重点就是如何实现这些接口,比如fork的底层实现、锁的底层实现、中断机制的底层实现等,这方面可以看《Operating Systems: Three Easy Pieces》(中文译名操作系统导论)搭配MIT 6.828的几个lab。该课程网站:https://abelay.github.io/6828seminar/index.html。 同样,相关lab也可以从Github上下载。视频方面,推荐哈工大李治军的操作系统和南京大学蒋炎岩老师的《操作系统:设计与实现》课程。

并行体系结构与编程

台湾新竹清华大学周志远老师的网课《并行计算与并行编程课程》讲的非常不错,该课程仿照CMU 15-418课程的结构设置,着重介绍并行计算通用的理论和思想,对CUDA、MPI、OpenMP、Spark等实际技术都有包括。教材的话目前我看到的最好的就是David B.Kirk写的《大规模并行处理器编程实战》,这本书以CUDA为载体,介绍了许多并行计算的通用思想,包括访存带宽优化、线程粒度、原子操作等。NvidiaCUDA自带了许多官方样例,包括了对傅里叶变换、N体问题、卷积运算等许多算法优化案例,项目地址如下:https://github.com/NVIDIA/cuda-samples。

常备文档和手册 C/C++语言官方文档:https://en.cppreference.com/w/ CUDA官方文档:https://docs.nvidia.com/cuda/ MPI官方文档:https://www.mpi-forum.org/docs/ + 都志辉写的那个MPI接口讲解。 Unix接口速查:Richard Stevens《Unix高级编程》 Linux下面的awk、sed等工具使用和Makefile编写、程序怎么链接这些杂七杂八的:《鸟哥的Linux私房菜》+ man文档 神威的文档和手册(针对主攻CPC的同学) 开源项目 算法导论的习题解答:https://github.com/walkccc/CLRS CSAPP的习题解答:https://github.com/DreamAndDead/CSAPP-3e-Solutions 数值分析算法的实现:https://github.com/lonelyprince7/NumericalAnalysis (zhy自己实现的,haha) Nvidia的CUDA优化官方样例:https://github.com/NVIDIA/cuda-samples。 MIT 6.828的Lab:https://github.com/SmallPond/MIT6.828_OS CMU 15-213的Lab:https://github.com/JonnyKong/CMU-15-213-Intro-to-Computer-Systems 2020年的CPC决赛赛题-基于太湖之光平台的通用型网格计算方法:https://github.com/lonelyprince7/Grid-Computing 2020年的CPC初赛赛题-基于太湖之光超算平台与MPI集群的的分布式图BFS算法:https://github.com/lonelyprince7/DistributedBFS 2019年的CPC初赛赛题-基于神威·太湖之光超算平台的模板卷积运算优化:https://github.com/lonelyprince7/Stencil CUDA矩阵乘法的优秀开源实现:https://github.com/NVIDIA/cutlass CUDA矩阵分解算法的优秀开源实现:https://github.com/cuMF/cumf_als 基于C++的迷你深度学习框架实现:https://github.com/E1eveNn/xshinnosuke_cpp 基于Intel平台的深度学习算子优化:https://github.com/PasaLab/dolphin OpenMP实现的一个异步坐标更新算法,像优化深度学习底层架构的同学可以看看:https://github.com/ZhiminPeng/ARock 和上面一样,也是一个分布式优化算法项目:https://github.com/uclaopt/TMAC 其他的打比赛方面就需要不断去借鉴往年参赛队伍的优化代码,以练促学了


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭