高性能网格并行计算论文
高性能计算与并行计算方法研究

高性能计算与并行计算方法研究随着科技的不断发展,人们对计算机的性能要求也越来越高。
高性能计算和并行计算方法的研究成为了解决大规模计算问题的关键。
本文将探讨高性能计算和并行计算方法的概念、应用领域以及相关的研究进展。
一、高性能计算与并行计算方法的概念和应用领域1. 概念高性能计算是指利用计算机和相关技术,以超越个人计算机的规模和速度,解决大规模和复杂的科学、工程和商业计算问题的能力。
高性能计算通过提供更快的处理速度、更大的存储空间和更高的可靠性,可以进行更加复杂的计算任务。
而并行计算方法则是实现高性能计算的关键技术之一,指的是将计算任务分解为多个较小的子任务,通过同时运行多个计算核心,最终达到加速计算的目的。
2. 应用领域高性能计算与并行计算方法在各个领域都有广泛的应用。
在科学研究方面,高性能计算可以用于模拟天气系统、天体物理学、基因组学、药物设计等领域。
在工程应用方面,高性能计算可以用于飞行器设计、建筑结构模拟、流体力学分析等。
在商业领域,高性能计算可以用于金融风险评估、供应链优化、大规模数据分析等。
二、并行计算方法的研究进展1. 并行计算架构并行计算架构是支持并行计算的硬件和软件环境。
目前主要有共享内存并行计算和分布式内存并行计算两种架构。
共享内存并行计算通过共享内存空间,多个处理器可以同时访问相同的内存数据,以实现并行计算。
分布式内存并行计算则通过网络连接多台计算机,每台计算机都有独立的内存空间,互不共享,但可以通过消息传递进行通信和协作。
2. 并行计算模型并行计算模型是并行计算的逻辑表示,用于描述并行计算任务的分解和组织方式。
目前常用的并行计算模型有分治法、数据并行法和任务并行法。
分治法将大问题分解为多个小问题,并使用不同的处理器独立计算每个小问题。
数据并行法将数据分成多个部分,每个部分由不同的处理器计算。
任务并行法将计算任务分为多个独立的子任务,由不同的处理器并行执行。
3. 并行计算算法并行计算算法是为了利用并行计算架构的特点而设计的算法。
高性能计算中的并行算法设计与实现

高性能计算中的并行算法设计与实现在高性能计算领域,如何设计和实现高效的并行算法是一个至关重要的任务。
并行算法是指将计算任务分解为多个子任务,然后在多个处理器上同时执行这些子任务,以加速计算过程并提高计算效率。
本文将介绍高性能计算中的并行算法设计与实现的一些关键概念和实践经验。
首先,一个好的并行算法设计需要考虑到问题的数据分解和任务的划分。
数据分解是指将待解决的问题划分为多个子问题,而任务划分是将这些子问题分配给不同的处理器并发执行。
通常情况下,问题的数据结构和特性会决定数据分解和任务划分的方式。
一般来说,可以采用以下几种常见的并行算法设计和实现方法:1. 分治法(Divide and Conquer):分治法通过将问题划分为多个子问题,并对每个子问题独立求解,最后将子问题的解合并得到原问题的解。
这种算法思想常用于解决递归性质的问题,可以在其中应用并行化的方法。
2. 数据并行法(Data Parallelism):数据并行法将待处理的数据集合划分为多个子集,并将每个子集分配给不同的处理器并发处理。
这种方法适用于可以将计算任务应用于多个数据块的问题,如图像处理和模拟计算等。
3. 任务并行法(Task Parallelism):任务并行法将问题划分为多个独立的任务,并将每个任务分配给不同的处理器并发执行。
每个任务可以是不同的算法步骤或是相同算法在不同数据上的执行。
这种方法适用于可以将计算任务划分为多个相对独立的部分的问题。
其次,对于高性能计算需求,选择合适的并行计算模型也是非常重要的。
并行计算模型定义了计算任务之间的通信和同步方式,以及处理器之间的协作方式。
常见的并行计算模型包括共享内存模型、分布式内存模型和混合模型等。
在选择并行计算模型时,需要考虑问题的规模和特性,以及硬件设备的性能和配置。
1. 共享内存模型(Shared Memory Model):共享内存模型中,多个处理器共享同一块内存。
处理器可以通过读写共享内存来进行通信和同步。
高性能计算平台的并行算法设计与性能评估

