(通信企业管理)并行计算通信库测试办法研究及实践

上传人:精****库 文档编号:137740972 上传时间:2020-07-11 格式:DOCX 页数:5 大小:30.10KB
返回 下载 相关 举报
(通信企业管理)并行计算通信库测试办法研究及实践_第1页
第1页 / 共5页
(通信企业管理)并行计算通信库测试办法研究及实践_第2页
第2页 / 共5页
(通信企业管理)并行计算通信库测试办法研究及实践_第3页
第3页 / 共5页
(通信企业管理)并行计算通信库测试办法研究及实践_第4页
第4页 / 共5页
(通信企业管理)并行计算通信库测试办法研究及实践_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《(通信企业管理)并行计算通信库测试办法研究及实践》由会员分享,可在线阅读,更多相关《(通信企业管理)并行计算通信库测试办法研究及实践(5页珍藏版)》请在金锄头文库上搜索。

1、并行计算通信库测试方法研究及实践熊玉庆1 张云泉2(中科院计算所, 100080, 北京)1 (中科院软件所, 100080, 北京)2 本文完成于中国科学院软件研究所并行软件研究开发中心,并得到国家863计划资助。摘要 并行计算通信库的测试在并行计算系统中起一个极其重要的作用。一般对通信库的测试都是通过设计一些测试程序对库的各个或几个部分分别单独隔离测试。但是许多库中的错误是这种隔离测试方法测不出来的,只有当库的多个部分以某种复杂的,有机的方式组合运行时才会暴露出来。这种复杂有机的组合方式,从设计库的测试角度很难形成。本文提出二个新的测试方法,这二方法是根据通信库结构的分层特性,利用可移植的

2、上层库的测试程序来测试下层库。上层库的测试程序也可看作是下层库的应用程序,但与一般的下层库应用程序不同,它几乎覆盖了下层库的各个部分,且有机地将它们组合起来,运行时形成某种复杂的形态,而仅用下层库的测试程序往往达不到这种形态。这样逃过下层库测试程序的错误就可能暴露出来。关键词 并行计算,通信库,测试方法,MPI,BLACSStudy and Practice of Testing Approaches of Communication Libraries for Parallel ComputingXiong Yuqing1 Zhang Yunquan2(The institute of Co

3、mputing Technology, Chinese Academy of Sciences, 100080, Beijing)1(The institute of Software, Chinese Academy of Sciences, 100080, Beijing)2Abstract Testing of communication libraries for parallel computing has an important role in parallel computing systems. In general, testing of communication lib

4、raries is done by some testers designed to test every or several parts of the libraries separately. However, many errors of libraries not tested by the separate methods can be exposed when many parts of libraries are running by combination of them in term of a kind of complicated and organic ways. B

5、ut it is rather difficult that the complicated and organic combinations result from the design of library testers themselves. This paper proposes two new testing approaches, which are based on the feature of layered library architectures and tests lower libraries by portable testers of upper librari

6、es. The testers of upper libraries can also be regarded as application programs of lower libraries, but they are different from general application programs of lower libraries. They almost cover very parts of lower libraries, combine them organically, and form a complicated situation in run time, wh

7、ich can not be easily obtained only by testers of lower libraries. In this case, the errors may be exposed which can escape from testers of lower libraries.Keywords: parallel computing, communication library, testing approach, MPI, BLACS1 引言并行计算通信库的测试对并行计算系统至关重要,因为一个正确的通信库是并行计算系统的基础。对通信库的测试,一般是对库的各个

8、或几个部分分别隔离测试12。虽然也有所谓的系统测试,但也往往只是考虑到有限的方面。然而,库中的许多错误是在多个成分以某种有机的方式组合起来相互作用时才暴露出来,而人们很难从测试角度有意识地构造出这种情形。本文根据通信库的结构特性,提出二个新的测试方法。一般地,通信库结构都是分层的。例如,用于线性代数计算的通信库BLACS3 (Basic Linear Algebra Communication Subprograms) 是建立在MPI4和PVM5等通信库上的,而MPI的一个实现MPICH6又是建立在P47上的。这二个新的测试方法就是利用某平台上正确的上层通信库的可移植测试程序来测试另一平台上的

9、下层通信库。上层通信库测试程序也可看作下层通信库的应用程序,但是由于上层库的实现一般覆盖了下层库的各个部分,上层库的测试程序又覆盖了上层库的各个部分。因而与一般的下层库应用程序不同,上层库的测试程序也覆盖了下层库的几乎所有部分,且将它们有机地组合起来,在运行时,它们形成一种对下层库来说极复杂的情形。这种复杂的情形从下层通信库测试角度很难人为地构造出来。在这种情形下,许多下层库测试程序不能测的错误就可能暴露出来。本文以成功地在Hitachi SR2201和曙光2000上运行的,建立在MPI和PVM上的BLACS的测试程序来测试其他并行计算系统(在本文中我们统称它们为X系统)上已通过MPI测试程序

