首页 > 其他分享 >High-performance computing (HPC)

High-performance computing (HPC)

时间:2023-11-11 22:31:39浏览次数:38  
标签:computing 模型 编程 High 算法 高性能 计算 HPC performance

Concepts discrimination

  1. What is the realtionships among parallel computing, high-performance computing and supercomputing ?
  • parallel computing: using multiple computing core to compute a job
  • high-performance computing: a type of parallel computing, and it needs to leverage computing performance efficiently
  • supercomputing: a type of high-performance computing, and it has a huge calculation volume and operating scale

Background

3 traditional ways to make computers run faster

  1. faster clocks
  2. more work/clock cycle
  3. more processors

The key design concept of gpu Using more simpler processors to substitute fewer more complex processors.

cpu more cares about latency(time), gpu more cares about throughput(stuff/time)

相关概念

SIMD SPMD SIMT

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

  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. 实践:通过实践,运用已学知识进行实际问题求解,例如高性能计算竞赛、实验室项目等。这有助于更深入地理解学术知识、技能和技术,培养团队协作、创新思维和解决问题的能力。

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

相关竞赛

  1. 每年11月在美国举行的SC大会期间的大学生超算竞赛
  2. 每年6月在欧洲举行的ISC大会期间的大学生超算竞赛
  3. 每年春季在中国举行的ASC世界大学生超算竞赛

底层技术,技术兴趣大于业务兴趣

合格,理解计算机体系结构,有一定编程功底,能够解决实际业务问题。对于程序性能,能够根据体系结构和算法,做出定性分析,从而优化程序性能 优秀,在合格的基础上,能够做定量分析,比如访存指令、计算指令的延迟是多少个时钟周期,根据这些数据去优化程序,从而让程序逼近芯片的理论性能

相关书籍

  1. 现代CPU性能分析与优化(ISBN:9787111719489)

典型 HPC 解决方案中包含 3 个主要组件: 计算 网络 存储空间 HPC 解决方案可以部署到本地、边缘,甚至是云端。

高性能计算属于算法层(强调的是优化工作),前后端开发属于应用层 只要到达了应用层面,应用应用,需要开发者来使用,如果技术的难度不足以让大多数人能够进行这份工作,那么说明技术尚未到达应用层。多数人能够使用意味着技术变得普适化、流程化、机械化 开发者充当的角色趋向于工人,精力/年龄逐渐取代经验成为胜任这项工作的基础,35岁问题由此出现 高性能计算本身的学科特点决定了它不会成为大规模应用的场景,这里所说的大规模是相较于应用层前后端开发用于普通用户那种大规模,其更多的是应用于专业领域的问题,针对专业问题进行算法优化,不光要求数学能力,还需要对于底层硬件知识有所了解 同人工智能相比,hpc不会变成唯论文学科,AI的定位要更偏上层,和底层知识结合较少,hpc不光存在上层的算法问题,也存在下层的硬件问题,下层的存在使其不会过于偏向算法,作为一种工具学科,应用仍然是其重要的一部分,所以一定是理论+时间,此时AI与hpc的比较就相对明显了

# 用于GPU加速高性能计算编程模型 1.OpenMP 2.HIP:可移植异构计算接口,厂商中立的C++编程模型,用于实现高度优化的GPU工作负载 3.OpenCL

Reference

标签:computing,模型,编程,High,算法,高性能,计算,HPC,performance
From: https://blog.51cto.com/u_14882565/8320783

相关文章

  • BAW(Bulk Acoustic Wave) resonator with high Q-factor.
    bulkacousticwave(BAW)resonatorwithhighQ-factor.Docs:FrequencySynthesisforaLow-Power2.4GHzReceiverUsingaBAWOscillatorandaRelaxationOscillator,ChristianEnz,2007,ConferencepaperIntegratedBAW-BasedFrequencyReferences-Spring......
  • Performance Improvements in .NET 8 -- Native AOT & VM & GC & Mono
    原生AOT原生AOT在.NET7中发布。它使.NET程序在构建时被编译成一个完全由原生代码组成的自包含可执行文件或库:在执行时不需要JIT来编译任何东西,实际上,编译的程序中没有包含JIT。结果是一个可以有非常小的磁盘占用,小的内存占用,和非常快的启动时间的应用程序。在.NET7......
  • Performance Improvements in .NET 8 -- Native AOT & VM & GC & Mono
    原生AOT原生AOT在.NET7中发布。它使.NET程序在构建时被编译成一个完全由原生代码组成的自包含可执行文件或库:在执行时不需要JIT来编译任何东西,实际上,编译的程序中没有包含JIT。结果是一个可以有非常小的磁盘占用,小的内存占用,和非常快的启动时间的应用程序。在.NET7......
  • 使用PerformanceObserver这个性能监控相关的API
    elementtiming属性可以设置在任何有图文内容的元素上,包括background-image背景图,对了,还有视频元素。配合PerformanceObserverAPI,我们就可以获得加载时长实例:<imgsrc="../202305/book.jpg"elementtiming="image"><pelementtiming="text">我是一段内容。</p>此时,......
  • 为MySQL新增一张performance_schema表 | StoneDB 技术分享会 #4
    StoneDB开源地址https://github.com/stoneatom/stonedb设计:小艾审核:丁奇、李浩编辑:宇亭作者:王若添中国科学技术大学-软件工程-在读硕士、StoneDB内核研发实习生performance_schema简介MySQL启动后会自动创建四个databasemysql>showdatabases;+--------------------+|Da......
  • 恭喜我同事的论文被IEEE HPCC收录!
    近日,由天翼云科技有限公司云网产品事业部天玑实验室撰写的《关于公有云区分负载QoS感知的内存资源动态超分管理优化》(Thoth:ProvisioningOvercommittedMemoryResourcewithDifferentiatedQoSinPublicClouds)论文被2023年第25届国际高性能计算与通信会议IEEEHPCC(IEEEInter......
  • 2023CVPR_Efficient Frequency Domain-based Transformers for High-Quality Image De
    一.Motivation1.Transformer在解决全局表现很好,但是复杂度很高,主要体现在QK的乘积:(Wenotethatthescaleddot-productattentioncomputationisactuallytoestimatethecorrelationofonetokenfromthequeryandallthetokensfromthekey)在self-attention中......
  • Amazon EC2 Hpc7g 实例现已在更多区域推出
    即日起,AmazonElasticComputeCloud(AmazonEC2)Hpc7g实例将在亚太地区(东京)、欧洲地区(爱尔兰)和AmazonGovCloud(美国西部)区域推出。AmazonEC2Hpc7g实例由 AmazonGraviton处理器提供支持,这些处理器是由亚马逊云科技设计的基于Arm的自定义处理器。亚马逊云科技开发者社......
  • highcharts network 网络图
    highchartsnetwork网络图要在边上加上箭头,十分困难?Re:HighChartsNetworkGraphArrowLinksWedJul15,20209:47amHi!Welcometoourforumandthanksforcontactinguswithyourquestion!FromtheAPI,thisoptionisnotpossible.Toachievethis,youhavetoext......
  • 城市时空预测的统一数据管理和综合性能评估 [实验、分析和基准]《Unified Data Manage
    2023年11月1日,还有两个月,2023年就要结束了,希望在结束之前我能有所收获和进步,冲呀,老咸鱼。 摘要解决了访问和利用不同来源、不同格式存储的不同城市时空数据集,以及确定有效的模型结构和组件。1.为城市时空大数据设计的统一存储格式“原子文件”,并在40个不同的数据集上验证了其......