(七)High Performance Computing高性能计算学习路径

2024-11-21 04:48

(七)High Performance Computing高性能计算学习路径




1. 初阶

顺序

资源

知识分类/使用方法

链接和介绍

0

GPU申请


Google Colab Google Colab是Google提供的一个在线的Python编程环境,其中包含了免费使用的GPU服务器资源,可用于进行深度学习等方面的研究和实验。只需拥有Google账户即可免费申请使用,无需担心服务器的配置和维护等问题。https://zhuanlan.zhihu.com/p/90977199


AI Studio和飞桨:AI Studio和飞桨算是后起之秀,AI Studio是百度提供的一个针对AI学习者的在线一体化开发实训平台。https://zhuanlan.zhihu.com/p/90977199


Kaggle Kaggle是一个数据科学竞赛平台,除了数据竞赛外,也提供免费的GPU服务器资源供用户使用。用户可以在平台上进行机器学习、深度学习等方面的研究,同时也可以参与竞赛获取奖金。https://zhuanlan.zhihu.com/p/90977199


AWS Educate AWS Educate是由亚马逊AWS提供的教育计划,该计划为教育机构和学生提供免费的AWS云计算资源,包括GPU服务器等。学生可以通过注册AWS Educate账户,获得AWS的教育奖励,其中包括免费使用AWS云计算资源的机会。https://aws.amazon.com/cn/education/awseducate/


GCP学生计划 GCP学生计划是由谷歌云平台提供的教育计划,该计划为学生提供免费的GCP云计算资源,包括GPU服务器等。学生可以通过注册GCP学生计划账户,获得免费的GCP云计算资源使用权限。https://zhuanlan.zhihu.com/p/360231393


Paperspace Gradient:Paperspace Gradient 是一个云端深度学习平台,提供了免费的 GPU 使用时间。你可以通过免费试用账户来使用 Paperspace Gradient 的 GPU 进行深度学习训练。https://www.paperspace.com/artificial-intelligence

1

CMU 15-418/Stanford CS149: Parallel Computing

【大局观】

CMU 15-418:

https://csdiy.wiki/%E5%B9%B6%E8%A1%8C%E4%B8%8E%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F/CS149/


http://15418.courses.cs.cmu.edu/spring2016/


Stanford CS149:

https://gfxcourses.stanford.edu/cs149/fall21


Kayvon Fatahalian 教授此前在 CMU 开了 15-418 这门课,后来他成为 Stanford 的助理教授后又开了类似的课程 CS149。但总体来说,15-418 包含的课程内容更丰富,并且有课程回放,但 CS149 的编程作业更 fashion 一些。我个人是观看的 15-418 的课程录影但完成的 CS149 的作业。


这门课会带你深入理解现代并行计算架构的设计原则与必要权衡,并学会如何充分利用硬件资源以及软件编程框架(例如 CUDA,MPI,OpenMP 等)编写高性能的并行程序。由于并行计算架构的复杂性,这门课会涉及诸多高级体系结构与网络通信的内容,知识点相当底层且硬核。与此同时,5 个编程作业则是从软件的层面培养学生对上层抽象的理解与运用,具体会让你分析并行程序的瓶颈、编写多线程同步代码、学习 CUDA 编程、OpenMP 编程以及前段时间大热的 Spark 框架等等。真正意义上将理论与实践完美地结合在了一起。

2

MIT 6.172 Performance Engineering Of Software Systems

【大局观】

https://ocw.mit.edu/courses/6-172-performance-engineering-of-software-systems-fall-2018/


从系统优化的角度入手, 这个课是我见过从系统优化角度讲HPC入门最好的课

==

简单的开始,但是理论知识包含的不够深入,更多是上手

2‘

超算/并行计算入门课程

中文课程

https://www.bilibili.com/video/BV1JG4y1F7Gu/?spm_id_from=333.999.0.0&vd_source=72867308e8b7b6d7774a7e4be6278f68

3

UC Berkeley CS267 Applications of Parallel Computers


https://sites.google.com/lbl.gov/cs267-spr2021?pli=1

4

(optional)《入门与实践:使用MATLAB进行高性能数值计算》



5

(optional)《高性能计算简介》




2. 中阶

顺序

资源

知识分类/使用方法

链接和介绍

1

CUDA TRAINING SERIES

【CUDA】

https://www.olcf.ornl.gov/cuda-training-series/

2

CUDA Toolkit Documentation

【CUDA】

https://docs.nvidia.com/cuda/

3

MPI Tutorial 和官方文档

【MPI】

https://mpitutorial.com/tutorials/

https://www.mpi-forum.org/docs/

4

intel Intrinsics Guide

【SIMD】

https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#cats=Arithmetic&expand=3904,3913,4011,4014,4602,4011&techs=MMX,AVX_512,AMX,SVML,Other

5

《高性能计算:架构、应用及其发展》




3. 高阶

顺序

资源

知识分类/使用方法

链接和介绍

1

《算法导论》

【算法】

‍https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg7a2IuwYozoCQiwQ.pdf‍


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

==

其实Charles Leisersen也是HPC界大佬。

2

Hennessy & Patterson Computer Architecture: A Quantitative Approach 最新版(第六版)

【计算机架构】

‍https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg7a2IuwYovKrslAY.pdf‍


3

Onur Mutlu的Computer Architecture, ETH Zürich

【计算机架构】

https://www.youtube.com/watch?v=wHVyshkyZ4w&list=PL5Q2soXY2Zi9OhoVQBXYFIZywZXCPl4M_


Onur是计算机系统架构领域最顶尖的学者之一,他的课讲的也很好,而且网上免费放送给大家

4

深入理解计算机系统(CSAPP)

【计算机系统】

‍https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg7a2IuwYouND97gI.pdf


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

5

《操作系统导论》《Operating Systems: Three Easy Pieces》

【操作系统】

‍https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg7a2IuwYogPqW3AI.pdf


《操作系统导论》有一个附录,记载了一些可能的 xv6 实验项目,其中充满了关于潜在项目的很棒想法。

6

《鸟哥的Linux私房菜》

【Linux】

https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg7a2IuwYoyNyfogU.pdf


譬如怎么在电脑上装一台 Linux 出来、怎么查看进程、怎么操作文件、软链硬链、格式化磁盘、配置网卡、curl 一个网页等。

强烈建议如果你希望自己的操作系统方面的知识好一些,赶紧把你的 Windows 系统装成 Ubuntu,或者换台 Mac 也行。

7

学术会议

想进入学术界多参加会议,阅读论文

最主要的:

SC(大而广):

https://supercomputing.org/


ICS:

https://www.isc-hpc.com/


HPCA (PPoPP)(偏并行编程):

https://hpca-conf.org/2022/


IPDPS(系统算法都有):

https://www.ipdps.org/


SPAA(并行算法与architecture):

https://spaa.acm.org/


ICPP:

https://insidehpc.com/tag/icpp/


ASPLOS:

https://www.asplos-conference.org/

7‘

招聘要求

有找工作需要的同学,找一些招聘启事阅读,重点关注有什么要求,然后有针对性地查缺补漏

https://zhuanlan.zhihu.com/p/619516214


DIY吧 除非你...
若你有信心 我建议CS申硕申博求职DIY~ 若你想找专家伴你成长 我建议寻找做啥成啥的人 他们能力强 资源多 能解决你一切CS申硕申博求职身份生活的挑战~
先找其他机构?
肯定有其他靠谱机构 但如果你感觉他们干不过我、或你走投无路了 你再来找我吧hhh 但如果我没名额了 希望你别难过 我不是针对你 而是我每年名额都会满
就想加肖哥微信
我的微信被我藏在我荡气回肠的人生经历里 xiaogeedu.tech/col.jsp?id=253 辛苦你去找下hhh 我是美西时区 但每年9月中-12月中是申请季/招聘季 作息是乱的
不考虑商业合作
不商业合作 因为我不知谁靠谱 不合作能杜绝狗血 因噎废食能保护我自己 且我不缺流量还要赶走流量 找我合作您巨亏hh 我与任何商家或申硕申博求职中介都无关
用电脑访问本站
不建议用手机端访问本站,看着贼挤,在电脑端看着舒服hh