论文部分内容阅读
中国矿业大学信息处理与研究中心曾钢魏波
以网络技术为中心的当代计算机技术的发展正以前所未有的广度和深度影响着基础科学研究和应用技术开发的各个环节。矿业技术面临着提高知识创新能力、增加科技含量的迫切任务,尤其需要大力推广计算机等高新技术的应用。其应用广度涵盖矿山构造地质勘探、开采方案论证决策与过程控制和大型成套矿业机械设备设计制造;其深度从简单数据处理、工程图生成拓展到大型矿业工程力学问题数值分析、矿业机械计算机模拟设计分析与制造、矿山地质勘探数据解释、矿业地理信息系统建设等。
上述一系列富有挑战性的新应用归根结蒂是利用计算机软硬件工具来对复杂的矿业技术信息进行加工、分析与有效处理以得到可行和可靠的技术决策。这一方面对矿业领域科研人员的综合素质提出了新要求;另一方面也需要强有力的计算机软硬件来胜任与日俱增的信息分析研究与处理需求。
矿业大学引进了美国惠普公司最高性能的企业级服务器之一——HP9000V2200及配套系统和设备,为建立高性能的矿业信息处理与研究中心提供了有利工具。
基于V2200服务器的高性能计算环境
HP9000V2200是属于UNIX环境下的RISC大型服务器,其体系结构为对称多处理机(SMP)。
矿业大学为建立高效的网络计算环境。经过调研论证研究,提出了如图所示的模式:
HP-UX11.0操作系统管理
并行计算模式的实现
并行计算模型提供了一个描述各种并行处理类型的手段,模型建立与具体的硬件无关,可适于任何面向并行应用的机器。但是模型的性能取决于它在一个具体硬件结构上实施时如何优化。根据内存使用方法(共享/分布)和节点间通信手段(软件/硬件),可将并行计算模型分为四类:共享内存、消息传递(MPI)、远程内存操作和线程。
一、V2200上的并行计算
在运行包含多个并行和串行应用的工作负载时,并行吞吐量表达了多处理机在同一时
间运行多个串行和并行程序所能达到的性能。不同类型混合的计算负载对操作系统和编译系统提出许多特殊要求。操作系统必须能在一个应用程序进入并行段时很快启动多个线程,在离开时又能迅速地停止它们;而此时其它的普通计算程序和并行程序仍能正常运行。
包含并行应用的程序由支持并行的编译系统划分为线程,线程是进程内的一个单元控制流。在V2200服务器上,共享内存的并行程序作为一组线程的集合在多个处理器上运行。当该程序开始运行时,分离的执行线程在每个被使用的处理器上生成。第一个线程启动时,其它线程仍在“休眠”,我们把它叫线程1。线程1开始运行程序中的所有串行代码,当碰到并行操作时,操作系统首先把并行任务分解为一组带标识的线程,交给线程1,线程1就“唤醒”其它休眠的线程来分别执行已标识的并行代码,每个线程执行完自己的并行代码段后又进入“休眠”。并行任务分解为标识线程的操作是根据并行实施的范围来进行,包括循环层、任务层和区域层等。
在V2200上,既可用共享内存机制,也可用消息传递(MPI)机制。下面分别介绍:
1.共享内存机制
共享内存机制在共享内存机制[4]中,将程序中的变量、数组、数据块定义为所有权不同的两种内存类:线程私有和节点私有(线程共享)。节点私有数据项有一个虚拟地址,节点中的所有线程可用这同一个虚拟地址访问这个节点的节点私有数据,用Load和Store指令在多个进程中完成通讯,实现了对内存变量的共享。而线程私有数据只能被定义该数据的线程访问,每个线程私有数据在节点内拥有自己唯一的虚拟地址。
2.MPI机制
当程序中存在这样的进程:它所需要的内存比在共享内存方式时可获得的最大限度更多,这时手工调试的消息传递接口(Message-PassingInterface)方式就大有用武之地。在MPI[5]方式中,一个并行应用程序包含若干个同时运行的进程。每个进程拥有自己的局部内存,它与其它进程通过收发消息进行通讯。当数据被送入消息中时,相关的两个进程必需同时工作使数据从一个进程的局部内存传输到另一个进程的局部内存。在MPI机制中无共享内存,每个进程拥有私有的16TB寻址空间(HP-UX提供)。任何需要共享的数据必须在进程间显式地传递,程序中靠Send和Receive指令实现。
交互式动态分析调试工具CXperf
为了实现在V2200上的高质量编程,可配置HPCXperf6.0,一个面向编译的交互式
运行时性能分析工具。适用于HPANSIC,
ANSIC++,Fortran90和HPParallel32-bitFortran77编译器。运行环境为HP-UX11.0。
对可用于程序性能分析的方法进行分类时,不是从程序运行的硬件出发,而是
根据搜集程序数据时所采用的方法:是基于事件还是基于统计抽样。
采用基于事件的分析方法时需要在编译程序时附加特定的分析选项,使生成的可执行文件包含特殊的信息,供分析程序收集性能数据。
采用统计抽样分析方法时在一系列被测的时间间隔点上抽取程序的性能指标,然后在整个例程执行时间内进行性能平均。
CXperf属于基于事件的分析工具。与统计抽样分析相比,CXperf提供了更多样化的
度量分析范围和与程序原代码的直接相关性。这种基于事件的分析方法具有介入内部的特
点,使得分析指令的开销最小。使用CXperf可发现哪一个循环或例程是降低程序执行的
瓶颈。在一些情况下,对源原程序进行简单修改(如插入编译指令),就可明显改善程序的性能。
由于MPI机制完全由程序控制并行的实现,因此调试程序性能以达到高并行效率十分重要。而CXperf则为调试提供了一个很好的工具。在大规模并行程序(如气象预报程序)开发中CXperf是必不可少的。
网络计算环境实现
一、科学与工程计算中的并行特点[7]
1.数据并行性
分子动力学计算、PDE(偏微分方程)求解和蒙特卡洛算法都具有内在的数据并行性。这类算法由于要处理大量的数据,通常需要很长的计算时间,其并行度很大。
2.功能并行性
包括典型的线程并行性,如计算与通信重叠,I/O与计算并行或多个计算任务之间的并行。在大多数应用中存在着这类并行性。并行的粒度为中等,通常没有很大的并行度。
这类并行性通常在SMP系统上实现。
3.对象并行性
对象并行性可能有多种含义,但这里主要指在离散事件模拟中的并行性。对象并行与
数据并行类似,不同之处在于对象并行的基本单位“对象”通常比较大。如采矿过程可被
描述成采掘单元(采掘机、煤岩)之间的交互,而不是着眼于细观的力学有限元网格问题。
4.Metaproblem(多元问题并行)
例如物探数据解释系统中包含多个分离又互相关联的数据处理程序,它们可根据勘探工程的需求进行组合来完成特定的解释任务。多元并行问题由一系列单元连接而成,每个
单元本身就是一个完整的问题。多元并行问题通常有中等程度的并行性,与功能并行性相
比,多元并行问题的并行单元具有更大的粒度和独立性,可在分布式的计算环境中实现。
二、网络计算环境的实现
UNIX系统上最流行的窗口管理系统是XWindow,它采用了面向网络结构的服务器/客户(S/C)模式,提供了高性能的、与设备无关的、层次化的跨平台软件运行窗口界面,是建立分布式计算环境的理想工具。
应用前景
目前,本文图2所提出的网络计算模式系统软件配置已初具规摸,V2200平台上的大型有限元软件ABAQUS已通过校园网环境开展了多项矿山力学及矿山机械设计方面的研究。
为了更好地满足网络计算需求,在扩充汉字环境、开发MLIB高性能科学计算库的应用、开通ATM光缆通讯和完善网络管理等方面还有大量研究开发工作要做。