高性能计算体系架构的划分
- 向量机PVP
- 对称多处理机SMP
- 大规模并行处理机MPP
- 工作站集群
HPC是一个囊括算法、硬件、软件等各方面的较为综合的方向
关键技术
- 传统研究方向
1.1 处理器加速部件
1.2 大规模系统互联
1.3 高性能通信软件
1.4 高性能算法库
1.5 应用 - 新兴的研究领域
2.1 超算云
开发分层的能力模型,将复杂的高性能计算知识转化成逐层可理解的知识、技能训练
-
并行算法设计能力
并行算法的定义和分类、并行算法的表达、并行算法的复杂度度量、并行算法中的同步和通讯、并行计算模型(例如PRAM模型、异步APRAM模型、BSP模型、logP模型等)、并行计算的一般设计方法及基本设计技术、并行算法的一般设计过程等 -
并行编程能力
并行归约算法、并行前缀加法、并行矩阵处理;GPU编程语言选择(OpenCL、CUDA 与C++ AMP);了解计算机异构并行计算架构
除此之外,了解整个生态需要几个部分的组件,这些组件都有什么。跑几个demo,每个部分可以挑一两个框架仔细研究其源码,比如消息队列学一学kafka,日志采集学一学flume、分布式数据库学一学Hbase、计算框架学一学spark等。如果时间够用,还是建议从hadoop生态开始学,再学spark、flank等。集群的搭建也很重要,仅熟悉client端口调用还是不太够用的 -
应用优化能力
CPU基础知识,比如CPU如何读取数据,CPU执行一条计算命令的过程是怎么样的;存储系统的层级结构,比如存储系统的层级结构是怎样的,不同层级的存储有什么差别;IO系统知识,比如了解IO如何读写。
除此之外,OS知识和编译器的知识也是必须要掌握的。比如,OS如何进行进程调度,如何进行内存分配,如何访问IO设备,如何提供上层接口(什么是系统调用,系统调用如何被执行)、如何优化执行代码等。 -
模型抽象能力
从底层的硬件架构,操作系统,中间件 -> 并行编程模型 -> 再到上层的应用
从事高性能计算的人员分类
- 高性能计算应用研发类
- 二是高性能计算系统运维类
以下是一个适用于初学者的高性能计算学习路线:
- 掌握编程语言:学习一种高级编程语言(例如C、C++、Python),理解其基本语法、数据类型、控制结构和函数。掌握这些基础知识是后续学习的基础。
- 熟悉并行编程模型:高性能计算的一个重要特点就是并行计算,因此需要掌握并行编程模型,例如共享内存模型(OpenMP)和分布式内存模型(MPI)等。这些模型的学习需要对并发编程、同步、互斥、死锁、调度等概念有深刻的理解。
- 理解计算机体系结构:学习计算机组成原理、操作系统、计算机网络等基础知识,了解计算机体系结构的工作原理,如内存、缓存、IO等,这些知识是进行高性能计算的必备基础。
- 学习数值计算:数值计算是高性能计算的核心内容,需要学习数值分析、数学模型建立、求解和优化等方面的知识。
- 掌握算法和数据结构:高性能计算需要优秀的算法和数据结构,例如排序、搜索、图算法、线性代数等。这些知识对于高效利用计算资源和提高计算效率至关重要。
- 实践:通过实践,运用已学知识进行实际问题求解,例如高性能计算竞赛、实验室项目等。这有助于更深入地理解学术知识、技能和技术,培养团队协作、创新思维和解决问题的能力。
高性能计算上层有算法
中层是程序设计与优化
底层是硬件设计