基于Java的异构并行虚拟机器
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
随着计算机和计算方法的发展,各个研究领域对高性能计算的需求越来越大,集群计算己成为并行处理领域的热点和主流。机群系统具有异构性,现有的并行编程环境存在不能跨越异构操作系统的问题,不能跨平台进行并行计算。本文在分析已有的并行虚拟机器环境PVM的基础上,利用Java语言的平台无关特性,构建一个能屏蔽操作系统差别、在无需提供一致系统的情况下实现机群并行计算的环境XVM。
     本文首先介绍了分布式并行处理技术的发展,然后着重分析了消息传递系统的原理和基于消息传递系统进行并行计算需要解决的一些关键技术,并对现有的PVM环境进行分析,了解其设计思想、系统组成、工作流程以及通信机制,以作为XVM系统设计的借鉴。然后介绍了XVM系统的实现语言Java的一些特性,Java语言的平台无关性是构建XVM的基础。
     在熟悉了消息传递系统的原理和采用的开发语言Java之后,参照PVM系统,本文提出了基于Java语言的XVM系统的总体设计思想,阐述系统设计的目标以及设计时考虑的一些技术因素,并描述了系统的功能设计。XVM系统采用星形并行计算模式,并将并行计算环境的构造和计算任务区分开来,采用纯Java语言实现,由一系列封装的类组成。它完成的功能是虚拟机的构造、任务调度管理和通信的实现,主要组成可以分为环境构造类、守护进程类、控制台类、通信管理类、消息管理类等几个部分。环境构造类用于构造并行虚拟机器环境并向外部提供编程接口;守护进程类提供通信监听和消息处理的功能;控制台类提供对并行虚拟环境进行配置和查询的接口:通信管理类负责系统中通信连接的建立;消息管理类实现系统中各种消息的构造和存储。这些类相互联系,共同提供在异构操作系统的机群中实现并行计算需要的并行虚拟环境。
     在描述了系统设计思想之后,本文逐一介绍了XVM系统组成部分的一些关键类的具体编程实现,它们采用纯Java语言编写。最后,结合作者在并行实验室的局域网配置中的一些工作,介绍了建立XVM环境需要的DNS的配置过程,于此基础上在并行实验室中安装已经实现了的XVM系统,并用一些测试程序对XVM的性能进行测试。
With the development of computer and computing method, the demand for high performance computing increases rapidly in all research fields, and the cluster computing has become popular in parallel computing filed. The cluster system maybe consists of heterogeneous computer system, but the current parallel programming environment can't cross the different operate systems to execute parallel computing. In this paper we will discuss the implementation of such a parallel system called XVM, which is based on PVM and has taken the advantage of Java.
    In this paper, we first introduce development of the technology in Distributed Parallel Computing field, and then pay much attention to analyze the principles of Message Passing System and the core technologies needed in the message passing parallel computing. Then, we begin to analyze the PVM system in order to understand its design thought and to learn about its components, its workflow and its communication mechanism, so that we can design the XVM. Then we introduce the features of Java with which the XVM system is developed. The platform independence feature of Java is the foundation of XVM.
    After describing the Message Passing System and Java, then the design thought of XVM based on Java is explored, then the design goal, system function and some technologies are taken into account. XVM takes the self-control model of parallel computing and separates the system management tasks and the computing tasks. XVM is developed with pure Java and consists of a serial of Java classes. The main goal of XVM is to form a virtual machine and manage the tasks and implement the communication .The main components include Environment Class, Daemon Class, Console Class, Communication Management Class and Message Management Class. The first one is used to built a parallel virtual machine and provide programming interface to users. The second one is to listen connection requests and deal with the incoming
    
    
    
    messages. The third one provides an interface to manage and query from the parallel virtual machine. The fourth is responsible for establishing the connection in XVM, and the last one will build and store all the messages in XVM. All of these classes cooperate and form a parallel virtual environment that is needed in the cluster computing over heterogeneous operate systems.
    After introducing the design thought, we describe how to implement all the components of XVM in detail. Finally, with the maintenance practice in the parallel laboratory of the author, we describe the process of establishing the DNS server that may be needed in XVM system. Based on this, we set up the XVM system in the LAN of the parallel laboratory and test the performance of XVM with some XVM parallel programs.