高性能计算平台的并行算法设计与性能评估在计算科学和工程领域中,高性能计算(High-Performance Computing,HPC)平台扮演着重要的角色。
为了提高计算机的计算能力和效率,研究人员一直在致力于设计和优化并行算法。
并行算法利用多个处理器或计算节点同时进行计算,使得计算任务能够更快速地完成。
本文将探讨高性能计算平台的并行算法设计与性能评估方法。
首先,设计高效的并行算法是高性能计算平台的关键。
并行算法将计算任务分解为多个子任务,并且这些子任务可以并行执行。
在设计并行算法时,需要考虑以下几个方面。
首先,需要合理划分任务和数据。
并行算法的成功与否很大程度上取决于任务和数据的划分。
划分任务的目标是将计算任务划分为多个可并行执行的子任务,而划分数据的目标是将数据划分为多个适合并行计算的子数据集。
合理的任务和数据划分可以减少通信开销和负载不均衡的情况,从而提高计算性能。
其次,要选择合适的并行模式。
常见的并行模式包括共享内存并行和分布式并行。
共享内存并行是在单个计算机系统中使用多个处理器或核心,并利用共享内存空间进行计算。
分布式并行是在多台计算机系统之间进行计算,并利用消息传递机制进行通信。
选择合适的并行模式取决于计算任务的规模和硬件资源的限制。
此外,还需考虑并行算法的通信和同步开销。
并行算法中的通信和同步操作是必不可少的。
通信是为了在不同的处理器或计算节点之间传递数据,而同步是为了保证子任务的执行顺序和结果的一致性。
减少通信和同步开销可以提高并行算法的效率。
常用的方法包括减少数据传输量、优化通信模式和采用非阻塞通信等。
针对高性能计算平台的并行算法设计,我们还需要进行性能评估。
性能评估的目标是确定并行算法运行的时间、资源使用和可扩展性。
以下是常用的性能评估方法。
首先,可以使用问题规模和加速比来评估性能。
问题规模是指计算任务的规模或数据的大小,而加速比是指并行算法与串行算法相比的运行时间比例。
通过绘制问题规模和加速比的关系曲线,可以判断并行算法的可扩展性和效率。
高性能计算下的并行算法研究

高性能计算下的并行算法研究随着计算机技术的不断发展,高性能计算已经成为了当前科学计算、工程设计等领域中的重要研究方向。
而并行算法,则成为了高性能计算的基石之一。
本文将介绍高性能计算下的并行算法研究。
一、什么是高性能计算?高性能计算,简称HPC,是指通过并行计算技术使用高速计算机来加速科学计算、工程设计等领域中需要处理的大量数据。
它通常涉及大规模集群、分布式计算、高速网络等技术,能够在较短时间内完成之前无法完成的复杂计算任务。
二、什么是并行算法?并行算法是指通过将计算任务划分成多个子任务并将其分配到多个计算单元上,以并行的方式完成计算。
在高性能计算中,使用并行算法能够更加高效地利用计算机的硬件资源,使得算法计算速度得到大幅提升。
三、并行算法的基本要素1. 问题分解与任务分配并行计算是通过将原问题分解成若干子问题,然后将子问题分配给不同的处理器,由每个处理器独立计算出答案,最后由某个处理器合并这些局部解以得到原问题的解。
因此,问题分解与任务分配是并行算法设计的核心。
2. 通信在并行计算中,由于任务的分解和分配,每个处理器计算的结果需要与其他处理器交换信息,因此通信也成为了并行算法中不可避免的问题。
3. 负载均衡一个好的并行算法必须能够保证处理器负载均衡,即保证每个处理器都有处理任务,而且处理任务的计算量相当。
这能够使得并行计算得到最优的性能提升。
四、常用并行算法1.并行排序算法排序算法是计算机科学中比较常见的算法之一。
在高性能计算中,最常用的排序算法是快速排序和归并排序,它们都可以通过并行算法得到优化。
2.并行搜索算法搜索算法包括深度优先搜索、广度优先搜索等。
在并行化搜索算法时,多个处理器都有能力搜索图的不同区域,从而加速搜索过程。
3.矩阵计算算法在高性能计算中,矩阵计算是一种高计算量、复杂性高的问题。
基于并行计算的矩阵计算算法可以在减少计算次数的同时,提高计算精度。
五、总结高性能计算下的并行算法研究在当前的科学计算和工程处理中有着广泛的应用,是目前计算机硬件不断提高的基础。
高性能计算中的并行算法和应用技术研究