10、测试的MPI系统为例,证明本文提出的测试方法的可行性。2 通信库测试新方法原理测试方法一:设LC是一个在平台上的要测试的通信库,UC是建立在LC上的可移植通信库(如图1)。TEST_UC是UC的一个测试程序,在另一平台上TEST_UC成功地通过对UC的测试。因而在平台上TEST_UC的正确性被确保。为了对上的LC库进行测试,把TEST_UC在上运行。由于UC是可移植的,因而如果上的LC是正确的话,TEST_UC应该与在上一样成功通过;若不能,则应该可以判定是上的LC或其下层库有错误。 UC LC图1 通信库UC的结构(对于方法一)测试方法一只能确定LC或其下层库有错误。如果需要准确确定错误位置

11、,则可应用下面的测试方法二。测试方法二:设LCa和LCb是二个在平台上的要测试的通信库,它们是建立在另一较低层通信库LLC上。UC是建立在LCa和LCb上的可移植通信库(如图2)。TEST_UC是UC的一个测试程序,在另一平台上TEST_UC成功地通过对UC的测试。因而在平台上TEST_UC的正确性被确保。为了对上的LCa和LCb库进行测试,把TEST_UC在上运行。由于UC是可移植的,因而如果上的LCa和LCb是正确的话,TEST_UC应该与在上一样成功通过;若不能,则若对建立在LCa上的UC,TEST_UC不能通过而对建立在LCb上的UC,TEST_UC能通过,则应该可以判定是上的LCa有

12、错误;若对建立在LCb上的UC,TEST_UC不能通过而对建立在LCa上的UC,TEST_UC能通过,则应该可以判定是上的LCb有错误;若都不能通过,则上LLC有错误的可能性比LCa和LCb都错的可能性大。 UCUCUC LCb LCa LLC图2 通信库UC的结构(对于方法二)在上述二个测试方法中UC的可移植性很关键,否则的话,当TEST_UC在上不能通过时,就不能判定是上的LC(对方法一)或LCa或LCb或LLC(对方法二)有错误。因为这时候的错误可能是UC不可移植带来的。测试方法一比测试方法二简单,快捷。但测试方法二可更准确地定位错误。当用测试方法一确定LC或其下层库有错误,但很难确定错

13、误的准确位置时,可用测试方法二。若满足测试方法二中的条件,则错误出在LC下层库的可能性很大。这时,可将注意力集中在LC的下层库中进行排错。3 BLACS,BLACS测试程序及MPICH测试程序BLACS是一个面向线性代数计算的,可移植的通信库,它是建立在MPI和PVM等较低层的通信库上的。在并行计算系统X上BLACS的结构如图3所示.BLACS系统基本上由二部分组成:通信子程序和支撑子程序。通信子程序由点到点通信,广播通信和组合操作组成。支撑子程序主要由系统初始化,退出系统及逻辑进程网格信息获取组成。建立在MPI和PVM上的BLAC的这些部分几乎涉及MPI和PVM的各个部分。图3 通信库BLA

14、CS在系统X上的结构BLACS测试程序对BLACS的上述各个部分分别进行测试,重点对通信子程序,尤其是广播通信和组合操作测试较多,对各种矩阵的形状,大小,各种数据类型,各种逻辑进程网格形状,及群通信时数据在进程之间的流向等进行多种组合测试。MPICH是MPI的一个著名实现1。MPICH测试程序也是对MPICH的各个部分分别进行测试。这些测试是由很多小的测试程序来执行的。它们分成下面几类: 测试各种点到点通信子程序; 测试各种群通信子程序; 测试通信上下文(context)操作; 测试环境子程序; 测试拓扑子程序; 一些其他的测试程序。它们进行一些所谓的系统测试,但考虑的情形很简单。由此可看出,

15、MPICH的测试程序并没有对MPICH的各个部分进行复杂的混合的测试。事实上,很多复杂的情形从测试程序的设计角度,也很难构造出来。BLACS测试程序虽然是为测试BLACS而进行设计的,考虑的情况是有限的。然而它对于下层的MPI来说,却是一个极复杂的应用程序。由于BLACS几乎涉及MPI的各个部分,而BLACS测试程序又完全覆盖了BLACS的所有部分。因而与一般的MPI应用程序不同,它几乎覆盖了MPI的各个部分,且将它们有机地组合在一起,运行时呈现出一个极其复杂的状态,这种状态是MPICH测试程序达不到的。这样,逃过了MPICH测试程序的错误可能这时就暴露出来了。基于这一情况利用第2节的方法,我们用已经在曙光2000和Hitachi SR2201上顺利运行了的BLACS测试程序来测试新的并行系统上的MPI实现。4 BLACS测试程序对X系统上的MPI的测试X系统上的MPI(其实现是MPICH)已经通过MPI(即MPICH)测试程序的测试。但运用上述测试方法及BLACS测试程序,我们发现这些系统的MPI的下列问题: MPI同步及进程挂起问题。由于BLACS测试程序提供了输入参数的组合测试(数据精度,实现算法(逻辑拓扑),进程网格,消息长度),使得用户很容易通过修改输入文件参数改变测试的组合

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号