引文
[1] 陈国良编著.并行计算—结构·算法·编程.高等教育出版社,1999.
    [2] 孙家昶等编著.网络并行计算与分布式编程环境.科学出版社,1996.
    [3] 王鼎兴,庄伟强编著.一种实现并行计算的新主流技术---NOW.小型微型计算机系统,1995.16(2):29~34.
    [4] 黄铠,徐志伟编著.可扩展并行计算—技术结构与编程.机械工业出版社,2000.
    [5] 陈国良.更实际的并行计算模型.小型微型计算机系统,1995.2:1~9.
    [6] 张德富.并行处理技术.南京大学出版社,1992.
    [7] 彭德纯,邱毓兰,林子禹.分布式并行处理技术导论.武汉大学出版社,1996,60~62.
    [8] 武剑锋等.网络并行计算系统的消息存储器网络接口设计.计算机学报,2000,8.
    [9] 周桂林等.HPNI:一种新型的机群系统网络接口.计算机研究与发展,2000.2
    [10] Rajkumar Buyya著,郑纬民,石威,汪东升等译.高性能集群计算:结构与系统(第一卷).电子工业出版社,2001.
    [11] Rajkumar Buyya著,郑纬民,石威,汪东升等译.高性能集群计算:编程与应用(第二卷).电子工业出版社,2001.
    [12] 申俊,郑伟民.FMP: 一种适用于机群系统的快速消息传递机制.计算机学报,1998,21.
    [13] 张云泉,施巍松.负载平衡无关的并行程序最适处理器网格选择.软件学报,2000.11.
    [14] 尹朝庆.异构机群的并行任务均衡分配算法.武汉交通科技大学学报,1997.21(5):523~52.
    [15] T.von Eicken,D.E.Culler,S.C.Goldstein,and K.E.Schauser.Active Message:A Mechanism for Integrated Communication and Computation.In Proc.ISCA'92,Gold Coast,Australia,May 1992.
    
    
    [16] D.Engler,UM.Kaashoek,and J.O'Toole.Exokernel,an Operating System Architecture for Application-level Resourse Management.In Proc.15th ACM SOSP, December 1995.
    [17] Al GeiSt etc,PVM:Parallel Virtual Machine,1994.
    [18] Geist A,Beguelin A,Donggarra J et al,PVM:Parallel Virtual Machine,The MIT Press,1994.
    [19] 孙家昶,网络并行虚拟平台PVM3. 计算机系统应用, 1994.10.
    [20] PVM(news://comp.parallel.pvm)
    [21] Kai Wang.《高等计算机系统结构 并行性 可扩展性 可编程性》.清华大学出版社,1995.
    [22] 陶志良,顾宏,石教英.PVM结构分析(1)---配置管理和处理机启动.计算机工程与应用,1996.4.
    [23] 陶志良,顾宏,石教英.PVM结构分析(2)---PVMD协议和数据管理.计算机工程与应用,1996.4。
    [24] 陶志良,顾宏,石教英.PVM结构分析(3)---PVM监护进程与任务消息处理.计算机工程与应用,1996.4.
    [25] 陶志良,顾宏,石教英.PVM结构分析(4)---PVM消息机制.计算机工程与应用,1996.4.
    [26] 耿新民.PVM---基于网络的并行计算系统.上海电力学院学报,1997.13(1):45~50.
    [27] 张博,张勋.异构型并行分布计算系统PVM的结构分析.小型微型计算机系统,1998.19(6):14~22.
    [28] 鞠九滨,王勇.调度PVM任务.计算机学报,1997.20(5):470~474.
    [29] 秦忠国,姜弘道.消息传递界面PVM和MPI的现状与发展趋势.计算机研究与发展,1998.35(6):496~499.
    [30] 丁宇新,程虎.Java虚拟机用户多线程的设计与实现.软件学报,2000.
    [31] Ferrari A.JPVM:network parallel computing in Java. In:Proceedings of the ACM 1998 Workshop On Java for High-Performance Network Computing,1998.
    [32] Java Remote Method Invocation Specification,Sun Microsystems, Inc.,1998.
    [33] Horstmann CS.Core Java(V1.1)-----Advanced Features.Palo Alto:Sun Micro-systems.1998.
    
    
    [34]杨华中,贾耀伟编著.Java语言与程序设计.人民邮电出版社,1997.
    [35]Lindolm T,Yellin F.The Java Virtual Machine Specification.Reading,MA,Addison-Wesley,1996.
    [36]王克宏主编,王少锋等编著.Java 2 程序设计.清华大学.出版社.2000年.
    [37]叶靖波,陆鑫达.JPI:基于纯 Java语言的异构并行处理支持平台.计算机学报,2000.23(7):726~731.
    [38]王博,王春森.JAVA虚拟并行机的设计.小型微型计算机系统,1998.19(12):51~55.
    [39]刘宇敏,黄明,余达征等.Java多线程计算.南昌水专学报,1999.18(2):12~17.
    [40]王美清,郑文波,郑守淇.利用Java实现分布计算.福州大学学报(自然科学版),2000.28(5):18~21.
    [41]曾国荪,陆鑫达,刘祖斌等.Java在科学计算方面的并行处理.计算机应用,2000.20(1):20~23.
    [42]梅皓,沈志宇,廖湘科.Key Technology of Java-Based Distributed Parallel Computlng. 计算机工程与科学,2000.22(2).
    [43]刘溥,彭德纯,林子禹等.PJVM: 基于 Java的面向对象分布并行处理系统.计算机研究与发展,1998.35(6):491~496.
    [44]谢立,吴国庆,茅兵,陈道蓄.基于Java的分布并行计算环境Java PVM.高技术通讯,1998.4:12~15.
    [45]刘溥,熊盛武,彭德纯,李元香.基于 Java分布并行处理系统实现的若干问题.武汉汽车工业大学学报,1997.19(5):60~63.
    [46]柳青,盖起贤.Java运行系统与Java虚拟机.云南大学学报(自然科学版),1997.19(6):574~579.
    [47]Philip J. Hatcher and Michael J. Quinn, Data-parallel programming on Computers, 1991.
    [48]Berkeley WebOs (http://now. CS. Berkeley. edu/WebOS/)
    [49]National Scalable Cluster Project(NSCP)(http://www lac. eecs. uic. edu/NSCP2. html)
    [50]MPI Standard site(http://www. mcs. anl. gov/mpi/index. html)
    [51]Object Oriented Parallel Programming(http://www. arc. unm. edu/workshop/oop/oop. html)
    
    
    [52]Paralle and Heterogenous Publications(http://www-cse. ucsd. edu/users/jenny/parpubs. html)
    [53]中国科学研究院计算技术研究所(http://www. ict. ac. cn)
    [54]Stevens WR. UNIX Network-Programming Network APIs. 2nd Edition. Hpper Saddle: Simon &Schuster Company, 1998.
    [55]卢凯,金士尧.SW_ PVM:一个基于PVM的分布式多线程通讯库.小型微型计算机系统,1999.20(10):747~750.