废墟猎人 发表于 2023-5-30 14:04:57

一文说透:高性能计算学习路线及教程!

高性能计算从广义上来说,已经不仅仅局限于使用高性能计算 机来加速计算了,从底层的硬件架构,操作系统,中间件,到并行编程模型,再到上层的应用,都在高性能计算所关注的领域范围内。
从个人的理解来看,从事高性能计算的人员分类大致可以分为两类:一是高性能计算应用研发类,二是高性能计算系统运维类。



要胜任高性能计算研发类岗位,需具备以下的相关知识:


1:Linux系统基本操作,学习常用命令,vim,gcc编译器等。

2:能熟练运用C/C++ /Fortran/python等语言中进行编程,会C最好。

3:常见软件编译安装,学习gmake/make/cmake等编译工具的使用方法。

4:如果做多核CPU应用程序开发,需要学习MPI ,OpenMP等并行编程模型。

深度优化需要结合相应的体系结构,需要学习计算机的体系结构相关的知识,例如指令集,流水线,寄存器,高速缓存以及SIMD等知识。

5:如果做异构程序开发,需要学习异构编程模型,例如CUDA,OpenCL或者OpenACC等。也需要学习异构加速硬件的体系结构,例如GPU,DSP或者Intel MIC等

6:相对应领域的专业背景知识及算法,精通算法能让你在高性能计算应用研发领域走的更远。



高性能计算系统运维涉及的内容就更广泛了:


从普通的服务器,到集群,再到云计算等,虽然说运维行业需要的门槛较低,但需要学习的内容更为繁杂。以集群运维管理为例,需要学习的知识有:

1:Linux系统基本运维管理,例如不同版本的系统安装、用户管理、网络配置、权限控制以及安全控制等。

2:集群用户管理及目录协同管理,比如LDAP的配置与使用。

3:网络运维,包括常见交换机的配置与管理。常见高速网络的运维管理,例如IB网,OPA网络配置与使用等。

4:并行文件系统的运维管理,例如lustre或者bgfs等文件系统的配置与管理。

5:作业调度系统的运维管理,常用的有slurm和pbs,建议学习slurm的配置与管理。

6:软件部署与安装,学习常用的编译工具gmake/make/cmake等

7:环境快速部署与搭建,比如conda使用。容器技术,例如docker或者singularity。



GPU并行计算主要分为两大块,一类是图形计算,一类是做通用计算。


图形计算主要是做图像处理的,例如电影画面渲染、游戏画面渲染等,这一类GPU通常称之为显卡。要做这方面的应用工程师,需要掌握计算图形学的知识,例如图形硬件、图形标准、图形交互技术、光栅图形生成算法、图像纹理等,需要掌握通用图形计算API的相关使用方法及优化方法,例如OpenGL,Vulkan,GLSL等。

通用计算主要是用来加速基础学科研究的,例如理论物理、化学材料、金属加工、生物信息、航空航天、国防工业、深度学习、人工智能等方向。要做这类工作,需要具备相关专业的知识背景、基础算法以及常用GPU的开发环境,例如CUDA、Rocm、OpenCL等使用方法,当然也需要熟悉GPU的硬件体系结构。

现在图形计算和通用计算这两者有大统一的趋势,建议两者并重比较好。但是要学习的知识就更多了。

heming2216 发表于 2023-5-30 15:07:09

sea_shao 发表于 2023-5-30 20:09:20

魏伟 发表于 2023-5-30 22:46:16

maogege-chen 发表于 2023-5-31 08:31:39

zawa 发表于 2023-5-31 08:35:24

minghuang 发表于 2023-5-31 08:37:07

谢谢分享

captain漠九 发表于 2023-5-31 09:05:01

kof2000 发表于 2023-6-1 08:56:50

页: [1]
查看完整版本: 一文说透:高性能计算学习路线及教程!