《超算竞赛导引》阅读笔记

第一课 超算的发展与应用

  1. 超算的发展与架构分类
    第一代的超级计算机是单指令多数据流(SIMD)的阵列处理机
    第二代的超级计算机是具有流水结构的向量机
    (向量机系统结构按向量操作对象及结果主要存放 在寄存器中还是存储器中,可分为存储器-存储器工作方式向量机和寄存器-急促你工作方式向量机两大类。前者:向量操作的源向量都取自主存且操作生成的结果向量也存放在主存中,而后者则都取自或存放到向量寄存器中)
    第三代的超级计算机是具有多指令多数据流(MIMD)形式的共享主存多处理机系统
    第四代的超级计算机是MPP系统
    第五代的超级计算机是集群系统
    (早先的集群系统采用同构方式,当今的集群逐步转向采用异构方式,主要有CPU+GPU或者CPU+MIC(many integrated core))
    架构分类:
    共享存储-SIMD(SM-SIMD)
    分布存储-SIMD(DM-SIMD)
    共享存储-MIMD(SM-MIMD)
    分布存储-MIMD(DM-MIMD)
  2. 异构计算系统:①一组异构机器,如向量机,MIMD机、集群、图形处理机等②将各种异构机互联起来的高速网,可以是商品化的网络,也可以是用户定制的网络;③对应的异构计算的支撑软件
  3. 异构并行计算的基本原理:首先解析求解任务的并行性类型,其次将具有相同类型的代码段划分到同一个子任务中,然后根据不同的并行性类型将各子任务分配到最适合执行它的计算资源上加以执行,达到使计算任务总的执行时间为最小的目的。
  4. 五种并行程序设计算法范例

    第二课 超算集群系统的构建与功耗管理1. 超算集群系统的组成:当前的HPC主要架构和MPP两种,主要由五类计算(或网络)设备和三类网络组成,五类设备主要指管理节点以及登录节点、计算节点(包括胖瘦节点)、交换设备、I/O节点和存储设备。另外,当前很多高性能服务器都采用CPU+加速处理器异构的方式,因此有些高效能集群系统还包括加速节点。1)登录节点:采用硬件冗余的容错方法,如采用双机热备份的方式。或至少采用RAID技术保证用户节点的数据安全性,对计算性能要求不高,整套集群根据需求配置数台机架式服务器即可2)管理节点:也需要有硬件冗余保护,和登陆节点一样,对计算性能要求不高,整套集群根据需求配置数台机架式服务器即可3)计算机点:瘦节点:集群的计算主力由相同的大量瘦节点构成,主要用于执行并行运算。节能和节省空间成为客户的重要需求之一。胖节点:用于数据划分困难或对内存需求特别大的特殊应用运算,一般采用四路以上的服务器,内存容量大,价格也比较昂贵。4)异构节点:同时使用CPU,GPU或者MIC5)交换设备:往往采用具备几百个端口的大型交换机6)I/O节点和存储设备:为了使任务可以并行执行,每台执行任务的计算节点必须能够访问同样的数据。同时计算产生的大量重要数据需要拥有较大存储空间,且具备安全措施的专业设备进行存储。I/O节点提供存储设备与计算节点之间的接口,用来确保数据访问的同步。高性能计算系统的存储系统,不仅起着存储数据的作用,在计算过程中,还起着提高读写带宽的作用。7)管理网络:用于管理节点和各计算节点、I/O节点的互连,高带宽和低延迟都不需要,同时可以容忍一定的过预定率,千兆网很适合。8)计算网络:用于各计算节点间的互连,是并行任务执行时的进程间通信的专用网络,并行计算的核心就是它的集群内的其他节点交换信息的能力,成为IPC,他需要高性能的网络来进行快速交换,因此要求延迟小,带宽大。一般选用前兆以太网,IB网络或万兆以太网9)存储网络:需要向HPC集群的节点提供数据访问服务。根据数据存储和访问方式的不同,有几种不同的存储形式。在最低级别,一是数据由外部文件系统提供文件级别的访问,包括网络附属存储(NAS),二是数据块级别的访问,包括直连式存储(DAS)和存储区域网络(SAN),可以分别使用基于SCSI或SCSI RDMA (SRP)协议的光纤通道或IB存储2. 超算集群功耗监控与管理:超级计算机的功耗管理不是简单的降低功耗或者能耗,这需要从两个方面入手,一方面在满足性能要求的前提下优化功耗,能耗与性能的折中,提高系统的能耗;一方面是设计发热更低,能耗利用率更高的超级计算机部件和设计能耗更低的散热方式。处理器功耗占最大比例(1)动态资源休眠:DRS,为了节能而休眠或关闭空闲的资源,如组件,设备或节点,需要时再将资源动态唤醒。(2)动态速率调节:DSS,动态调节设备的运行速率。也可以为处理器引入动态休眠技术,即空闲时停止执行指令,进入低功耗状态,直到需要时再被唤醒。处理器调频对系统能效的优化效果与应用的特征密切相关能耗监控:第一个层次是整集群的监控,以机柜为单位,每个机柜配备支持网络监控功耗功能的电源分配单元(PDU),由监控软件汇总每个机柜PDU的功耗数据。第二个层次是以节点为单位的监控,既可以通过专业监控软件监控,也可以通过一些简单的工具或操作系统自带命令实现。3. 构建性能均衡的超算系统:系统平衡有两个层次:一个层次是体系结构层次上的,这主要是各个部件的硬件性能应达到一个平衡的状态;另外一个层次是软件层次,主要是指操作系统对各种资源进行有效的管理,达到负载平衡。提高利用率(1)节点内配置均衡:CPU同构类型,异构类型(CPU+GPU)(2)节点间配置均衡:同类计算节点保持配置均衡(3)网络均衡:包括同样的网络介质,如千兆以太网,万兆以太网,IB网络等,交换机:要么都使用全交换,要么都使用半交换(4)执行同一应用的节点配置均衡,课通过集群管理软件来进行作业调度(5)不同设备间的均衡:计算节点与I/O节点和存储设备之间应该均衡匹配。(6)功耗均衡:均衡分布设备,避免出现局部功耗太高或者局部功耗太低的情况。4. 监控管理:监控管理软件,主要实现对集群系统的 单一映射,从而为系统管理员提供监控 管理集群中的各个节点的统一平台。集群监控软件既可对集群系统中的节点进行分组监控管理,也可以针对某一节点进行单一的管理5. 作业调度:是提供用户使用高性能平台的通道,通过登录节点作为统一接口访问高性能服务,同时,将用户与高性能后台系统隔离,提高安全性和可管理性。在管理网络层,作业调度系统提供对高性能平台进行部署、监控、调度和管理的通信平台,保证系统可控性和可管理性。在计算网络层,作业调度系统提供高性能应用、并行计算应用之间的数据通信,减少延迟和增大带宽,保证高性能计算应用的高效率和高质量。在存储网络层,作业调度系统提供存储服务器与存储设备高I/O吞吐和高流量通信访问。保证系统对存储利用的高并发和大吞吐。6. 十万亿次级别搞笑能计算系统构建(1)构建十万亿次的高效能计算系统:计算能力:选择在相同的芯片大小下能容纳更多的运算核心的处理器,同时要注意选择性能更高,功耗更小的处理器。系统构建时尽量配置容量大、带宽高的内存,提升性能,为每个CPU提供访问本地内存资源的快速通道。管理:包括各节点的管理,各节点对应操作系统及软件管理,还包括制冷设备、机房环境等互联网络:IB网络和GbE(前兆以太网)网络 IB主要实现高的可靠性,可用性,可扩展性和高的性能。存储:不仅起着备份数据的作用,在计算过程中,还起着提高读写带宽的作用,目前常用的存储系统主要包括DAS(直连式存储)和NAS(网络接入存储),SAN(存储区域网络)及并行文件系统存储等。操作系统;Linux集群网络安全:将办公网络与集群的管理网络连接在一起 防火墙:硬件防火墙:采用ASIC,速度快,稳定性好,安全系数高,但成本高,扩展性和易升级性不如软件防火墙,软件防火墙:基于PC结构,采用经过优化的OS作为运行平台,扩展性好,适应性强,容易升级,成本低。 VPN服务器:远程访问技术,利用公网链路架设私有网络(2)以同构方式构建十万亿次集群计算节点:支持先进向量扩展的Intel Haswell平台考虑管理节点:采用免费或者开源的软件来满足要求,openPBS登录节点:单独的一台机架式服务器交换网络:采用IB网络,需要从计算节点的不同情况来考虑管理网络:前兆以太网存储:数据小:管理节点的硬盘进行网络文件系统共享,数据大:配置存储服务器或磁盘阵列等专业存储设备.(3)以异构方式构建十万亿次集群:10块加速卡应用openMP,在同一个节点内扩展性比较好时,一台服务器对应四块GPU应用MPI扩展性好,则两个CPU对应一块GPU第三课 超算系统的网络通信1. 主流网络互连技术包括以太网(Ethernet),FC,InfiniBand。FC是为实现存储互连而设计的存储专属网络。以太网和InfiniBand网络同为开放网络互连技术,以太网更侧重网络协议的通用性,局域网与广域网遵循统一的以太网协议,InfiniBand同时满足广义网络传输和存储I/O对网络性能与智能性的需求。2. InfiniBand技术概要开放标准的高带宽,低延迟网络互连技术,不仅可以构建高性能数据中心内部高速网,通过远程InfiniBand互连设备,还可以实现数据中心与数据中心之间的高速数据传输,架构如下:1) HCA:主机通道适配器,是InfiniBand的最终节点,可以安装在服务器或者存储中,实现服务器、存储与InfiniBand网络的连接。2) TCA:目标通道适配器,主要为内嵌系统定义的适配器结构,不同提供面向应用程序的标准应用程序接口。3) 网络交换机:侧重高性能与高性价比,采用直通转发技术来实现网络流量的快速传递,同时降低设计复杂硬件的成本。4) 路由器:InfiniBand网络路由器可实现InfiniBand多子网直接互连5) 网线与连接模块:InfiniBand定义线缆规范,支持铜线与光缆,包括(4x,12x)线宽与不同速度(SDR,DDR,QDR)。最高性能,低延迟,高效率,可靠稳定的网络互连,网络整合实现更低功耗与成本,数据完整性,开放性。系统效率=实测浮点峰值/理论浮点峰值,实测浮点峰值是系统LINPACK实测性能值,理论浮点峰值=CPU scocketsCPU主频每个时钟周期执行浮点运算的次数*系统中CPU核心数目3. InfiniBand技术核心–RDMA支持优化的网络传输协议–RDMA远程内存直接访问技术。一般两种方式,卸载offload与加载onload,卸载技术是将网络协议(包括RDMA)处理过程内置在网卡芯片,然而加载技术主要接触CPU来处理网络协议。RDMA操作使应用可以从一个远程应用的内存中读数据或向这个内存写数据。发布RDMA操作的应用程序必须为它试图访问的远程内存制定正确的类型值,远程应用程序在本地网卡中注册内存时获得这个类型值。发布RDMA的应用程序也必须确定远程内存地址和该内存区域的类型值。(1)RDMA的技术核心:1)零拷贝技术:网卡HCA可以直接与应用内存相互传输数据,从而表面来在应用程序内存与内核内存之间的数据拷贝过程2)内核旁路技术:当执行RDMA读写请求时,应用程序不需要执行内核调用就可以向网卡发送命令。3)协议卸载:InfiniBand与其他网络技术最大的区别就是InfiniBand为应用层提供直接RDMA消息传输服务,无论是用户应用程序还是内核应用。每个ULP包括两大接口:面向应用的向上接口与面向InfiniBand传输层的向下接口,向上接口提供应用程序能够识别的标准接口如下:SRP,SDP,iSER,IPoIB,NFSoRDMA,RDS,MPI.4. 基于InfiniBand的HPC应用优化:并行应用程序通常基于MPI开发1) MPI通信协议(1)Eager协议:该模式下发送进程将主动发送信息到接收进程,而不会考虑接收进程是否有能力接收消息。(2)Rendezvous协议:会在接收端协调缓存来接收信息,通常适用于发送比较大的信息。2)MPI函数(1)点对点通信(2)集群通信,每个MPI实现针对这些函数都有类似或不同的调试参数,为了找到最合适的参数,需要用户首先运行程序分析工具去了解程序在每个MPI函数上占用的时间和所使用的信息大小,从而给出最适应该程序的定制参数。3)MPI基于不同网络的性格对比:网络延迟与网络带宽4)MPI优化5. InfiniBand加速云计算和大数据(1)InfiniBand具有更好的可扩展性(2)InfiniBand具备更佳的投资性价比 系统实际性价比 = (100%-网络在总成本占比)*系统整体效率(3)InfiniBand拥有完整的云计算平台软件支持第四课 超算系统的应用环境1. CPU并行系统应用环境(1)硬件环境:分布式存储的封闭式集群系统(2)软件环境:1)操作系统:Linx系统 CentOS2)并行运行环境:采用消息传递的网络通信方式,MPI:使用最普遍的并行编程环境,如MPICH(3)开发环境:1)编译器和调试器:编译器一般使用intel公司的CompilerXE编译器套装,包含C/C++、Fortran等语言的编译器。GNU/GCC是属于GNU的免费编译器套装。都支持OpenMP的语法和PThread的函数声明,并自带其运行库.调试器一般使用免费的GNU/GDB或者intel 的IDB,或TotalViewDebugger调试器。2)高性能数学函数库:intel 的Math Kernel Library。还有FFTW,BLAS,LAPACK3)高性能调优工具:gprof是GNU 的性能调试工具,包含在linux的开发调试套装中。还有IntelVTune商业软件。2. CPU+MIC异构并行系统应用环境(1)硬件环境:不需要对集群的整体结构有任何改变,只需要在节点内部增加协处理器或将节点更换为可以使用的协处理器的节点,窜同并行应用环境中的节点,不一定有多余或合适的PCI-E的插槽,也就不一定能够附加FPU或MIC卡,增加来协处理器,节点的功耗需求大大增加,对节点的散热提出了更高的要求(2)软件环境1)通用软件环境:选用MPI,OpenMP等通用的并行库2)MIC专用软件环境:包含驱动程序和运行时库等部分。其中驱动程序为MIC卡的驱动程序,其作用为在软件和硬件间产生联系,使操作系统可以顺利的利用硬件。运行时库包含异构程序运行时需要用到的库的集合,这些库调用来驱动陈股的一些接口,使程序能够运用MIC硬件进行计算,驱动程序必须在每个节点上安装,运行时库则可仅在共享目录中安装一份。(3)开发环境1)编译语言与接口:通用编程语言与接口:C,C++,fortran等,开放运算语言:OpenCLMIC专用编程语言和接口:C,C++,Fortran等2)编译器和调试器:intel的CompilerXE编译器套装,IDB3)高性能数学函数库:MIC高性能数学库4)高性能调优工具:intel VTune(4)资源:IDF,MIC计算论坛3. CPU+GPU异构并行系统应用环境:(1)硬件环境:同上(2)软件环境:CUDA,包括驱动程序和运行时库两个部分,一般选择比较新的,正式版的驱动程序,必须在每个节点上安装(3)开发环境:语言和库多线程编程语言:一种为编译指导,即在串行程序之前添加编译指令,直到编译器将串行指令自动编译为并行程序,另外一种为显式线程模型,用户可以直接编写并行程序,显示的调用GPU 的线程。库有AmgX,cuDNN,cuFFT,cuBLAS-XT,NPP,CULA Tools,MAGMA,IMSL Fortran Numerical Library,cuRAND,ArrayFire,cuBLAS,cuSPARSE,Thrust,NVBIO开发工具综述:1)调试工具:CUDA-GDB,CUDA-Memcheck,AllineaDDT,TotalView2)分析工具:CUPTI3)集成开发环境Nsight(4)资源;CUDA Zone,GTC,GPU计算论坛 第五课 超算系统的性能评价方法1. 超算系统性能评测现状2. 主要测试程序及其应用:内存性能测试程序Stream,通信性能测试程序OMB,浮点计算性能测试程序HPL,综合性能测试程序HPCC,领域测试程序集NPB,IAPCM Benchmarks,Graph500 Benchmark,浮点计算性能测试程序HPCG3. 超算应用特征分析与监测工具(1)应用特征数据提取:应用特征的提取和分析工作是建立在某个固定的硬件平台基础之上,并针对某个特定计算体系的。对于平台的选择,通常是选择主流配置,即选择主流CPU,在选择CPU时应当考虑CPU的主频,QPI ,高速缓冲等属性,选择内存时,应从内存容量,内存通道数,条数等考虑,对于文件存储系统,则需要考虑磁盘读写速率,网络方面要了解网络带宽,延迟等属性。在平台确定好,首先进行算例设置。

