|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
高性能计算从广义上来说,已经不仅仅局限于使用高性能计算 机来加速计算了,从底层的硬件架构,操作系统,中间件,到并行编程模型,再到上层的应用,都在高性能计算所关注的领域范围内。
从个人的理解来看,从事高性能计算的人员分类大致可以分为两类:一是高性能计算应用研发类,二是高性能计算系统运维类。
要胜任高性能计算研发类岗位,需具备以下的相关知识:
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的硬件体系结构。
现在图形计算和通用计算这两者有大统一的趋势,建议两者并重比较好。但是要学习的知识就更多了。 |
|