高性能计算中的并行算法和应用技术研究近年来,高性能计算技术的发展呈现出了倍增的速度。
高性能计算已经成为科学计算和工程应用中不可或缺的手段。
高性能计算中的并行算法和应用技术研究就成为了重要的课题。
1. 并行算法并行算法的研究和应用是高性能计算中的一个重要方向。
并行算法在处理大规模数据时,可以通过将数据划分成多个子集进行并行计算,大大加快计算速度。
当前,研究人员已经提出了很多的并行算法,如分治策略、并行动态规划算法、并行贪心算法、并行模拟退火算法等。
这些算法的实现都要依靠具有高并行性的硬件平台,如图形处理器(GPU)、FPGA等。
2. 并行应用高性能计算的另一个重要方向是并行应用技术研究。
并行应用是指将应用程序分解为多个子任务,然后在不同的处理器上并行求解,以提高计算能力和效率。
并行应用的研究主要集中在各个领域的科学计算和工程应用,如气象模拟、流体动力学模拟、多媒体处理、分子模拟、生物信息学等。
这些应用要求具有高效、可扩展的并行算法和架构。
同时,也要求具有高速和高带宽的硬件平台,如高速网络、存储系统等。
3. 并行分布式计算除了利用并行算法和并行应用技术提高计算能力之外,还可以利用分布式计算的技术提高计算效率。
分布式计算指的是将一个任务分解为多个子任务,并在多个计算机上分别计算,然后将结果汇总得到最终结果。
分布式计算广泛应用于互联网搜索、数据挖掘和计算生物学等领域。
例如,互联网搜索引擎Google就是基于分布式计算技术开发的。
4. 并行计算环境并行计算的环境是指由多个处理器和存储单元组成的计算机系统。
当前,应用广泛的并行计算环境有以下几种:(1)基于共享内存并行计算环境。
多个处理器共享一块大容量存储系统,并由系统软件管理和控制。
(2)基于分布式内存并行计算环境。
多个计算节点通过高速网络互联,每个节点拥有自己的内存和处理器。
(3)基于流处理器并行计算环境。
主要用于流媒体处理和数字信号处理等领域。
5. 并行计算的应用高性能计算的应用广泛,主要包括以下方面:(1)气象预报和气候模拟。
高性能计算平台中的并行计算模型与算法研究