《超算竞赛导引》阅读笔记相关推荐

  1. trainer setup_Detectron2源码阅读笔记-(一)Configamp;Trainer

    一.代码结构概览 1.核心部分 configs:储存各种网络的yaml配置文件 datasets:存放数据集的地方 detectron2:运行代码的核心组件 tools:提供了运行代码的入口以及一切可 ...

  2. VoxelNet阅读笔记

    作者:Tom Hardy Date:2020-02-11 来源:VoxelNet阅读笔记

  3. Transformers包tokenizer.encode()方法源码阅读笔记

    Transformers包tokenizer.encode()方法源码阅读笔记_天才小呵呵的博客-CSDN博客_tokenizer.encode

  4. 源码阅读笔记 BiLSTM+CRF做NER任务 流程图

    源码阅读笔记 BiLSTM+CRF做NER任务(二) 源码地址:https://github.com/ZhixiuYe/NER-pytorch 本篇正式进入源码的阅读,按照流程顺序,一一解剖. 一.流 ...

  5. Mina源码阅读笔记(一)-整体解读

    2019独角兽企业重金招聘Python工程师标准>>> 今天的这一节,将从整体上对mina的源代码进行把握,网上已经有好多关于mina源码的阅读笔记,但好多都是列举了一下每个接口或者 ...

  6. “CoreCLR is now Open Source”阅读笔记

    英文原文:CoreCLR is now Open Source 阅读笔记如下: CoreCLR是.NET Core的执行引擎,功能包括GC(Garbage Collection), JIT(将CIL代 ...

  7. QCon 2015 阅读笔记 - 团队建设

    QCon 2015阅读笔记 QCon 2015 阅读笔记 - 移动开发最佳实践 QCon 2015 阅读笔记 - 团队建设 中西对话:团队管理的五项理论和实战 - 谢欣.董飞(今日头条,LinkedI ...

  8. 05《软件需求模式》阅读笔记

    剩下的两个阅读笔记写第二部分.各类需求模式,共八个领域和它的需求模式,这一次写前四个. 基础需求模式,它是所有种类的系统都可能需要的一些东西.系统间接口需求模式使用系统间接口需求模式定义被定义的系统和 ...

  9. [置顶] Linux协议栈代码阅读笔记(一)

    Linux协议栈代码阅读笔记(一) (基于linux-2.6.21.7) (一)用户态通过诸如下面的C库函数访问协议栈服务 int socket(int domain, int type, int p ...

  10. 大型网站技术架构:核心原理与案例分析阅读笔记二

    大型网站技术架构:核心原理与案例分析阅读笔记二 网站架构设计时可能会存在误区,其实不必一味追随大公司的解决方案,也不必为了技术而技术,要根据本公司的实际情况,制定适合本公司发展的网站架构设计,否则会变 ...

最新文章

  1. 服务器修改mime类型,服务器上设置mime类型
  2. linux文件夹前的描述,Linux对内存结构的描述
  3. Visual Studio Code打开终端控制台
  4. struts2常见错误及解决总结
  5. 微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
  6. 2020牛客暑期多校训练营(第六场)
  7. 前端学习(3096):vue+element今日头条管理-回顾
  8. Springboot 1.x 连接Oracle 10.2数据库
  9. 通过一个视频剖析数据可视化的秘密
  10. 配置管理工具SVN的使用
  11. 常用的薪酬管理系统有哪些,薪酬管理需要具备哪些功能?
  12. win10虚拟机下安装ubuntu16.04详细教程(含锐捷联网教程)
  13. Deepin20(1002版本)安装LBP2900打印机
  14. 抽象类和具体类的区别
  15. 医疗险十大常见误区,你中了几个?
  16. 作为一名APP开发者,你更Care什么?
  17. 微信公众帐号开发-自定义菜单的创建及菜单事件响应的实例
  18. HttpClient数据传输的编码方式
  19. java数组和链表查询效率及增删效率比较
  20. 转行程序员需要做好哪些准备?只有这种人能成功转行ǃ

热门文章

  1. 网络知识点之-关于web
  2. 外国建筑史的学习资料
  3. 木瓜移动每日资讯0601:速卖通5月底发布“G100出海计划”
  4. 一文读懂运放共模抑制比(上)
  5. orangepizero2(全志H616)
  6. 宿州市空间数据库管理系统(2)
  7. 剖析云计算技术及架构(1)
  8. 使用计算机来进行翻译是,利用计算机进行中英文翻译的探讨
  9. G2553与F5529串口
  10. mybatis自动识别数据库关键字