CN102646060B - 高性能计算机系统中不满足计算精度要求的结点检测方法 - Google Patents
高性能计算机系统中不满足计算精度要求的结点检测方法 Download PDFInfo
- Publication number
- CN102646060B CN102646060B CN201210041912.4A CN201210041912A CN102646060B CN 102646060 B CN102646060 B CN 102646060B CN 201210041912 A CN201210041912 A CN 201210041912A CN 102646060 B CN102646060 B CN 102646060B
- Authority
- CN
- China
- Prior art keywords
- node
- result
- computer system
- calculation
- calculating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种高性能计算机系统中不满足计算精度要求的问题结点检测方法。技术方案是先选择基准测试程序并在高性能计算机全系统2n个计算结点上运行,如果计算精度达不到预定的要求,将高性能计算系统分成两个部分,分别加载基准测试程序,如果计算结点数目减半的并行程序计算结果仍不满足计算精度要求,则再将计算结点的数目减半,直到均满足计算精度要求,或者每个部分只剩下一个计算结点。若计算结点数为1但仍不满足计算精度要求,则说明已经找到不满足计算精度要求的计算结点。采用本发明可以对计算精度不满足要求的计算结点实现自动检测,定位问题结点,保证大规模高性能计算机系统的可用性。
Description
技术领域
本发明涉及一种高性能计算机系统中不满足计算精度要求的问题结点检测方法,尤指基于并行程序的加载运行,能够快速定位不能满足用户计算精度问题要求的计算结点的检测方法。
背景技术
高性能计算机系统计算精度问题指用户并行应用程序在高性能计算机系统上的计算精度不能满足用户需求的问题,是由于少数计算结点的计算精度错误或结点间的连接引起的问题。
高性能计算机系统结构复杂,计算精度涉及用户程序运行结果的可信度,是用户首先关心的问题。计算精度既涉及单机运算,也涉及多机协同计算;既和计算结点相关,也和通信网络相关;既需要MPI(Message Passing Interface)并行环境,也需要OpenMP共享计算环境或CUDA(Compute Unified Device Architecture)等其他并行计算环境;既要考虑串行编译器的影响,又要考虑MPI、OpenMP和CUDA等并行编译的影响;既涉及本地多级存储结构,又涉及远地存储结构。计算结果的精度对高性能计算机系统是否具有可用性至关重要。
目前对计算精度的研究主要集中在提高计算精度的方法,如顶层设计提高计算精度方法,为避免舍入误差造成模拟计算的不可靠性,从应用软件角度必须研究高精度偏微分离散格式和求解方法,尽量减少截断误差,并从程序设计角度对算术运算精度要求敏感的核心部分考虑采用高于64位的浮点运算,从系统研制角度则必须考虑对超64位字长的算术运算的支持。从应用和系统设计着手提高计算精度,如果系统出现互连网络等系统级错误时,得到错误的计算结果,无法定位出现错误的计算结点。
对高性能计算机系统的精度是否满足用户要求,主要采用计算精度对比法和国际基准程序测试法:
(1)计算精度对比法。使用基于用户需求研制的核心算法并行程序、测试程序和典型应用程序在国内国外已投入运行的高性能计算机系统上运行,保存计算结果,在被测试的系统上使用同等规模的问题进行计算,然后进行计算结果比对,具有相同的有效数字,就认为计算结果正确。目前要测试的高性能计算机系统可能远大于已投入运行的系统,所计算的问题可能在已投入运行的机器上无法运行,得不到可供参考的计算结果。
(2)国际基准程序测试法。选择国际上的基准测试程序对高性能计算机系统的计算精度进行测试,基准测试程序中有标准的计算结果,测试完成后会自动报告是否成功,如果成功说明计算结果正确。该方法可以知道计算结果的正确性,但不知道哪些计算结点造成计算结果不正确,无法定位出错误的计算结点。
上述方法只能告诉用户高性能计算机系统是否满足用户的需求,不能实现自动检测功能,目前国际上还缺乏将计算精度有问题的计算结点自动检测出来的方法。如何能够既告诉用户高性能计算机系统的精度是否满足用户的要求,又对计算精度不满足要求的计算结点进行自动检测是本领域技术人员极为关注的技术问题。
发明内容
本发明要解决的技术问题在于:提出一种高性能计算机系统中不满足计算精度要求的结点检测方法,使用并行程序加载运行,自动定位不能满足计算精度要求的少数计算结点。
为了解决上述技术问题,本发明的技术方案为:根据高性能计算机系统的并行计算环境,采用覆盖MPI、OpenMP和加速器的基准测试程序,加载运行基准测试程序,自动检测计算精度问题,定位不满足计算精度要求的计算结点。
假设高性能计算机系统计算结点的总数目为2n,n为正整数,在高性能计算机系统2n个计算结点上加载基准测试程序,如果计算精度达不到预定的要求,将高性能计算系统分成两个部分,每个部分结点数目均为2n-1,分别加载基准测试程序,如果计算结点数目减半的并行程序计算结果仍不满足计算精度要求,则再将计算结点的数目减半,直到均满足计算精度要求,或者每个部分只剩下一个计算结点。若计算结点数为1但仍不满足计算精度要求,则说明已经找到不满足计算精度要求的计算结点。将不满足计算精度要求的结点集合(结点数大于等于2,小于等于2n-1)分成两个部分,对于这两个部分均满足计算精度要求的情况,当结点数为2n-1时,在两个部分结点集合中随机选择数目相等的结点进行互换,在两个结点集合上分别加载基准测试程序,直到有一个部分结点集合不满足计算精度要求为止,并将此时满足精度要求的结点集合标记为正常结点;当结点数2m小于2n-1时,从标记为正常的计算结点中任取2m个结点,分别在正常结点和部分结点组成的结点集合上加载程序,如果满足计算精度要求,则将参与计算的部分结点标记为正常结点,对不满足计算精度要求的部分结点一分为二,重复上述过程。
具体技术方案为:
第一步:选择基准测试程序,要求基准测试程序覆盖MPI、OpenMP和CUDA计算资源,有标准计算结果,初始化结点集合H为空集。
第二步:高性能计算机系统提供MPI、OpenMP和CUDA计算资源环境,有2n个计算结点,在高性能计算机系统2n个计算结点上运行基准测试程序,n为正整数。将在高性能计算机系统2n个计算结点上运行基准测试程序获得的计算结果和标准计算结果进行对比,若计算结果和标准计算结果一致,则满足计算精度要求,所有计算结点标记为正常,转第八步。否则说明计算精度达不到预定要求,将达不到预定要求的高性能计算系统结点放到结点集合中,转第三步。
第三步:将计算精度达不到预定要求的高性能计算系统结点集合一分为二,分别记为集合H1和H2,H1和H2的计算结点数相等,转第四步。
第四步:在H1和H2组成的计算机系统上分别加载基准测试程序,分为以下几种情况处理:
4.1若基准测试程序在H1和H2组成的计算机系统上的计算结果均和标准计算结果一致,转第五步;
4.2当基准测试程序在H1组成的计算机系统上的计算结果和标准计算结果一致时,将H1标记为正常结点,转第八步;当基准测试程序在H1组成的计算机系统上的计算结果和标准计算结果不一致时,若H1结点数目不为1,转第三步,若H1结点数为1,将H1中的计算结点标记为问题结点,转第八步;
4.3当基准测试程序在H2组成的计算机系统上的计算结果和标准计算结果一致时,将H2标记为正常结点,转第八步;当基准测试程序在H2组成的计算机系统上的计算结果和标准计算结果不一致时,若H2结点数目不为1,转第三步,若H2结点数为1,将H2中的计算结点标记为问题结点,转第八步;
第五步:将H1和H2的计算结点数记为2m,1≤m≤n-1,分为两种情况处理:
5.1当结点数2m等于2n-1时,分别在H1和H2随机选择数目相等的结点进行互换,转第四步;
5.2当结点数2m不等于2n-1时,从标记为正常的计算结点中任取2m个结点组成集合H3。H1和H3相合并构成测试集合H13,H2和H3相合并构成测试集合H23。在H13和H23组成的计算机系统上分别加载基准测试程序,如果H1和H2的结点数2m大于1,转第六步,如果H1和H2的结点数2m等于1,转第七步;
第六步:分为以下四种情况处理:
6.1基准测试程序在H13组成的计算机系统上计算结果和标准计算结果一致,将H1中的计算结点标记为正常结点,转第八步;
6.2基准测试程序在H13组成的计算机系统上计算结果和标准计算结果不一致,将H1一分为二,两个部分还分别记为H1和H2,H1和H2的计算结点数相等,转第5.2步;
6.3基准测试程序在H23组成的计算机系统上计算结果和标准计算结果一致,将H2中的计算结点标记为正常结点,转第八步;
6.4基准测试程序在H23组成的计算机系统上计算结果和标准计算结果不一致,将H2一分为二,两个部分还分别记为H1和H2,H1和H2的计算结点数相等,转第5.2步;
第七步:分为以下两种情况处理:
7.1基准测试程序在H13组成的计算机系统上计算结果和标准计算结果一致,将H1中的计算结点标记为正常结点,转第八步;基准测试程序在H13组成的计算机系统上计算结果和标准计算结果不一致,将H1中的计算结点标记为问题结点,转第八步;
7.2基准测试程序在H23组成的计算机系统上计算结果和标准计算结果一致,将H2中的计算结点标记为正常结点,转第八步;基准测试程序在H23组成的计算机系统上计算结果和标准计算结果不一致,将H2中的计算结点标记为问题结点,转第八步;
第八步:将问题结点和正常结点输出,结束。
与现有技术相比,采用本发明可达到以下技术效果:对于大规模高性能计算机系统的计算结点问题,采用本发明可以对计算精度不满足要求的计算结点实现自动检测,能够定位问题结点,保证大规模高性能计算机系统的可用性。
附图说明
图1为本发明的总流程图。
具体实施方式
图1是本发明的总流程图。
具体实施方式为:
第一步:选择基准测试程序,要求基准测试程序覆盖MPI、OpenMP和CUDA计算资源,有标准计算结果,初始化结点集合H为空集。
第二步:在高性能计算机全系统2n个计算结点上运行基准测试程序,n为正整数。将在高性能计算机系统上运行的计算结果和标准计算结果进行对比,若计算结果和标准计算结果一致,则满足计算精度要求,所有计算结点标记为正常,转第八步。否则说明计算精度达不到预定要求,将达不到预定要求的高性能计算系统结点放到结点集合中,转第三步。
第三步:将计算精度达不到预定要求的高性能计算系统结点集合一分为二,分别记为集合H1和H2,H1和H2的计算结点数相等,转第四步。
第四步:在H1和H2组成的计算机系统上分别加载基准测试程序,分为以下几种情况处理:
4.1若基准测试程序在H1和H2组成的计算机系统上的计算结果均和标准计算结果一致,转第五步;
4.2当基准测试程序在H1组成的计算机系统上的计算结果和标准计算结果一致时,将H1标记为正常结点,转第八步;当基准测试程序在H1组成的计算机系统上的计算结果和标准计算结果不一致时,若H1结点数目不为1,转第三步,若H1结点数为1,将H1中的计算结点标记为问题结点,转第八步;
4.3当基准测试程序在H2组成的计算机系统上的计算结果和标准计算结果一致时,将H2标记为正常结点,转第八步;当基准测试程序在H2组成的计算机系统上的计算结果和标准计算结果不一致时,若H2结点数目不为1,转第三步,若H2结点数为1,将H2中的计算结点标记为问题结点,转第八步;
第五步:将H1和H2的计算结点数记为2m,1≤m≤n-1,分为两种情况处理:
5.1当结点数2m等于2n-1时,分别在H1和H2随机选择数目相等的结点进行互换,转第四步;
5.2当结点数2m不等于2n-1时,从标记为正常的计算结点中任取2m个结点组成集合H3。H1和H3相合并构成测试集合H13,H2和H3相合并构成测试集合H23。在H13和H23组成的计算机系统上分别加载基准测试程序,如果H1和H2的结点数2m大于1,转第六步,如果H1和H2的结点数2m等于1,转第七步;
第六步:分为以下四种情况处理:
6.1基准测试程序在H13组成的计算机系统上计算结果和标准计算结果一致,将H1中的计算结点标记为正常结点,转第八步;
6.2基准测试程序在H13组成的计算机系统上计算结果和标准计算结果不一致,将H1一分为二,两个部分还分别记为H1和H2,H1和H2的计算结点数相等,转第5.2步;
6.3基准测试程序在H23组成的计算机系统上计算结果和标准计算结果一致,将H2中的计算结点标记为正常结点,转第八步;
6.4基准测试程序在H23组成的计算机系统上计算结果和标准计算结果不一致,将H2一分为二,两个部分还分别记为H1和H2,H1和H2的计算结点数相等,转第5.2步;
第七步:分为以下两种情况处理:
7.1基准测试程序在H13组成的计算机系统上计算结果和标准计算结果一致,将H1中的计算结点标记为正常结点,转第八步;基准测试程序在H13组成的计算机系统上计算结果和标准计算结果不一致,将H1中的计算结点标记为问题结点,转第八步;
7.2基准测试程序在H23组成的计算机系统上计算结果和标准计算结果一致,将H2中的计算结点标记为正常结点,转第八步;基准测试程序在H23组成的计算机系统上计算结果和标准计算结果不一致,将H2中的计算结点标记为问题结点,转第八步;
第八步:将问题结点和正常结点输出,结束。
Claims (2)
1.一种高性能计算机系统中不满足计算精度要求的结点检测方法,其特征在于包括以下步骤:
第一步:选择基准测试程序,要求基准测试程序有标准计算结果,初始化结点集合H为空集;
第二步:在高性能计算机系统2n个计算结点上运行基准测试程序,n为正整数,将在高性能计算机系统2n个计算结点上运行基准测试程序获得的计算结果和标准计算结果进行对比,若计算结果和标准计算结果一致,则满足计算精度要求,所有计算结点标记为正常,转第八步;否则说明计算精度达不到预定要求,将达不到预定要求的高性能计算系统结点放到结点集合中,转第三步;
第三步:将计算精度达不到预定要求的高性能计算系统结点集合一分为二,分别记为集合H1和H2,H1和H2的计算结点数相等,转第四步;
第四步:在H1和H2组成的计算机系统上分别加载基准测试程序,分为以下几种情况处理:
4.1若基准测试程序在H1和H2组成的计算机系统上的计算结果均和标准计算结果一致,转第五步;
4.2当基准测试程序在H1组成的计算机系统上的计算结果和标准计算结果一致时,将H1标记为正常结点,转第八步;当基准测试程序在H1组成的计算机系统上的计算结果和标准计算结果不一致时,若H1结点数目不为1,转第三步,若H1结点数为1,将H1中的计算结点标记为问题结点,转第八步;
4.3当基准测试程序在H2组成的计算机系统上的计算结果和标准计算结果一致时,将H2标记为正常结点,转第八步;当基准测试程序在H2组成的计算机系统上的计算结果和标准计算结果不一致时,若H2结点数目不为1,转第三步,若H2结点数为1,将H2中的计算结点标记为问题结点,转第八步;
第五步:将H1和H2的计算结点数记为2m,1≤m≤n-1,分为两种情况处理:
5.1当结点数2m等于2n-1时,分别在H1和H2随机选择数目相等的结点进行互换,转第四步;
5.2当结点数2m不等于2n-1时,从标记为正常的计算结点中任取2m个结点组成集合H3;H1和H3相合并构成测试集合H13,H2和H3相合并构成测试集合H23;在H13和H23组成的计算机系统上分别加载基准测试程序,如果H1和H2的结点数2m大于1,转第六步,如果H1和H2的结点数2m等于1,转第七步;
第六步:分为以下四种情况处理:
6.1基准测试程序在H13组成的计算机系统上计算结果和标准计算结果一致,将H1中的计算结点标记为正常结点,转第八步;
6.2基准测试程序在H13组成的计算机系统上计算结果和标准计算结果不一致,将H1一分为二,两个部分还分别记为H1和H2,H1和H2的计算结点数相等,转第5.2步;
6.3基准测试程序在H23组成的计算机系统上计算结果和标准计算结果一致,将H2中的计算结点标记为正常结点,转第八步;
6.4基准测试程序在H23组成的计算机系统上计算结果和标准计算结果不一致,将H2一分为二,两个部分还分别记为H1和H2,H1和H2的计算结点数相等,转第5.2步;
第七步:分为以下两种情况处理:
7.1基准测试程序在H13组成的计算机系统上计算结果和标准计算结果一致,将H1中的计算结点标记为正常结点,转第八步;基准测试程序在H13组成的计算机系统上计算结果和标准计算结果不一致,将H1中的计算结点标记为问题结点,转第八步;
7.2基准测试程序在H23组成的计算机系统上计算结果和标准计算结果一致,将H2中的计算结点标记为正常结点,转第八步;基准测试程序在H23组成的计算机系统上计算结果和标准计算结果不一致,将H2中的计算结点标记为问题结点,转第八步;
第八步:将问题结点和正常结点输出,结束。
2.如权利要求1所述的高性能计算机系统中不满足计算精度要求的结点检测方法,其特征在于所述基准测试程序需覆盖MPI、OpenMP和CUDA计算资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210041912.4A CN102646060B (zh) | 2012-02-23 | 2012-02-23 | 高性能计算机系统中不满足计算精度要求的结点检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210041912.4A CN102646060B (zh) | 2012-02-23 | 2012-02-23 | 高性能计算机系统中不满足计算精度要求的结点检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102646060A CN102646060A (zh) | 2012-08-22 |
CN102646060B true CN102646060B (zh) | 2014-04-09 |
Family
ID=46658889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210041912.4A Active CN102646060B (zh) | 2012-02-23 | 2012-02-23 | 高性能计算机系统中不满足计算精度要求的结点检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102646060B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049304B (zh) * | 2013-01-21 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种通过死代码移除来加快gpu运行速度的方法 |
CN103257923B (zh) * | 2013-04-16 | 2016-12-28 | 中国科学院计算技术研究所 | 数据中心数据分析类基准测试程序的应用选取方法及系统 |
CN109814834B (zh) * | 2019-01-14 | 2021-04-20 | 中国人民解放军国防科技大学 | 一种基于条件数指导的浮点程序精度缺陷检测方法 |
CN111858332B (zh) * | 2020-07-17 | 2022-08-05 | 苏州浪潮智能科技有限公司 | 一种分布式系统的计算资源弹性测试方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6457100B1 (en) * | 1999-09-15 | 2002-09-24 | International Business Machines Corporation | Scaleable shared-memory multi-processor computer system having repetitive chip structure with efficient busing and coherence controls |
US8489700B2 (en) * | 2005-11-30 | 2013-07-16 | International Business Machines Corporation | Analysis of nodal affinity behavior |
CN100507869C (zh) * | 2006-10-10 | 2009-07-01 | 国际商业机器公司 | 基于关系模型分析系统性能采样数据的方法和设备 |
-
2012
- 2012-02-23 CN CN201210041912.4A patent/CN102646060B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102646060A (zh) | 2012-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108363599B (zh) | 用户界面显示识别方法及终端设备 | |
CN102646060B (zh) | 高性能计算机系统中不满足计算精度要求的结点检测方法 | |
CN105446885A (zh) | 一种基于需求的回归测试用例优先级排序技术 | |
CN107632590B (zh) | 一种基于优先级的底事件排序方法 | |
CN103838626A (zh) | 一种处理串行任务的数据处理装置及方法 | |
Gullotta et al. | Optimal location of valves to improve equity in intermittent water distribution systems | |
CN104142861A (zh) | 服务器资源的配置处理方法与装置 | |
CN107992358B (zh) | 一种适用于核外图处理系统的异步io执行方法及系统 | |
CN104063181B (zh) | 固态硬盘管理方法、服务器及系统 | |
CN103793208A (zh) | 矢量dsp 处理器和协处理器协同运作的数据处理系统 | |
CN105243023A (zh) | 并行运行时错误检测方法 | |
CN107563080B (zh) | 基于gpu的两相介质随机模型并行生成方法、电子设备 | |
CN103455417A (zh) | 一种基于马尔可夫模型的软件错误定位系统及错误定位方法 | |
CN104123737A (zh) | 判断点在多边形区域内部、外部或边界上的包容性测试方法 | |
CN109103897A (zh) | 一种确定动态无功补偿设备的配置区域方法与装置 | |
CN101464788B (zh) | 二进制数是否为三的倍数的检验装置及芯片 | |
CN104516823A (zh) | 一种数据存储方法和装置 | |
CN110470941A (zh) | 交流电的漏电流检测方法、装置、设备及存储介质 | |
CN103106174A (zh) | 一种复杂soc的片上通信方法 | |
CN104679603A (zh) | 一种非对称的数据三模冗余方法及系统 | |
CN101493789B (zh) | 一种获取cpu利用率的方法、装置及系统 | |
CN109933948B (zh) | 一种形式验证方法、装置、形式验证平台及可读存储介质 | |
Uddin et al. | Signature-based high-level simulation of microthreaded many-core architectures | |
CN102479135B (zh) | 多核心处理器的超频测试方法 | |
CN101330620B (zh) | 一种音视频数据编解码的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |