如果入门没有专业方向,自学摸索的话,不容易有自己的核心竞争力。国内目前生态尚不完善,学习资料也比较少~如果想要系统学习的话,一定不要错过国内首家专业做高性能计算的系统学习课程。
~我们是国内首家做高性能计算人才培养和推荐的,导师均来自国内一流科研院所,课程和实践体系是来自原天河团队导师研发,合作单位覆盖国内超算中心、芯片企业及互联网企业,有需要的欢迎私信
我们把2022年的课程公益分享在这里,需要的童鞋可以自己看哦
花费近2W购买的并行计算/超算全套系统入门到高级课程,全套资料免费分享,原天河团队导师主讲!全程硬核,错过后悔_哔哩哔哩_bilibili
接下来回答问题~
高性能计算从广义上来说,已经不仅仅局限于使用高性能计算机来加速计算了,从底层的硬件架构,操作系统,中间件,到并行编程模型,再到上层的应用,都在高性能计算所关注的领域范围内。
从个人的理解来看,从事高性能计算的人员分类大致可以分为两类:一是高性能计算应用研发类,二是高性能计算系统运维类。
要胜任高性能计算研发类岗位,需具备以下的相关知识:
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的硬件体系结构。
现在图形计算和通用计算这两者有大统一的趋势,建议两者并重比较好。但是要学习的知识就更多了。
现在,猿代码科技(http://www.ydma.com)作为国内富有责任心和使命感的在线教育&互联网科技企业,是首家响应2023年4月科技部提出的超算互联网之超算/高性能计算人才培养的企业。
猿代码科技(http://www.ydma.com)率先研发出系统、实战、实用的高性能计算课程,内容涵盖CPU并行程序优化、GPU并行程序优化、超算运维三大块,为广大程序员、在校大学生群体提供实用性强、具有竞争力的技能训练。
猿代码科技(http://www.ydma.com)的高性能计算课程有以下4点优势:
1、国内知名超算专家导师团近距离指导,名师指点胜过自己摸索半年
2、价值超10亿元的天河超算实践平台上的真实项目实践
3、任务式、交互式的实战训练
4、6小时实战化并行编程马拉松考核。
目前全球范围内公认的学习方法是任务式导向学习,猿代码科技(http://www.ydma.com)通过刻意训练以及结果导向的学训练考一体学习系统,帮助学员学有所成、考过就能胜任工作。