高性能计算平台中的并行计算模型与算法研究在现代科学与工业领域,我们常常需要处理海量的数据和复杂的计算任务。
为了提高计算效率和加快计算速度,高性能计算平台应运而生。
在这些平台上,并行计算模型和算法的研究变得尤为重要。
本文将探讨高性能计算平台中的并行计算模型与算法的研究进展。
1. 并行计算模型的发展在高性能计算平台中,我们常常需要将任务分解成许多小的子任务,并且以并行的方式同时执行这些子任务。
为了更好地组织和管理这些并行计算任务,研究人员提出了许多并行计算模型。
1.1 SPMD模型SPMD(Single Program Multiple Data)模型是最基本的并行计算模型之一。
在这种模型中,多个处理器同时执行相同的程序,但可以独立地处理不同的数据。
这种模型的好处是简单直接,适合于那些可以被分解成独立任务的问题。
但是,由于处理器之间的通信方式比较简单,限制了任务的规模和复杂度。
1.2 SIMD模型SIMD(Single Instruction Multiple Data)模型一般是指将多个处理器以向量的方式同时对数据进行操作。
这种模型适合于处理数据之间存在着相似性的问题,例如图像处理和信号处理。
然而,由于处理器之间的同步和数据依赖关系的限制,这种模型的适用范围相对有限。
1.3 MIMD模型MIMD(Multiple Instruction Multiple Data)模型是一种更加灵活和复杂的并行计算模型。
在这种模型中,每个处理器可以独立地执行不同的程序,并且可以管理自己的数据。
这种模型适合于处理任务之间存在复杂依赖关系的问题,例如并行排序和图算法。
然而,由于处理器之间的同步和通信开销,这种模型的性能也存在一定的局限性。
2. 并行算法的设计与优化在高性能计算平台中,设计并行算法是至关重要的。
有效的并行算法可以提高计算效率和加快计算速度。
为了设计出高效的并行算法,研究人员需要考虑诸多因素。
2.1 任务划分与负载均衡任务划分是将原始问题分解成小的子任务的过程。
基于网格计算的高性能计算应用研究
基于网格计算的高性能计算应用研究高性能计算是现代科学和工程领域中不可或缺的一部分,随着计算机硬件技术和软件技术的不断发展,高性能计算的应用场景与方式也在逐步扩展与升级。
而针对大规模数据处理和计算需求,基于网格计算的高性能计算应用也逐渐崭露头角。
本文将从基本概念、应用场景、实现方式和发展趋势等方面进行分析探讨。
一、基本概念网格计算(Grid Computing)是指将具有独立管理的计算机、网络、存储和数据资源,通过 Internet 建立虚拟的供应链条或组织结构,进行数据共享和协同处理的技术体系。
它是一种新的分布式计算模式。
在网格计算模式下,用户可以在任意地点通过计算网格来获取到其需要的计算能力、数据和文档等资源。
相较于更传统的集中式计算模式,网格计算具有更高效、更灵活、更可靠、更安全的特点。
二、应用场景网格计算是一种高端、复杂的分布式计算和数据共享形式,主要适用于以下数据处理和计算场景:1. 大规模计算和数据密集型应用:如传统的科学计算、气象预测、大数据分析等。
2. 分散的、异构的数据源和处理资源利用:如跨互联网合作、跨组织、跨界科学计算等。
3. 海量数据存储和管理:如超级数据中心、大型数据仓库等。
三、实现方式网格计算的实现需要依靠一系列的技术支持和基础设施。
下面是网格计算的主要实现方式:1. 网格中间件:底层的网格基础设施,用于构建具有高度可靠性、强大能力、易用性和扩展性的分布式计算环境。
常见的网格中间件包括:Globus Toolkit、Sun Grid Engine、IBM Tivoli等。
2. 资源管理器:用于管理分布式的硬件、软件和数据资源,并进行调度和协同。
3. 安全机制:授权和管理对资源的访问和使用,保证数据隐私和安全。
4. 应用程序接口(API):提供易用和标准的接口和软件开发工具,便于应用程序的设计和开发。
四、发展趋势网格计算技术是目前分布式处理技术领域的重要研究领域之一,未来的网格计算趋势具有以下几个方向:1. 更加安全和隐私的分布式处理:更多的安全控制和规则,以确保数据的隐私性。
高性能计算与并行计算模型研究与优化
高性能计算与并行计算模型研究与优化高性能计算和并行计算模型是当今科学和工程领域中不可或缺的重要工具。
随着数据规模和计算任务的增长,传统的串行计算模型已经无法满足需求。
因此,研究和优化高性能计算和并行计算模型变得至关重要。
高性能计算是指使用高性能计算机和并行计算模型,通过并行处理和并行计算的方式,以更快的速度解决复杂的科学计算问题。
这些问题通常包括天气模拟、数字化设计、基因组学、天体物理学等领域。
高性能计算可以显著提高计算任务的速度,加快科学研究的进展,并帮助解决复杂的工程问题。
并行计算模型是一种将计算任务分割成多个子任务,分别在多个处理器上并行执行的计算模型。
常见的并行计算模型包括共享内存模型、分布式内存模型和混合模型。
这些模型各自具有不同的特点和适用范围,研究和优化这些模型可以提高并行计算的效率和可扩展性。
为了进一步提高高性能计算和并行计算模型的性能,研究人员不断寻找新的优化方法和技术。
一种常用的优化方法是任务调度和负载平衡。
任务调度是指将计算任务合理地分配给多个处理器,以最大限度地减少执行时间。
负载平衡是指在并行计算中均衡地分配计算负载,以避免某个处理器过载而导致整个计算任务变慢。
另外,优化算法和数据布局也可以显著提高高性能计算和并行计算模型的性能。
一种常见的优化算法是并行算法,它将原始计算问题划分为一系列子问题,并在每个处理器上并行解决。
这可以提高计算的效率和速度。
此外,针对不同的计算问题,研究人员还开发了多种特定的优化算法,以提高性能和准确性。
除了优化算法,数据布局也是提高高性能计算和并行计算模型性能的重要因素之一。
高性能计算和并行计算模型通常需要在多个处理器之间传输大量数据。
通过优化数据的布局和存储方式,可以减少数据传输的时间,并减轻处理器的负载。
例如,将需要经常访问的数据存储在离处理器更近的位置,可以减少数据传输的时间。
此外,硬件架构的优化也对高性能计算和并行计算模型的性能有着重要影响。
使用高性能分布式文件系统实现大规模并行计算(二)
使用高性能分布式文件系统实现大规模并行计算在当今信息化时代,大规模的并行计算已经成为各行各业中的常见需求。
为了实现高效的并行计算,传统的单机计算已经无法满足需求,而高性能分布式文件系统正是一种有效的解决方案。
本文将探讨使用高性能分布式文件系统实现大规模并行计算的优势和挑战。
第一部分:高性能分布式文件系统的原理和优势高性能分布式文件系统是为高性能计算而设计的一种分布式文件系统。
它的基本原理是将海量的数据分散存储在多个机器上,通过高速网络连接彼此协同工作,实现数据的高速读写和并行计算。
与传统的单机文件系统相比,高性能分布式文件系统具有以下优势:1. 可靠性:高性能分布式文件系统采用冗余存储技术,将数据分布存储在多个机器上。
即使某个节点发生故障,数据仍然能够访问和恢复,保证了数据的可靠性。
2. 高性能:高性能分布式文件系统通过增加机器的数量和网络的带宽来提高系统的吞吐量和响应速度。
大规模的并行计算可以同时在多个节点上进行,极大地提高了计算效率。
3. 可扩展性:高性能分布式文件系统可以根据需求灵活地增加或减少存储节点,实现系统容量的扩展。
这使得系统能够满足不断增长的计算需求,保证了系统的可持续发展。
第二部分:高性能分布式文件系统的挑战和解决方案尽管高性能分布式文件系统具有很多优势,但是在实际应用中也面临一些挑战。
以下是一些常见的挑战和解决方案:1. 数据一致性:在分布式系统中,多个节点之间的数据一致性是一个重要的问题。
解决方案是通过引入一致性协议来确保数据的一致性,例如通过分布式事务或副本协议来实现。
2. 数据访问性能:由于数据存储在多台机器上,数据的访问和读写速度可能受到网络延迟的影响。
为了提高数据的访问性能,可以采用数据的缓存技术,将热门数据缓存在内存中,减少网络传输的开销。
3. 系统维护和管理:高性能分布式文件系统通常需要部署在大规模的服务器集群上,系统的维护和管理是一项复杂的任务。
解决方案是采用自动化管理工具和监控系统,实现系统的自动化运维,减少人工成本。
高性能计算中的并行算法设计与分析
高性能计算中的并行算法设计与分析高性能计算是指利用高速计算机和优化算法来解决复杂问题的领域。
在高性能计算中,提升计算速度和效率的关键是并行算法的设计和分析。
本文将讨论高性能计算中的并行算法设计和分析的相关内容。
在高性能计算中,计算任务通常需要处理大规模的数据和复杂的计算操作。
为了提高计算速度和效率,可以利用并行计算的方式来同时进行多个计算操作。
并行算法是为并行计算设计的算法,可以将计算任务划分为多个可以并行执行的子任务,以实现更快的计算速度。
在设计并行算法时,首先需要考虑如何将计算任务合理地划分为多个子任务。
这种划分通常基于数据的分解或者任务的分解。
数据的分解是将大规模的数据分为多个小数据集,每个小数据集在一个计算节点上进行独立的计算。
任务的分解是将一个大型的计算任务分为多个小任务,每个小任务在一个计算节点上进行独立的计算。
根据计算任务的特点和计算机集群的架构,选择合适的划分方式能够充分利用计算资源并提高计算效率。
其次,需要考虑并行算法的通信和同步机制。
在并行计算中,不同的计算节点需要进行通信来交换数据或者共享计算结果。
通信的开销会影响并行计算的效率,因此需要选择高效的通信方式和合适的通信模式,以减少通信开销。
同时,不同的子任务在并行计算过程中可能存在依赖关系,需要进行同步操作来保证计算的正确性。
有效的通信和同步机制是设计并行算法的关键。
另外,考虑并行算法的负载均衡也是十分重要的。
负载均衡是指将计算任务合理地分配给不同的计算节点,以使得各个节点的计算负载相对均衡。
负载均衡的好坏直接影响了整体计算的效率和性能。
因此,在设计并行算法时,需要在各个计算节点之间动态地分配计算任务,以保持负载均衡。
除了并行算法的设计之外,对于高性能计算中并行算法的分析也是十分重要的。
分析并行算法的性能可以评估其计算速度和资源利用效率,为优化算法和改进设计提供指导。
常用的分析指标包括加速比、效率和可扩展性等。
加速比是指并行算法相对于串行算法的计算速度提升程度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高性能网格并行计算 摘 要 :对高性能计算的各种方式进行了分析和比较,并阐述了网格和元计算的关系。通过对当前各种网格工程的透视,论述了网格体系结构和网格服务语义。探讨了网格的两个关键特点:异构性和动态性及其解决方法。对于认识网格概念以及指明未来高性能并行计算发展方向有一定意义。
关键词:网格;高性能计算;开放网格服务体系结构;异构性 1 高性能计算的各种形式 1.1 分布式计算 所谓分布式计算是指在分布式计算机系统上的程序设计和实现。而分布式系统又是指由多个地理上分散的计算机经互联网连接而成的系统,它是多计算机系统的一种形式,强调资源、任务、功能和控制的全面分布。就物理资源而言,包括处理机、输入输出设备、通信接口和辅助存储器等。就逻辑资源而言,包括进程、任务、文件、表格和数据库等。早期分布式计算的侧重点是分布资源的共享利用,以便减少购买昂贵设备( )如激光图形打印机的开销。由于分布式计算系统中有多个处理结点,因此应用任务在各个结点上的负载平衡也是分布式计算追求的目标。分布式计算主要是支持具有地理分布特征的应用项目,如飞机售票系统、银行通存通兑系统等。而且还能利用分布资源实现容错功能,但计算任务的高性能不是它刻意追求的目标。
1.2 并行计算 并行计算简单地说,就是在并行计算机上所做的计算,它和常说的高性能计算、超级计算是同义词。并行计算的物质基础是高性能并行计算机,如单指令多数据流机、SIMD 并行向量处理机PVP、对称多处理机SMP、大规模并行处理机MPP、工作站机群COW,也包括分布网络计算机等。任何超级计算都离不开使用并行技术,从理论上讲,没有因果关系( )或依赖关系的两个事件可以并发执行。直觉上,则是指两个事件同时执行。开发并行性的途径有3种,即时间共享、空间共享和资源重复。如流水线计算机是通过时间共享,让多个部件在时间上交错重叠地执行运算和处理;阵列处理机利用的是资源重复。由于业已提供的计算能力总是满足不了人类对计算能力的需求,而且这种需求是无止境的,因此并行计算的宗旨是追求高性能,有时甚至不惜代价去达到这样的目标。另外,并行计算理论还不成熟,尚没有成为主流计算技术,许多问题有待解决。
1.3 异构计算 自 Freund首先提出优化选择理论之后[1],异构计算便成为近年并行处理研究的新台阶。 IEEE每年组织召开一次 HCW(heterogeneous computing workshop)。所谓异构计算,是指将性能、属性各异的计算机(如PC、工作站群、向量机等),通过高速网络连成并行计算环境,充分利用程序和体系结构的异构性,各尽潜能,合理分治,协同完成一个计算任务,使得完成时间最少的过程。形象地说,异构计算如同交响乐团演奏一首乐曲,各种乐器协同弹奏,产生最美妙的乐感。据报道,许多超级计算机的峰值性能只发挥了,5% 原因是程序特征和体系结构不匹配。异构计算追求的目标正是充分挖掘程序和机器潜在的特征,并且让这两种特征匹配,从而大大提高任务的执行效率。 1.4 元计算 元计算概念是伴随着LAN向WAN、 Internet的发展过程中提出来的。要回答什么是元计算,先要搞清楚什么是元系统、元计算环境等概念。一般来讲,具有存在的主要任务和根本目标的任何形式的集体均可算是一个元系统。广义上讲,元系统是一个异构系统,这个系统通过某种网络将各个构件无缝地结合在一起,每个构件有自己的分工,完成一种特定的任务。整个系统将所有构件协调起来完成一个总体目标,并对外表现为单一的整体,且构件对外是不可见的。如果为了计算目的而组建的元系统,则称之为元计算环境。在元计算环境中开展的程序设计和程序运行,则被称为元计算。如果将元计算环境引入到广域网范围内,使得广域网上的空闲计算机资源集成和共享起来,对那些亟需科学计算的用户提供统一界面的服务,而不必关心用户提交的任务是如何划分的,在何种机器上运行,结果如何收集等,这就是元计算追求的目标
1.5 网格计算 网格计算是在元计算的基础上发展起来的,是Internet 应用的新发展,是在巨型机与互联网技术的基础上推出的一项新变革,是完成超级计算任务的一种新模式,又称为虚拟计算环境,或全球计算统一平台。网格试图实现互联网上所有资源的全面连通和共享,包括计算资源、存储资源、通信资源、软件资源、信息资源等。网格计算需要使用一套能够把一个应用程序划分成能在上千个计算机上执行的软件和机制,感觉上如同个人使用一台超级计算机一样。从学术上讲,网格是分布计算的一种形态。网格追求的目标来源于人们对“电力网”的类比理解,人们希望从网格中获取“计算或服务”,就像家电用插头从电力网中获得“电能”一样方便和普及。
2 著名的网格工程
2.1 Globus工程 Globus是美国Argonne国家实验室的研发项目,全美有 12所大学和研究机构参与了该工程。 Globus对资源管理、安全、信息服务及数据管理等网格计算的关键理论进行研究,开发了能在各种平台上运行的网格计算工具软件。工Globus 程的目标是阐明网格化应用的需求和开发必要的技术来满足这些需求。 Globus系统的主要部分是Globus元计算工具软件,提供了实现高层服务需使用的底层机制。 Globus最重要的成果是 Globus Toolkits ,它是开放代码,第1版在1999年推出 ,目前可得到的版本是。Release 2.2 另外,基于OGSA机制的下一代Globus Toolkits 3.0即将推出。 Globus技术已在NASA网格(NASA IPG)、欧洲数据网格 (Data Grid)、美国国家技术网格(NTG)等10多个网格工程中得到了广泛应用。 2.2 Legion工程 Legion工程是基于对象的元系统软件[2]。它始于 1993 年,由Virginia大学的课题研究组开发。 Legion工程的目标是在一定的原则下构建高可用的、有效的、可扩展的系统。 Legion工程研究的关键问题是可扩展性、易编程性、容错和安全等。它支持应用代码级的大规模并行计算,以及物理系统复杂性的管理。 Legion工程开发了一个丰富的对象模型来提供元计算服务,它提供了一个编程工具集、一个人机交互的环境,以及一个应用程序请求元计算的执行环境。在一个 Legion应用程序里,分布的构件被看作对象。
2.3 Condor工程 Condor工程于 20 世纪 80 年代中期开始于 Wisconsin Madison ,大学是具体实现元计算含义的最初的平台之一[2]。一个Condor机群由局域网互联的同构的工作站组成。 Condor 主要思想是认为并不是所有时刻、所有工作站都是忙碌的。因此,在空闲机器上的CPU周期可以用来处理其它待执行的任务。 Condor网格包含一台作为中央资源管理器的机器,它负责把任务分配到其它空闲的Condor结点上。所有其它的 Condor结点运行两个守护进程,一个负责与中央资源管理器协商,并把本地任务迁移到其它机群上;另一个负责当该结点空闲时通知中央资源管理器。
2.4 Ninf工程和Netsolve工程 Ninf工程始于1995年,由日本开发,旨在构造一个强大的、灵活的网络使能服务 (NES) 系统。Netsolve是由 Innovative Computing Laboratory开发的基于RPC /的客户机代理/服务器系统[2]。Ninf工程和Netsolve工程都以科学计算应用为目的,它们链接有著名的数学库,如ScaLAPACK. Ninf和Netsolve使用一系列RPC函数调用的作为编程接口,用来取代传统的库函数,通过极少量的代码修改和重新编译,应用程序使用这些系统是可能的。这两个系统非常相似,所以开发了一个“桥”,用来转换两系统间的内部数据格式,就能使用彼此的资源。近来,两个系统能够与其它的元计算环境接合,如和Globus Condor系统。Ninf和Netsolve的不足是被局限在数学应用上。
3 网格体系结构 描述网格体系结构的目的不是提供对所需的协议和服务进行完整罗列,而是阐明各组成部分的需求和关联。一般用“沙漏模型”来描述网格的层次结构,如图1,两头大中间小,最上层是应用服务,最下层是各种网格资源,中间层是网格资源管理核心件。同时,每层的组成和功能可以利用其任意下层的能力和行为来构建。并且如图1所示的结构抽象层次很高,在设计和实现上几乎没作什么限制。 图 1 Globus协议结构及与互联网协议的关系 构造层是物理或逻辑实体,它实现本地的具体资源的构造层是物理或逻辑实体,它实现本地的具体资源的操作。连接层定义网格中网络事务的通信与认证控制的核心协议,构造层提交的各种资源间的数据交换都在这一层的控制下实现,各资源间的认证、安全控制也在这里实现。资源层的作用是对单个资源实施控制,资源和连接层形成了“沙漏模型”的瓶颈。汇集层的作用是将资源层提交的受控资源汇集在一起,供虚拟组织[3]的应用程序共享、调用。应用层是网格上用户的应用程序。应用程序通过各层的API调用相应的服务,再通过服务调用网格上的资源来完成任务。
4 网格异构性及其解决方法 从哲学的角度来说,同构是相对的,异构是绝对的[4]。基于Internet的信息系统无处不存在异构性,主要体现在以下方面:计算机硬件平台的异构性,网格中进行计算的服务器可以是大型机、小型机、工作站或PC. 这些机器在计算机体系结构和指令系统上的都存在异构性。基础操作系统的异构性,网格上计算机的基础操作系统可以是、Unix Windows NT、 Mac等。操作系统之间的文件系统、命名规则、文件类型、操作命令的解析和执行、进程之间的通信机制不可能相同。数据库的异构性,网格中可以有一个或多个数据库系统。最流行的是关系型数据库系统,如、Oracle Sybase、 SQL Server等。也可采用由不同数据模型的数据库,如关系、模式、层次、网络、面向对象型数据库共同组成一个异构数据库系统。此外,还有通信网络、应用程序、信息本身的异构性。
下面是异构性的一些解决办法: (1)制定统一的规范、协议,通过制定统一的规范和接口,使网格中的服务标准化,用户访问网格中的共享资源都遵循统一的协议,调用标准的接口来获得所需要的服务。如在网格系统中,可利用 Web服务描述语言(WSDL)来描述所有的资源,屏蔽资源的异构性。 (2)采用转换机制和代理,在网格系统中,由于硬件、操作系统、体系结构、数据库等众多资源的异构性,用户在请求利用这些异构资源时,必须对分配到这些异构资源上的服务请求进行合理的转换。采用代理的方法是一种行之有效的转换机制。 (3)采用虚拟机(VM)技术(这也是隐藏异构性的一种方法),用户通过虚拟机提供的标准接口访问异构资源,而标准接口的具体实现由各异构资源提供者负责落实,因此用户感觉不到请求的资源的异构性。和Java VM PVM是比较成功的采用虚拟机技术实现跨平台、屏蔽异构性的典型例子。 Java源程序经过编译成为UniCode代码,并利用不同操作系统上的Java VM转化为本地的机器代码执行,从而实现了Java源程序的平台无关性。 (4)逻辑与物理的映射,在网格系统中把物理资源都映射成逻辑资源,网格成为逻辑共享资源的集合。一个或多个物