高性能计算体系架构的划分

  1. 向量机PVP
  2. 对称多处理机SMP
  3. 大规模并行处理机MPP
  4. 工作站集群

HPC是一个囊括算法、硬件、软件等各方面的较为综合的方向

关键技术

  1. 传统研究方向
    1.1 处理器加速部件
    1.2 大规模系统互联
    1.3 高性能通信软件
    1.4 高性能算法库
    1.5 应用
  2. 新兴的研究领域
    2.1 超算云

开发分层的能力模型,将复杂的高性能计算知识转化成逐层可理解的知识、技能训练

  1. 并行算法设计能力
    并行算法的定义和分类、并行算法的表达、并行算法的复杂度度量、并行算法中的同步和通讯、并行计算模型(例如PRAM模型、异步APRAM模型、BSP模型、logP模型等)、并行计算的一般设计方法及基本设计技术、并行算法的一般设计过程等

  2. 并行编程能力
    并行归约算法、并行前缀加法、并行矩阵处理;GPU编程语言选择(OpenCL、CUDA 与C++ AMP);了解计算机异构并行计算架构
    除此之外,了解整个生态需要几个部分的组件,这些组件都有什么。跑几个demo,每个部分可以挑一两个框架仔细研究其源码,比如消息队列学一学kafka,日志采集学一学flume、分布式数据库学一学Hbase、计算框架学一学spark等。如果时间够用,还是建议从hadoop生态开始学,再学spark、flank等。集群的搭建也很重要,仅熟悉client端口调用还是不太够用的

  3. 应用优化能力
    CPU基础知识,比如CPU如何读取数据,CPU执行一条计算命令的过程是怎么样的;存储系统的层级结构,比如存储系统的层级结构是怎样的,不同层级的存储有什么差别;IO系统知识,比如了解IO如何读写。
    除此之外,OS知识和编译器的知识也是必须要掌握的。比如,OS如何进行进程调度,如何进行内存分配,如何访问IO设备,如何提供上层接口(什么是系统调用,系统调用如何被执行)、如何优化执行代码等。

  4. 模型抽象能力

从底层的硬件架构,操作系统,中间件 -> 并行编程模型 -> 再到上层的应用

从事高性能计算的人员分类

  1. 高性能计算应用研发类
  2. 二是高性能计算系统运维类

以下是一个适用于初学者的高性能计算学习路线:

  1. 掌握编程语言:学习一种高级编程语言(例如C、C++、Python),理解其基本语法、数据类型、控制结构和函数。掌握这些基础知识是后续学习的基础。
  2. 熟悉并行编程模型:高性能计算的一个重要特点就是并行计算,因此需要掌握并行编程模型,例如共享内存模型(OpenMP)和分布式内存模型(MPI)等。这些模型的学习需要对并发编程、同步、互斥、死锁、调度等概念有深刻的理解。
  3. 理解计算机体系结构:学习计算机组成原理、操作系统、计算机网络等基础知识,了解计算机体系结构的工作原理,如内存、缓存、IO等,这些知识是进行高性能计算的必备基础。
  4. 学习数值计算:数值计算是高性能计算的核心内容,需要学习数值分析、数学模型建立、求解和优化等方面的知识。
  5. 掌握算法和数据结构:高性能计算需要优秀的算法和数据结构,例如排序、搜索、图算法、线性代数等。这些知识对于高效利用计算资源和提高计算效率至关重要。
  6. 实践:通过实践,运用已学知识进行实际问题求解,例如高性能计算竞赛、实验室项目等。这有助于更深入地理解学术知识、技能和技术,培养团队协作、创新思维和解决问题的能力。

高性能计算上层有算法
中层是程序设计与优化
底层是硬件设计