科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道高性能计算(HPC)数学应用模型

高性能计算(HPC)数学应用模型

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文介绍了一个高性能计算(HPC)数学应用模型。

2008年1月10日

关键字: 高性能计算

  • 评论
  • 分享微博
  • 分享邮件

   ZDNetChina服务器站 1月10日高性能计算分析   这个模型的基本形式在计算机体系研究领域已经存在了很多年。A普通模式是:

  (3) CPI = CPI0 + MPI * PPM

  这里的CPI指的是处理器在工作负荷状态下每执行一个指令的周期。CPI0是指内核CPI,MPI I则是指在工作负荷状态下高速缓存存储器每个指令失误的次数(注释:在高性能计算领域,MPI主要用于信息传递界面,在此处主要是指处理器构造惯例),PPM是指以处理器时钟滴答声为单位对高速缓存存储器每个指令失误的次数的记录。第二和第三个方程式相互吻合。这第一个术语代表的是处理器,第二个术语代表的是内存。

  通过图示我们可以直观的看到,假设每项工作下执行的P指令的工作负荷与代表处理器的频率的内核频率(每秒钟处理器运行周期的单位)再与方程式(3)相乘,就得到了方程式(4):

  Tnode = (CPIo * P) * (1 / fcore) + (MPI * P) * PPM * (1 / fcore)

  在这里我们要注意(CPIo * P)是以每项工作分配下处理器的运行周期为单位,对微处理器架构上运行的既定工作负荷通常是个恒量。因此我们把它命名为α。(处理器周期本身无法对时间进行测算,如果乘以内核的频率就可以得到时间的测算标准。因此Tnode在方程式(4)的右边)。

  (MPI * P)也是同理。对于既定工作负荷和体系结构来说它也是个恒量,但它主要依赖于高速缓存存储器的体积。我们把它命名为M(MBcache)。而PPM是指访问主存的成本。对于既定的工作负荷来说,通常是个固定的数字C。PPM乘以内存频率和总线频率的比值(fcore / fBus)就从总线周期(bus cycles)转化成了处理器周期。因此PM = C * fcore / fBus。套入M(MBcache)就可以得到:

  (5) Tnode = α * (1 / fcore) + M(MBcache) * (1 / fbus)

  这个例子说明总线频率(bus frequency)也是个恒量,方程式(5)可以简化为方程式(6):

  (6) Tnode = α * (1 / fcore) + β

  在这里Tcore = α * (1 / fcore),而Tmemory = β(也就是公式2里的术语。我们把这些关键点关联在一起)。首先在模型2里,公式5和公式6都有坚实的理论基础,因为我们已经分析过它是如何从公式3推理而来(它主要应用于计算机体系理论)。其次,目前的这个模型4个硬件性能参数的3个已经包括其中。还差一个参数就是内核数量(Ncores)。

  我们用直观的方式来说明内核的数量,就是假设把N个内核看做是一个网络频率上运行的一个内核,我们称之为N*fcore。那么根据公式(6)我们大致可以推算出:

  (7) Tcore ~ α / (N*fcore)

  Tcore~ ( α / N) * (1 / fcore )

  我们也可以把它写成:

  (8) αN = ( α / N)

  多核处理器的第一个字母Alpha可能是单核处理器的1/N次。

  通过数学推算这几乎是完全可能的。

  通常情况下我们是根据系统内核和总线频率(bus frequencies)来衡量计算机系统性能,如公式(5)所阐述的。但是公式(5)的左边是时间单位--这个时间单位指的是一项工作量的完成时间。这样就能更清楚的以时间为单位说明右侧的主系统参数。同时请注意内核的时钟周期τcore(是指每次内核运行周期所需的时间)也等同于(1 / fcore)。总线时钟(bus clock)周期也是同理。

  (9) Tnode = αN * τcore + M(MBcache) * τBus

  这个公式的转化也给了我们一个完成时间的模型,那就是2个基本的自变量τcore和τBus呈现出直线性变化。这对我们稍后使用一个简单的棋盘式对照表对真实系统数据进行分析是有帮助的。

  这个模型是如何工作的?

  公式(9)中的这个模型好处何在呢?为了回答这个问题,首先让我们一起来分析两项常用的基准测试指标,Linpack(注释:指标为实数,指HPC采用高斯消元法求解一元N次稠密线性代数方程组的每秒处理次数)和Stream(注释:对单环境和多重负荷时的内存性能进行测评的基准)。我们通常会对他们进行综合的考量,这两者主要适用于商业领域。举例来说,Linpack基准测试运用的是边界元素方法,主要适用于模拟飞机雷达横截面或者模拟潜艇声学回音。Stream基准测试的核心则运用于高性能计算应用编码的方方面面。他们代表了矢量或者Level 1 BLAS。这两项基准测试指标都非常的有用因为他们从不同角度代表了高性能计算工作量频谱的两个极端。Linpack测试的是内核的计算范围,而Stream主要针对的是内存访问。这两项工作是对完成时间模型(1)一个很好的初始测试。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章