并行计算、网格计算

2024-09-15

并行计算、网格计算(共11篇)

并行计算、网格计算 篇1

1 网络并行计算的体系结构

网格被人称为继Internet和Web之后的第三次信息技术浪潮, 它对资源实现了柔性的、高性能的访问, 并且能够实时地创建强大的虚拟计算系统。目前, 关于并行计算的研究已较为普遍, 主要集中于应用领域及计算性能等方面。

网络并行计算的典型结构如图1。网络并行计算中的每个节点都作为一个完整的工作站:包括处理器、高速缓冲存贮、内存、硬盘和I/0接口, 可以只有一个节点计算机连接所需的外设, 其余节点可视需要决定是否安装外设。一个节点也可以是共享主存多处理机系统SMP或PC, 甚至可以是MPPs。各节点间利用高速通用网络按某种结构连接起来, 并在并行程序设计以及可视化人机交互集成开发环境下, 统一调度、协调处理, 实现高效并行处理。从节点的通信方式来看, 它属于分布存储系统, 各节点内有本地存储器, 主要利用消息传递方式实现各主机之间的通信, 由建立在一般操作系统之上的并行编程环境利用消息传递方式, 实现各主机之间的通信, 由建立在一般操作之上的并行编程环境完成系统的资源管理及相互协作, 同时也屏蔽工作站及网络的异构性。目前大多数网络并行系统的并行编程环境是建立在Unix或Windows操作系统之上, 尽量利用商用系统的研究成果, 减少系统的开发和维护费用。

2 基于蚁群算法的网格资源管理模型

2.1 蚁群算法

蚁群算法 (ACO, Ant Colony Optimization) , 又称蚂蚁算法, 是意大利学者Marco Dorigo于1991年在他的博士论文中引入, 其灵感来源于自然界中真实蚁群在寻找食物过程中发现路径的行为。蚁群算法作为一个新型优化算法, 在解决一系列具有NP-hard的组合优化问题上有较好的实验结果, 使得组合优化问题成为蚁群算法的一个重要研究方向。同样, 网格环境下的资源分配也是一个NP难问题, 蚁群算法已被证明是解决这类问题的有效算法。

2.2 基于蚁群算法的网格资源管理模型

网格资源管理的基本任务就是把网格中分散的各种资源管理起来, 使多个资源请求者可以共享使用网格中的同一个资源, 资源请求者可以根据业务需要同时或先后使用网格中的多个资源, 而不需要资源请求者付出额外的劳动。

对现实网格资源的有效管理, 使资源能够及时响应用户的需求, 不仅要有效的管理资源的目录, 而且还要针对用户需求申请的特点分配合理的资源给用户。针对这些问题, 必须提高网格资源分配的效率。在此基础上, 我们利用蚁群算法在求解此类问题上的优越性, 提出了针对蚁群算法的网格资源分配模型, 如图2。

网格资源代理:负责接收并在本地执行已分配的任务, 并在执行完该任务后对网格计算资源本身的信息素进行全局更新, 这是大多数启发式算法包括蚂蚁算法无法实现的功能。网格计算资源实时地向网格资源目录注册自己的最新信息。

网格资源目录:负责周期性地检查和接收各个网格计算资源的注册请求, 周期性地检查和接收网格计算资源信息, 进行资源发现和实时更新。网格计算资源目录接收到用户代理的网格资源申请信息后, 立刻向用户代理提交在线资源列表。

用户:提交应用需求给用户代理, 最后接收用户代理返回的作业执行情况信息。

用户代理:每个用户代理负责接收并整理一个用户的应用请求, 向资源目录申请并获得在线网格资源信息后, 按照信息素局部更新策略选出一个最优解, 并根据该分配方案发送任务到相应的网格资源。它的功能有两个:一是发现资源并根据用户的作业队列提交信息和在线网格资源信息预测一个给定任务在相应网格计算资源上的执行时间, 二是根据预测结果进行资源选择和调度。

通过对该网格系统模型各主要模块功能的介绍可以看出, 本文引用的蚁群算法较蚂蚁算法的改进之处在于网格资源己不再是被动的参与者, 网格资源在执行完作业后对网格资源本身的信息素进行全局更新。这是蚂蚁算法做不到的。同时, 用户代理利用信息素局部更新策略选择最优解。由此保证了网格资源代理和用户代理的信息是动态变化的。二者都是动态的实体。

3 基于蚁群算法的网格资源管理的算法实现

一般而言, 用于解决旅行商问题和生产调度问题等组合优化问题的蚁群算法的统一算法框架如下, procedure组合优化问题的蚁群算法:

设置参数, 初始化信息素踪迹;

以某些己获得的解为起点进行邻域 (局部) 搜索;

根据某些已获得的解的质量进行全局更新信息素;

根据网格环境的特点, 结合提出的网格系统模型, 引入的蚁群算法。算法的主要思想是蚁群算法来搜索当使用串行调度生成策略方法是能生成好的资源分配表, 算法的基本过程和求解最短路径问题的蚁群算法的过程基本相似, 但存在以下3个问题: (1) 网格资源信息素初始化; (2) 网格资源选择; (3) 信息素更新。

3.1 网格资源信息初始化

当一个新资源j加入网格时, 需要收集以下基本信息, 资源分配器根据这些资源信息初始化资源的信息素:

其中, m为资源j的CPU数目;P为各CPU的MIPS;c为参数包的大小;sj为参数传输时间, 即资源的初始信息素反映其固有的计算能力和通信能力。

3.2 算法的网格资源选择

基本蚁群算法利用蚂蚁i对资源J的分配进行选择。对每组作业进行资源分配时, 创建一只新的蚂蚁, 该蚂蚁赋予要求的计算能力和通讯量, 以完成作业做小的代价作为蚂蚁选择的优化目标。初始时将蚂蚁分散于各个资源点上, 每只蚂蚁根据当前系统资源的信息素, 决定自己解域的下一作业需要分配的网格资源的概率:

其中, 是t时刻资源j的信息素浓度;ηj表示资源的固有属性, 即ηj=τj (0) ;α表示信息素的重要性;β表示资源固有属性的重要性。

考虑到网格环境中资源分散性和资源变化的快速性, 资源的固有属性和资源的实时性同样重要, 所以α和β值都取0.5。

4 结束语

本文结合网格资源管理和分配的特点, 提出了结合蚁群优化算法的网格任务并行计算算法, 满足了网格对分配系统全局最优调度的需求, 并且可以有效地克服基本算法中计算时间较长的缺陷, 有利于实际运用。

摘要:针对并行计算网格中资源管理和分配的特点, 主要利用蚁群算法在求解组合问题中的优越性来解决网格中资源分配问题。通过对蚁群算法原理的分析和深入探讨, 设计了基于蚁群算法的网格资源分配模型和算法。

关键词:并行计算,网格,资源分配,蚁群算法

参考文献

[1]M.DORIGO, E.BONABEA, Cz THERAULAX.Ant algorithms and stig-mergy.Future Generation Computer Systems, 2000, 16:851-871.

[2]RAJKUMAR BUYYA.高性能集群计算:编程与应用 (第二卷) (High Performance Cluster Computing:Programming and Applica-tions, Volume2) [M].郑伟民, 王东升, 石威, 等, 译.北京:电子工业出版社, 2001.

[3]JOHNSON, A.E, LEIGH, J, AND DEFANTI T."Multi-Disciplinary Experiences with CAVERN soft Tele-Immersive Applications, "Proc Of Fourth International Conference on Virtual System and Multimedi-a, November1998:498-503.

[4]李晓梅, 莫则尧, 胡庆丰, 等.可扩展并行算法的设计与分析[M].北京:国防工业出版社, 2000.

[5]KYOUNG S.PARK, YONG J.CHO, NAVEEN K.Kr ISHNAPRASAD, CHR IS SCHARVER, MICHAEL J.LEWIS, JASON LEIGH, AN-DREW E.JOHNSON, CAVERNsoft G2:A Toolkit for HighPerfor-mance Tele-Immersive Collaboration[C].Proc.of the Symposium on V irtual RealitySoftware and Technology2000, Oct22-25, 2000, Seoul, Korea.

并行计算、网格计算 篇2

其次,云计算将在三大方面产生4响:对互联网应用的影响、对产品应用模式的影响、对lT产品开发方向的影响。当然,所谓的改变并不是彻底的颠覆,而是增加了新的特点。这一优势,是对网格技术提出的挑战。网格计算产生时同样具有以下优势:通过任何一台计算机都可以提供无限的计算能力,可以接人浩如烟海的信息。这种环境将能够使各企业解决以前难以处理的问题,最有效地使用他们的系统,满足客户要求并降低他们计算机资源的拥有和管理总成本。但对于云计算来说,是对这些优势的更大扩展。今后通过云计算,更多地应用能够以互联网服务的方式进行。云计算将扩大软硬件应用的外延并改变软硬件产品的应用模式。通过云计算,用户可以不必购买新的服务器和部署软件,就能得到应用环境或者应用本身,

对于用户来说,软硬件不必是部署在自己身边的、专属于自己的产品,而是可以变身为可利用的、虚拟的一种资源。而且,可以利用的软硬件资源也不仅限子自己企业内部的设备和软件,而是可以通过网络得到扩展的软硬件资源。IT产品的开发方向也将发生变化,以适应上述两种情况。

目前,全球IT行业正在进行着一场浩浩荡荡的“云”端之旅。《商业周刊》最近发表评论文毒指出,云计算技术的出现使得人们可以直接通过网络应用获取软件和计算能力,这模式将会给传统的IT业带来一场巨大的变革,云计算正在成为IT业的一种发展趋势。尽管云计算的定义和范围目前尚无定论,存在多方说法和理解。但是毫无疑问的是。它的影响将逐渐地渗透到人们的工作和生活之中。随着互联网连接速度的提高和互联网软件的改进,云计算能够完成的任务会越来越多。

可能大家首先会问的是什么是云计算。应该说,云计算(Cloud Computing)是分布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现。

云计算的基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将更与互联网相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。

目前,PC依然是我们日常工作生活中的核心工具:我们用PC处理文档、存储资料,通过电子邮件或U盘与他人分享信息。如果PC硬盘坏了,我们会因为资料丢失而束手无策。而在“云计算”时代,“云”会替我们做存储和计算的工作。“云”就是计算机群,每一群包括了几十万台、甚至上百万台计算机。“云”的好处还在于,其中的计算机可以随时更新,保证“云”长生不老。

网格计算技术

网格计算的发展及应用前景 篇3

关键词:网格计算;数据库;虚拟化;浮点运算

中图分类号:TP393 文献标识码:A 文章编号:1674-7712(2012)20-0034-01

当今社会,很多的科学工程对计算的需求越来越高,计算的规模也越来越大,这就要求我们的计算机有更高的运算速度和更大的存储容量。从计算机诞生到现在,我们不难看出,想要更快的提高计算机的处理功能,不仅要对系统硬件的速度加快,也必须不断改进系统的结构,尤其是当系统硬件的速度已经不能再升级的时候,后者将是我们考虑的重点。于是,在相对复杂的科学计算当中,超级并行机成为了主宰。但是在超级计算机为主体的计算模式有着明显的缺陷,虽然超级计算机有着非常强大的处理能力,但制造超级计算机的成本也是非常昂贵的,通常只有像航天、气象、国防等一些国家级的部门才有资本去配备这样的设备。而在人们的日常工作中,急需一种既有强大的处理能力,同时其成本也相对的低廉一些的计算模式,通过科学家们不断的努力,最终找寻到了一种适合用于商业的计算模式——网格计算(Grid Computing)。

一个集成的计算与资源环境我们成为网格,或者叫做计算资源池。网格经常被用于研究和工程应用相关的项目,它的学科领域涉及了很多方面的技术,如超级计算技术、数据库技术、网络技术、并行算法以及各种计算科学研究与应用技术,是一个具有综合性的能够跨多个学科的高技术研究课题。伴随着互联网技术而飞速发展起来的网格计算,是充分的利用地理上分布的计算资源,将大规模的难以解决的复杂问题进行处理分析,进而得到解决,尤其是那些光靠本地资源不能得以解决的复杂问题,它是一种新型的计算模式,其专门针对那些复杂的科学计算。网格计算是通过互联网把不同地理位置的计算机组织起来,成为一个“虚拟的超级计算机”,将每台独立的计算机看作是一个“节点”,构成的整个计算是有无数个“节点”组成的网状形态,称之为一张“网格”,管这种计算方式叫网格计算。

通过这种方式组织的“虚拟的超级计算机”在应用上有很明显的优势,一个是强大的数据处理能力;另一个是能够将网上的闲置资源充分的利用。换言之,网格是通过把网络上不同的计算机进行整合,组织成一台超级计算机,将网络上的各种资源,如数据、信息、知识等进行全面的共享。

近年来,随着互联网的普及,网络计算成本的极速减少以及传统的计算方式的改变,在超级计算中应用网格计算已经是大势所趋。网格计算对我们来说,还是一个新兴的领域,但其重要性不可忽视。网格计算的主要特征是大范围的资源共享,超级强大的计算能力,它的应用必将推动当代经济的飞速发展。

自上个世纪九十年代以来,来自世界的各个国家针对这种计算模式都纷纷成立了超级计算中心和相应的工程研究中心,尤其是发达国家。其中美国还制定了关于先进计算技术的新一轮规划。在我国科技部的带领和支持下,经过专家组和相关单位的共同努力下,我国的高性能计算环境已经得到了飞快的发展,相应的基础设施也已经逐渐成形。在科技部的带领下,我国已建成了五个国家级的高性能计算中心,并且加强建设了网络节点,以科学院为主体形成了计算网格。网格计算已经得到了国家的高度重视,并且其发展的速度是非常迅猛的。网格计算的最终目标就是希望用户在使用网格计算模式时能够更加方便快捷。

在科学计算领域,网格计算可以在很多方面都得到广泛应用,如以下几个方面:

1.提高计算的吞吐率。网格计算能够利用CPU的周期窃取技术,集中计算机的大量空闲的计算资源,为一些对时间不太要求的问题进行工作,将其作为计算资源的重要来源,这样就十分有效地提高了计算的吞吐率。

2.数据密集,数据量巨大的问题的计算。在解决这方面的问题的过程中,往往会产生很大的计算需求,网格计算可以轻松的解决这一问题。网格计算在计算力学、计算材料、核物理反应、电子学、航空航天等多方面领域都有着广泛的应用和需求。

3.实现跨地区的人与人的工作的交流。网格计算打破了地理界线上对人们的限制,更加方便了从事科技方面工作的工作人员之间的交流,也可以说它共享了工作人员各自的智慧。

4.更广泛的资源贸易。随着大型机和微机在人们的工作和生活中的大量普及,计算机的资源出现了更多的闲置,而且问题越来越明显。通过利用网格技术,可以讲这些闲置的资源分配给有大量计算需求的用户,同时提供这些闲置资源的计算机也不会受到太大的干扰。这样,我们就不必购买大型计算机来满足我们大量的计算需求,我们可以通过向网格购买计算能力来实现自己的任务。五层沙漏结构是早期的网格体系结构。在这个结构当中,以“协议”为中心是他的最重要的思想,它是通过协议来实现一种机制,在虚拟组织的用户与资源之间建立一种资源共享的关系,它对网格的一致性、扩展性以及代码的共享都有很大的好处。

相对其他来说,网格服务为中心的模型具有很多的优势,如下几点所示:

网格服务都是虚拟的组建,它有一组相对统一的接口可供用户使用,而一切的网格服务都是依靠这些接口来实现的,这样就能轻松地提供高层次、高级别的服务。

将不同的逻辑资源实例映射到同一个物理资源上可以通过虚拟化方式将其实现,在对很多服务组合的过程当中,我们不需要考虑具体的实现,可以依据基础的底层资源,通过虚拟的组织来对资源进行管理。这种虚拟化的网格服务,能够将所有的服务语义和行为全部都反映到当地平台的基础设施之上。

一项名为“Grid Computing”的创意计划正在IBM公司中被构建,其主要目标是通过网络,向个体使用的电脑提供一种具有超级的处理能力的模式。“Grid Computing”是一种手段,它是通过网络把网络当中的地区不同的个人电脑整合在一起,这样就可以让每个网络中的个体用户可以更多的利用其他个体电脑的闲置资源,以加快其电脑的工作速率,同时也可以让所有的网络用户共享其他电脑的资源。

计算机行业的另一个巨人SUN公司也在网络计算这个方向上推出了新的措施。2001年的11月份,SUN公司通过推出Sun Grid Engine企业版软件,来提高公司的网络计算能力。自该软件发行至今,已经有更多的用户来使用它。

目前,很多的软件公司也在不断的提升他们的网格计算能力,并且网格计算也给这些企业带来了新的商机。据相关专业人士推测,日后网格计算将给企业带来巨大的效益,如果网格计算的成长速度不变的话,在未来的10年之内,它将会是一个年产值达到20万亿美元的大产业。

参考文献:

[1]王普勇.网格计算的发展[N].文汇报,2003.

多核计算机上的并行计算 篇4

1 并行计算加速比分析

目前的主流CPU都是多核CPU,实现了真正意义上的并行。在多核计算机上,比较简单有效的多核编程方法是使用OpenMP+Fortran或OpenMP+C设计并行程序。一个算法使用多核的效果可用加速比

来衡量,其中:t1代表最佳串行计算时间,tp代表使用p个核并行计算的时间。文献[2]根据式(1)和Amdahl定律讨论了拥有多核CPU计算机的并行计算加速比,假设算法中串行部分的比例为s,处理器的核数为p,在不考虑系统开销的情况下,多核处理器上并行算法的理论加速比为

Sp和S'p的差距反映系统的性能和算法的优劣。下面通过算例,讨论多核环境下串行程序和并行程序的执行情况,通过加速比分析多核计算机的并行计算效果。所有算法都使用VC++语言代码描述。

2 多核计算的算例

试验使用两台多核计算机(不考虑超线程技术),一台双核心主频2.3GHz,内存1G,另一台四核心主频2.6GHz,内存2G。对两个例子而言,理论加速比都是S'p=p。通过实际加速比和理论加速比大小的比较可以看出多核CPU并行计算的实际效果。算法1和算法2分别描述求和运算的串行算法和OpenMP通信机制的求和算法,算法3和算法4描述的是矩阵乘积的串行算法和OpenMP通信机制的矩阵乘法。

2.1 归约求和算例

算法1(串行的归约求和算法)(其中的Nproc表示CPU的核心数量)

算法2(使用OpenMP的归约求和算法)

在n=109时并行计算的结果如表1所示,其中t,Sp,η分别代表OpenMP环境下的并行计算时间、加速比和并行效率,Sp的含义见式(1),而η=Sp/p,p代表本次计算中使用的核心的数量。

算法1在4核计算机上的运行时间是0.403 s,从任务管理器中看出,算法1只利用了25%的CPU资源,即只使用了4核中的一个。求和算法在OpenMP+VC++环境下的加速比几乎是完美的,并且单核运行时间也比其他环境下单核运行时间少,原因是VC编译器本身的特性决定的。

2.2 矩阵乘积算例(计算n阶的矩阵A和B的乘积)

算法3(矩阵乘积的串行算法)(其中的Nproc表示CPU的核心数量)

在n=500时分别使用算法3和算法4计算A×B,并行计算的结果如表3和表4所示,在4核计算机上矩阵乘积串行程序的运行时间是0.458 s,而且从任务管理器中可以看出,串行程序同样只使用了4核中的一个,算法4的效果最好,如表2所示。

2.3 OpenMP环境下矩阵的Cholesky分解

在4核计算机上用OpenMP+VC++对正定矩阵A进行Cholesky分解。分布式计算效果往往不佳,而简单地使用OpenMP的编程思想,在串行程序中简单加上并行语句就可使效果得到很大提升。n=3 000时串行Cholesky分解的计算时间是45.16s,使用双核计算的时间是29.92s,4核计算的时间是24.07 s。该算例说明对一些串行问题,只要稍加修改就可获得满意的多核并行效果。

3 结语

通过以上算例在各种环境下的运行结果可以看出,拥有多核CPU的计算机实际上是并行计算机,串行程序只使用了多核CPU的一个核,由于多核CPU拥有共享主存,因此对于细粒度的并行算法使用OpenMP的编程模式更合适,对粗粒度的并行算法使用MPI的编程模式比较合适。

参考文献

[1]SUTTER H,LARUS J.Software and the concurrency revolu-tion[J].Computer and Information Science,2005,3(7):54-62.

并行计算、网格计算 篇5

并行计算用于叶轮机械流场特性分析

本文采用LU-SGS-GE隐式格式和改良型高精度、高分辨率的MUSCL TVD格式求解平均的Navier-Stokes方程和低Reynolds数q-ω双方程湍流模型.利用分区处理及分布式网络并行计算技术,在多台个人计算机上完成了叶轮机械内部三维粘性流场的快速并行求解.仅将计算域拆分成8份,并行加速比就可达7.4.

作 者:林智荣 袁新 作者单位:清华大学热能工程系,北京,100084刊 名:工程热物理学报 ISTIC EI PKU英文刊名:JOURNAL OF ENGINEERING THERMOPHYSICS年,卷(期):23(6)分类号:O35关键词:叶轮机械 Navier-Stokes方程 数值模拟 分区处理 并行计算

现代计算机网格技术应用问题探析 篇6

关键词:计算机;网格

中图分类号:TP393 文献标识码:A文章编号:1007-9599 (2011) 07-0000-01

Applications Problem of Modern Computer Grid Technology

Gao Shen

(Wuhan University of Technology,Wuhan430070,China)

Abstract:Grid is shared by a variety of heterogeneous computer resources or access to high-performance computing power,mainly used in large-scale resource sharing and large data processing.This paper introduces the concept of grid,features,functions,architecture and application problems.

Keywords:Computer;Grid

一、网格的概念

网格可以看作一个计算资源池,是一个集成的计算与资源环境。目前对网格还没有统一的定义,但普遍认为:网格属于综合性的跨学科高技术研究课题,建立在网络技术、中间件技术、数据库技术、各种计算科学研究与应用及高性能计算等多项学科的基础之上,主要用于研究与工程应用相结合的项目,是一种先进的计算基础设施。随着互联网技术的不断进步,网格计算也迅速发展,它充分利用地理意义上分布的计算资源,把这些属于不同地域的计算资源(包括珍贵仪器和数据库等各种资源)协同起来解决复杂的大规模问题。网格计算属于新型的计算模式,专门针对复杂的科学计算。之所以称为网格计算是因为它把不同地理位置的不同计算机虚拟成一台“超级计算机”,其中的每台计算机是一个节点,大量的节点组成一张网格。网格把计算机科学领域的最新技术成就集成于一身,是信息化发展和信息技术发展方向的代表,体现并满足了现阶段科学研究的需要。

二、网格技术的特点

只有对网格的技术特点有深刻全面的了解才能充分、自如的应用网格技术解决实际问题。网格技术的特点归纳如下:

(一)分布性。网格技术的一个重要特点就分布性。由于网格技术集成了不同地域的各种资源,这些资源具有跨地理范围广、资源种类繁多、资源数量巨大等特点,所以在这种分布式的计算环境下,一定要妥善处理好任务分配和资源的调度问题、传输与通信的安全性问题、人与人以及人与计算机的交互问题、实时性保障问题等。

(二)共享性。其实网格技术的根本特点不是其规模而是可以资源共享。虽然网格分布范围及其广泛,但是它们却可以充分共享。网格硬件主要表现为分布性,但是通过软件技术的支持却可以实现资源共享,即使在不同的地点,不同的时间都可以享用相同的资源。

(三)自相似性。格网技术具有自相似性特点,这种特点在网格的研究及建造过程中有非常重要的意义。网格的整体特征和局部特征具有一定的相似性,在很多情况下局部作用往往会体现整体的某些特征,反之,整体特征在一些情况下也体现局部特征,所以说网格技术具有自相似性。

(四)异构性。由于网格技术共享的资源规模及种类十分庞大,所以网格应该能包含多种异构资源,并且要能处理不同种类、不同结构的资源之间的正常操作和交流问题。

三、网格的主要功能

网格的主要功能包括以下几方面的内容:

(一)超级计算功能。由于网格技术把很多单个计算机虚拟为一个“超级计算机”,所以它可以充分利用各台计算机的闲置处理能力解决问题,从而使网格具有强大的数据处理能力。

(二)智能信息处理能力。通过网格技术,用户通过单一入口就可以访问到网格中的所有信息资源。对于信息孤岛问题,可以利用共享的全体信息资源,为用户提供一体化的智能信息服务。

四、网格构架

网格构架包括系统基本组件及其作用和功能,还包括这些组件之间的交互。以Golubs为例,如图1:

Golubs协议主要包括:构造层、连接层、资源层、汇聚层和应用层。每层都有自己的SDK、API和服务,上层协议调用下层协议的服务。

构造层:构造层的功能是将网格中可以共享的资源向上层提供,构造层的作用越多,共享操作月复杂。

连接层:网格中的授权控制和网络事务处理通信的核心协议就是连接层。由构造层上传的各种数据都是在连接层的控制下实现的。另外,各种资源的安全控制及授权验证也在这一层实现。

资源层:资源层控制单个资源,安全接触可用资源,初始化资源并检测其运行状况,统计相关资源的使用数据。

汇聚层:汇聚层就是把资源层提交的资源汇集起来以供应用程序的调用与共享。

应用层:网格上用户的应用程序就是应用层。

五、网格的应用

网格技术正在迅猛发展,主要可以应用于以下几个方面:

(一)网格技术在教育领域的应用。网格技术可以为教育资源提供共享的新平台。虽然传统的网络教学系统是建立在网络远程教学系统的基础上,但是它的形式太多且格式不统一,不利于统一协调和管理。网格教学系统可以为用户提供统一的服务接口,达到更高级别的共享。

(二)网格技术在生物科技领域的应用。由于生物科技对数据及资源的管理和保存有更高的要求,而网格技术正好可以满足这种要求。在生物科技领域,对数据库的整合是一个关键点,利用网格技术可以短时间内把需要的各种数据从不同的数据库中调出来进行整合。

参考文献:

[1]罗秉安,张立臣.网格技术及其应用[J].微机发展,2002,12(6):3-6

[2]余科军.网络技术综述[J].电脑与电信,2010,11:75-79

云计算与网格计算 篇7

网络改变了世界,这是不争的事实。跨入21世纪的大门, 信息化的潮流给整个社会带来了巨大的冲击,基于Internet与Intranet的互联网技术的兴起正以惊人的速度改变着人们的生存方式和学习方式。网格计算和云计算因此应运而生。网格计算和云计算都是目前研究的热点领域,是高科技的产物,有着广阔的发展前景。

1、网格计算

1.1 网格计算的定义

网格计算[1]是伴随着互联网而迅速发展起来的专门针对复杂科学计算的新型计算模式。这种计算模式利用互联网把分散在不同地理位置的计算机组织成一个虚拟的超级计算机。其中每一台参与计算的计算机就是一个节点,而整个计算是由成千上万个节点组成的一张网格,所以这种计算方式叫网格计算。这样组织起来的虚拟超级计算机有三个优势:一是数据处理能力超强;二是能充分利用网上的闲置处理能力;三是价格相对于超级计算机低廉。

1.2 网格计算的研究和应用

互联网技术不断发展, 网格作为Internet的第三次浪潮,在世界上引起了前所未有的关注和重视。许多国家以及一些有名的IT公司纷纷投入大量资金开展网格技术的研究,支持并大力从事商业应用开发,力求在未来的网格时代居有一席之地。美国能源部DOE支持的科学网格 (Science Grid) 用622 Mbps的ES-Net网格连接了能源部的两台超级计算机;美国国家科学基金NSF支持的TeraGrid将连接位于5个不同地方的超级计算机,达到每秒2万亿次的计算能力。英国政府宣布投资1亿英镑,用以研发"英国国家网格" (UK National Grid) 。IBM制定了"百亿美元网格计划",打造全球计算平台, 重点发展4项技术:资源共享、自治管理、互连互通、应用服务,其目的是要在下一波大潮中保持IBM在硬件、软件、应用和服务上的综合优势。微软针对网格提出无处不在的计算,无处不在的微软。

我国也不例外,目前在网格领域的研究和应用也已取得很大成果。在863计划支持下,由中国科学院计算所和国防科技大学等单位合作,建立了"国家高性能计算环境 (National High Performance Computing Environment, NHPCE) "计算网格。该项目一期工程已于2000年底完成。2003年由12所大学联合推出的中国教育科研网格 (China Grid) 一期工程也已正式启动。该项目的目标是在2005年建立聚合能力超过15万亿次量级的教育科研网格。国防科技大学目前承担了"国家核心网格软件"、"空间信息栅格"等多个网格项目的研究。中国科学院计算所提出并正在研制织女星 (VEGA) 网格,已经取得了一定成果。"中国教育科研网格ChinaGrid"是教育部在"十五"211工程公共服务体系建设中设立的重大专项,主要解决中国教育科研网(CERNET)中网络计算面临的无序性、自治性和异构性等问题,满足高校科学研究的迫切需要。

2、云计算

2.1 云计算的定义

云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是IT和软件、互联网相关的,也可以是任意其他的服务。

"云"是一些可以自我维护和管理的虚拟计算资源,通常为一些大型服务器集群,包括计算服务器、存储服务器、宽带资源等等。云计算将所有的计算资源集中起来,并由软件实现自动管理,无需人为参与。这使得应用提供者无需为繁琐的细节而烦恼,能够更加专注于自己的业务,有利于创新和降低成本。计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的[2]。

2.2 云计算的研究和应用

云计算的发展将使互联网的计算架构由"服务器+客户端"向"云服务平台+客户端"演变。使互联网成为每一个用户的数据中心和计算中心,使用户从以桌面为核心使用各项应用转移到以Web为核心进行各种活动,云计算使互联网的功能更为强大。通过云计算,普通用户将可以利用以往只能为少数人所拥有的庞大的数据和处理能力,获得自己所需的信息。如果云计算让我们拥有前所未有的数据和计算能力,那我们能创造什么呢?

目前Google、亚马逊、雅虎、微软、Oracle、IBM、Dell、SUN VMware等国际上知名的IT公司都在积极地研究和部署云计算,并已经开始提供与云计算数据中心管理相关的产品技术。Google在于2007年10月在全球宣布了云计划,Google与IBM开展雄心勃勃的合作,要把全球多所大学纳入"云计算"中。IBM于2007年8月高调推出"蓝云(Blue Cloud)"计划,这一计划已经在上海推出,2008年8月,IBM宣布,将斥资3.6亿美元在美国北卡罗来纳州建立云计算数据中心。微软公司正在秘密开发完全脱离桌面的互联网操作系统"Midori",取代已经有20多年历史的Windows操作系统,目的是为了大规模应用云计算技术。亚马逊于2007年向开发者开放了名为"弹性计算机云"的服务,让小软件公司可以按需购买亚马逊数据中心的处理能力[2]。

2008年3月17日,Google全球CEO埃里克o斯密特(Eric Schmidt)在北京访问期间,宣布在中国大陆推出"云计算(Cloud Computing)"计划。在中国的"云计算"计划中,清华大学将是第一家参与合作的高校。它将与Google合作开设"大规模数据处理"课程,未来Google将把课程向其他学校推广。2008年初,IBM与无锡市政府合作建立了无锡软件园云计算中心,开始了云计算在中国的商业应用。2008年7月份瑞星推出了"云安全"计划。这说明,越来越多的IT供应商将中国作为云计算业务发展的热点区域,云计算业务在中国市场具有巨大的发展潜力。

3、云计算与网格计算比较

3.1 云计算与网格计算联系

云计算是从网格计算演化来的,能够随需应变地提供资源。网格是云计算的重要发展阶段, 网格在HPC领域已经取得了较大的成功, 而且已经有很多网格技术用到了云计算中去, 二者并不冲突, 网格和云计算将改变工业的模式。"十年前是分布式集群, 今天是企业网格和内部云, 但未来年将是公用网格和云计算的时代。"

网格计算可以在云中,也可能不在,这取决于什么样的用户在使用它。如果用户是系统管理员和集成商,他们就会关心如何维护云。他们升级、安装和虚拟化服务器与应用程序。如果用户是消费者,就不必关心系统是如何运行的。总的来说,云计算可以算作是网格计算的一个商业演化版。

没有网格计算打下的基础,云计算也不会这么快到来。云计算是网格计算的一种简化实用版,不像网格2.0,而像网格02。网格0.1是指以前实现的以科学研究为主的网格,非常重视标准规范,也非常复杂,但缺乏成功的商业模式。云计算是网格计算的一种简化形态,云计算的成功也是网格的成功。网格不仅要集成异构资源,还要在解决许多非技术的协调问题,也不像云计算有成功的商业模式推动,所以实现起来要比云计算难度大很多。但对于许多高端科学或军事应用而言,云计算是无法满足需求的,必须依靠网格来解决[3]。从两者之间相同的层面来说,从概念上看,云计算实质也就是一种分布式计算。

3.2 云计算与网格计算区别

网格计算强调资源共享,任何人都可以作为请求者使用其它节点的资源,任何人都需要贡献一定资源给其他节点。网格计算强调将工作量转移到远程的可用计算资源上。云计算强调专有,任何人都可以获取自己的专有资源,并且这些资源是由少数团体提供的,用户不需要贡献自己的资源。在云计算中,计算资源被转换形式去适应工作负载,它支持网格类型应用,也支持非网格环境,比如运行传统或Web2.0应用的三层网络架构。网格计算侧重并行的计算集中性需求,并且难以自动扩展。云计算侧重事务性应用,大量的单独的请求,可以实现自动或半自动的扩展。

网格的构建大多为完成某一个特定的任务需要,或者支持挑战性的应用。这也是会有生物网格、地理网格、国家教育网格等各种不同的网格项目出现的原因。而云计算一般来说都是为了通用应用而设计的。云计算一开始就支持广泛企业计算、Web应用,普适性更强。网格计算的主要思路是聚合分布的松散耦合资源。而云计算的IT资源相对集中,以Internet的形式提供底层资源的获得和使用[4]。

在对待异构性方面,二者理念上有所不同。网格计算用中间件屏蔽异构系统,力图使用户面向同样的环境,把困难留在中间件,让中间件完成任务。而云计算,不同的服务用不同的方法对待异构型,所有传统的方法在这里都可以应用。有的提供基础设施,类似传统的服务器,用户选择操作系统和应用环境,有的则屏蔽了操作系统、基础设施和系统软件的差异,比如Paas服务。网格计算和云计算的具体比较如表1所示:

结论

网格计算和云计算都是目前流行的热点领域,两者有许多共同点和不同点,网格计算与云计算最后会逐步走向融合。现今云计算正处于一个起步阶段,大大小小的公司提供着各式各样的云计算服务,从软件应用到网格存储再到邮件过滤。相信不久的将来,云计算技术会很快成为我们信息生活的主流技术,云计算的蓝图已经呼之欲出,同时我们也希望云计算能很快应用到生活中的各个领域。

摘要:网格计算与云计算是为了解决单一计算机的计算极限问题而产生的分布式计算技术, 本文首先介绍了云计算和网格计算, 然后比较了云计算和网格计算之间的异同。

关键词:云计算,网格计算,分布式计算,并行计算

参考文献

[1]lan Foster, Carl Kcssclman.网格计算[M].北京:机械工业出版社2005.

[2]刘鹏.中国云计算网.http://www.chinacloud.cn/[R], 2009

[3]陈康, 郑纬民.云计算:系统实例与研究现状[J].软件学报, 2009 (5) .

浅谈计算机集群技术及并行计算 篇8

一﹑计算机集群的概念

集群 (Cluster) 技术是指一组相互独立的计算机, 利用高速通信网络组成一个计算机系统, 每个群集节点 (即集群中的每台计算机) 都是运行其自己进程的一个独立服务器。这些进程可以彼此通信, 对网络客户机来说就像是形成了一个单一系统, 协同起来向用户提供应用程序、系统资源和数据, 并以单一系统的模式加以管理。一个客户端 (Client) 与集群相互作用时, 集群像是一个独立的服务器。而集群其中的每一台提供服务的计算机, 我们称之为节点。当一个节点不可用或者不能处理客户的请求时, 该请求将会转到另外的可用节点来处理, 而对于客户端来说, 它根本不必关心这些要使用的资源的具体位置, 集群系统会自动完成。

集群中节点以何种方式来运行, 这要看节点是如何设置的。在一个理想的两个节点的集群中, 两个服务器都同时处于活动状态, 也就是在两个节点上同时运行应用程序。当一个节点出现故障时, 运行在出故障的节点上的应用程序就会转移到另外的没有出现故障的服务器上。这样一来, 由于两个节点的工作现在由一个服务器来承担, 自然会影响服务器的性能。

二﹑计算机集群的特点

1.提供强大处理能力的高性能计算机系统:计算机集群可以通过负载均衡、并行处理、时间片处理等多种形式, 将多台计算机形成高性能计算机集群。对用户端 (Client) 而言, 计算机集群则是一个单一的系统, 可以为用户提供高性能的计算机系统, 而用户不用关心有多少计算机承担了系统实现的任务, 而只需要关注系统的整体处理能力。因此, 计算机集群可以用多台普通性能的计算机组成具有高性能的计算机系统, 承担只有超级计算机才能胜任的工作。

2.提供高可用性的计算机系统:通过计算机集群技术组成的系统, 可以确保数据和应用程序对最终用户的高可用性, 而不管故障属于什么类型。即当计算机集群中的节点计算机出现软硬件故障的时候, 高可用性集群提供了对软件和硬件失败后的接替。它将服务器镜像到备用系统或节点中, 当主节点上的系统崩溃时, 冗余节点就从替补角色转换到正式角色, 并自动投入应用, 从而保证了系统运行的不间断。

3.系统具有很强的可伸缩性:在系统的处理能力需要增加的时候, 除了通过增加集群中每个计算机节点的单机处理能力 (如通过增加CPU数量、增加内存大小等手段) 外, 还可以通过增加集群节点数, 即通过向集群添加新的计算机节点, 使服务随着处理器的添加而伸缩, 从而增大应用程序吞吐量, 以达到增加系统的整体处理能力的目的, 完成系统的扩容。

三﹑并行算法的基本概念

算法就是求解问题的方法和步骤。并行算法, 就是在并行机上用很多个处理器联合求解问题的方法和步骤。实际上, 在自然界中并行是客观存在的普遍现象, 关键问题在于能不能很好地利用。由于人们的思维能力以及思考问题的方法对并行不太习惯, 且并行算法理论不成熟, 所以总是出现了需求再来研究算法, 不具有导向性, 同时实现并行算法的并行程序性能较差, 往往满足不了人们的需求。

四﹑并行算法的研究内容

并行计算模型的第一代是共享存储模型, 如SIMD-SM和MIMD-SM的一些计算模型, 模型参数主要是CPU的单位计算时间, 这样科学家可以忽略一些细节, 集中精力设计算法。第二代是分布存储模型。在这个阶段, 人们逐渐意识到对并行计算机性能带来影响的不仅仅是CPU, 还有通信。因此如何把不同的通信性能抽象成模型参数, 是这个阶段的研究重点。第三代是分布共享存储模型, 也是我们目前研究所处的阶段。随着网络技术的发展, 通信延迟固然还有影响, 但对并行带来的影响不再像当年那样重要, 注重计算系统的多层次存储特性的影响。

设计技术并行算法研究的第二部分是并行算法的设计技术。虽然并行算法研究还不是太成熟, 但并行算法的设计依然是有章可循的, 例如划分法、分治法、平衡树法、倍增法/指针跳跃法、流水线法等都是常用的设计并行算法的方法。另外人们还可以根据问题的特性来选择适合的设计方法。

五﹑小结

并行计算、网格计算 篇9

微粒群算法 (PSO) 是由Kennedy和Eberhart等[1]于1995年开发的一种演化计算技术, 来源于对一个简化社会模型的研究[2]。微粒群算法是一种基于群体智能的随机优化算法, 通过微粒追随自己找到的最好解和群体找到的最好解来完成。自微粒群算法提出以来, 由于它的计算快速性和算法本身的易实现性, 引起了国际上相关领域众多学者的关注和研究[3]。

在微粒群算法中, 应用问题的规模直接决定了PSO的执行效率。然而并行计算是实现高性能、高可用计算机的主要途径。因此, 并行PSO的研究对于大规模或超大规模的多变量求解具有很重要的意义。近年来, 已有学者对并行微粒群算法从不同角度进行研究。文献[4]提出的并行仿真, 使每个粒子的行为成为一个独立的线程, 进化中的粒子个体充分表现出独立性、种群表现出异步性。文献[5]主要研究的是并行PSO算法中三种不同的通信策略。依据算法中各个参数之间的关联程度不同, 提出了三种不同的通信策略。文献[6]提出基于岛屿群体模型的并行PSO算法不仅提高了求解效率, 而且改善了早收敛现象。文献[7]将设计的并行PSO算法应用于生物力学的一个实例中, 文献[8]研究一种细粒度的并行微粒群算法, 将它应用于系统辨识, 结果表明:并行PSO算法具有很好的效果。

本文首先介绍BSP并行计算模型, 接着提出了基于BSP并行计算模型的并行PSO算法。该算法改变了标准PSO算法的结构, 提高了算法的求解效率。

1 并行BSP计算模型

并行计算模型是并行计算机基本特征的抽象, 是并行算法设计和分析的基础。并行算法的设计不能局限于某种具体的并行计算机, 而必须借助抽象的计算模型。并行计算模型与并行算法设计、并行机之间有密切联系。

一个BSP计算机由n个处理机/存储器组成, 通过通信网络进行互联。在BSP模型中, 计算系由一系列用全局同步分开的周期为L的超级步 (superstep) 所组成。在各超级步中, 每个处理器均执行局部计算, 并通过选路器接收和发送消息;然后作一全局检查, 以确定该超级步是否已由所有的处理器完成;若是, 则前进到下一超级步, 否则下一个L周期被分配给未曾完成的超级步。

一个BSP程序有n个进程, 每个驻留在一个节点上, 程序按严格的超步顺序执行, 超步间采用路障同步, 如图1所示。每个超步分成如下有序的三个部分:

(1) 计算

一个或多个处理器执行若干局部计算操作。操作的所有数据只能是局部存储器中的数据, 这些数据是在程序启动时或由以前超步中的通信操作存放在局部存储器中的。结合BSPPSO算法, 多个子群体被分配在不同的处理器上独立地进化计算, 利用子群体内各个粒子的历史最好位置和群体最好位置, 搜寻子群体内部的最好解。

(2) 通信

处理器之间相互交换数据, 通信总是以点对点的方式进行。在BSPPSO算法中各个子群体相互交换信息, 不断更新全局最好位置。

(3) 同步

确保通信过程中交换的数据被传送到目的处理器上, 并使一个超步中的计算和通信必须全部完成之后, 才能开始下一个超步中的任何动作。在BSPPSO算法中, 等到所有子种群体局部进化结束, 相互比较最好信息, 得出当前的全局最好位置, 再开始继续循环整个进化过程。

BSP的一个特点是, 它将计算任务和通信任务分开。它简化了算法的设计和分析, 当然就牺牲了运行时间, 因为所谓的整体大同步意味着所有的进程均必须等待最慢者。考虑异步方式的耦合性更高, 更容易产生通信瓶颈。本文采用的是同步方式。

2 并行BSPPSO算法

算法流程描述如下:

Step1:初始化整个种群。对每个粒子的随机位置和速度进行初始设定。每个粒子由计算得到初始的适应值和初始的个体最好位置Pi及初始的群体最好位置Pg。

Step2:将整个种群分为几个子种群。各个子种群独立进化。

2.1:

在每个子种群中, 根据粒子自身的最好位置Pi和全局最好位置Pg按照进化方程进化, 然后计算粒子的适应值。

2.2:

在各个子种群独立的进化中, 若某个子种群中粒子的适应值比全局最好位置Pg的适应值好, 则它作为当前的全局最好位置Pg。其它子种群依据该Pg值继续进化, 直到进化最慢的子种群更新完全局最好位置Pg。

Step3:若未达到结束条件 (足够好的适应值) , 则返回步骤2.1, 各子种群继续循环迭代, 直到满足条件。

分析BSPPSO算法:各个子种群内部独立的利用各个粒子的历史最好位置和群体的全局最好位置按照进化方程独立进化。由于各个子种群进化快慢不同, 当进化较快的一些子群体经过比较, 得出当前的最好位置Pg, 则该Pg会影响到正在进化中的其它子种群, 能引导它们的粒子更快地朝最好位置飞去。加快了算法的收敛。这样, 各个子种群既能充分利用自身的值进行搜索, 不会迷失自己的方向, 又能及时得到全局最好位置Pg的引导, 达到最好值。

3 仿真实验

本文采用两个无约束优化基准测试函数, 分别用经典PSO和BSPPSO进行仿真实验, 并对实验结果进行比较, 以验证BSPPSO的寻优性能。测试函数是:

F1:Sphere函数f1 (x) =i=1nxi2-100xi100

F2:Rosenbrock函数f2 (x) =i-1n (100 (xi+1-xi2) 2+ (xi-1) 2) -30xi30

为了提高可比性, 本文在两种算法中取同样的调整参数。惯性权重W的取值在整个搜索过程中从1.0减至0.4。粒子总个数为60。在BSPPSO中将整个群体划分为三个子群体, 每个子群体为20个粒子。各个子种群用不同的线程独立进化。实验在Windows环境下用多线程技术对BSPPSO进行模拟, 开发环境为VC++6.0。实验结果如表1所示。

在实验中分别对两种算法重复运行50次取平均。由于文章篇幅所限, 只列出其中性能改善较明显的两个函数。从结果中看, 对标准PSO很难收敛的Rosenbrock函数, BSPPSO算法极大地提高了它的收敛率和收敛速度。对于100维的Sphere函数, 在平均收敛代数近似相同的情况下, 收敛率比标准PSO要提高很多。从图2~图3中, 我们可以看到在两种算法下, 随着迭代次数的增加, 适应值的变化情况不同。总之, BSPPSO与PSO相比, 收敛性得到了加强, 适应值更好。

4 结 论

本文将BSP并行计算模型引入标准PSO, 从结构上改变了标准PSO算法的模式。基于BSP模型设计了一种全新的并行粒子群优化算法, 并将它进行并行实现。该并行算法提高了搜索效率, 同时使算法性能得到了很大改善。

摘要:在对标准微粒群算法分析的基础上, 将它与BSP并行计算模型相结合, 设计并实现了一种基于BSP并行计算模型的并行微粒群算法。这种基于BSP并行计算模型的并行微粒群算法改变了标准微粒群算法的结构, 提高了算法求解效率。实验结果表明, 该并行算法的性能比标准微粒群算法有了很大的提高。

关键词:演化计算,BSP并行计算模型,微粒群算法

参考文献

[1]Kennedy J, Eberhart R.Particle swarm optimization[A].proc IEEE Int Conf on Neural Networks, perth, 1995:19421948.

[2]谢晓峰, 张文俊, 杨之廉.微粒群算法综述.控制与决策, 2003, 18 (2) :129134.

[3]曾建潮, 介静, 崔志华.微粒群算法.北京:科学出版社, 2004.

[4]罗建宏, 张忠能.并行仿真的粒子群优化算法异步模式研究.计算机仿真, 2005, 22 (6) :6870.

[5]Chang Juifang, Chu Shuchuan, John f Roddick Pan Jengshyang.A Par-allel Particle Swarm Optimization Algorithm with communication strate-gies.Journal of information science and engineering, 2005, 21:809818.

[6]黄芳, 樊晓平.基于岛屿群体模型的并行粒子群优化算法.控制与决策, 2006, 21 (2) :175179.

[7]Schutte J F, Reinbol J A, Fregly B J, et al.Parallel Global Optimization With the Particle Swarm Algorithm.Int.J.Numer.Meth.Engng, 2003.

并行计算的内存访问方法 篇10

本发明主要涉及到计算机技术层面的内容, 尤其针对多线程的PDF格式文件操作中的内存访问控制, 同时由此引申到多线程并行计算时的内存访问有效策略及如何更好提高运行效率的方式, 下面就该发明的技术背景及发明内容做详细的介绍。

当前图书、图片、文件等实体资源的数字化, 通常是采用扫描——识别——提取的方式。先将文档扫描为PDF格式, 再进行文档模块和文字的识别, 之后提取识别后的信息, 供编档和供给搜索引擎以供建立索引。由于现有技术的限制, 在对大量文档处理过程中存在占据大量系统资源的问题, 导致处理速度减慢, 当前的多核处理器技术逐步成熟, 首选方式是在多个CPU上同时实现多线程的运行。但现实操作中仍存在提速有限且CPU未能完全利用的问题, 为此发明人结合业内多年工作经验及实验操作分析和研究该问题的成因, 发现要归因在内存操作中其分配和释放需要县城保护, 并且全部线程共享同个内存池, 这类因素导致访问需要等待, CPU效用率低, PDF的频繁操作会使得大量出现线程等待。

为了改善内存访问, 本领域技术人员提出了多种方法。例如, 专利授权公告号:CN100487660C, 名为“一种多线程处理器动态内存管理系统及方法”的中国发明专利公开了一种多线程处理器动态内存管理方法, 该方法在一定程度上解决了内核线程的内存释放问题, 能够避免某一时刻某一空闲的内核线程占用过多的空闲内存。由主控内核线程取代硬件仲裁器, 利用消息机制, 提高了内存在各个内核线程间的分配使用效率。但是该方法却无法解决共享一个内存池的多个线程均请求较大内存空间而必须排队等候的问题。并且应用此方法, 要改变内存管理代码, 并不适合代码的直接移植。

2 本发明具体内容阐述

(1) 本发明目的在于针对多个线程调用同一个执行模块时, 由于必须共享同一内存池, 且该内存池无法提供足够资源而导致内存访问等待时间过长的问题, 提供一种新的内存访问策略, 以缩短甚或消除并行计算时的内存访问等待时间, 使单个线程能够拥有独立的内存池。能在不改变或很少改变模块代码特别是完全不改变内存管理的情况下, 将单线程代码, 简单移植到多线程环境中。并让多核多线程的优势得到充分发挥。

(2) 本发明的并行计算的内存访问方法, 用于存在调用同一原始执行模块的n≥2个并行线程的情况, 其特征在于, 包括以下步骤:

S1) 根据线程数n确定需创建的映像执行模块的个数k, n-1≥k≥1;

S2) 确定该n个线程与原始执行模块及k个映像执行模块之间的映射策略F;

S3) 创建k个映像执行模块, 并为其分配各自私有的内存池;

S4) 执行所述并行的n个线程, 令各个线程按照所述映射策略F调用执行模块, 每个执行模块访问且仅访问其私有的内存池;

S5) 线程运行完成后删除创建的映像执行模块, 释放资源。

其中, 所述映像执行模块的个数为k可以是随时间变化的。或者, 所述映像执行模块的个数k在线程执行期间也可是固定不变的。较佳地, 可根据同一时间调用同一执行模块的线程个数的统计值来确定映像执行模块的数量。

根据本发明的一实施例, 所述映像执行模块的个数k为1个。根据本发明的另一实施例, 所述映像执行模块的个数k为n-1个。其中, 当所述映像执行模块的个数k为n-1个时, 所述映射策略F可为:每个线程分别调用一个不同的执行模块, 线程与执行模块是一一对应的。根据本发明的再一实施例, 所述映射策略F可为静态策略, 一个线程仅指向一个被它调用的执行模块, 而一个执行模块被一个或一个以上的线程调用。较佳地, 所述映射策略F为将调用执行模块频繁的线程, 配置为独享一个执行模块, 将相对调用执行模块频率较低的线程, 配置为共享执行模块。根据本发明的又一实施例, 所述映射策略F为动态策略的“多窗口排队”机制, 该策略F中, 为每个执行模块定义“空闲”、“繁忙”两个状态, 将所有的空闲执行模块排队需要调用执行模块的线程从空闲执行模块队列中择一调用, 若没有空闲的则等待;在线程对执行模块的调用进行中将该执行模块标记为繁忙, 执行完毕后, 线程释放该执行模块, 将其标记为空闲。

应用本发明的方法可令并行计算的效率随核心数增加而呈线性增长, 而不受内存访问瓶颈的限制。对各种操作系统均可适用。并且使用静态方式时, 甚至无需增加代码, 即可将单线程的程序直接移植到多线程环境。而灵活的动态方式和动态映射策略, 则可使本发明在占用不是那么多的系统资源的情况下显著提高效率, 事半功倍。

(3) 本发明目的在于, 在不改变操作系统的内存管理的前提下, 改变内存访问方式。为对便于对本发明进行更好的理解, 首先对一般的内存管理方式进行说明。内存管理的特点之一是执行模块是隔离的, 每一个执行模块被分配独立的内存池空间。其中, 执行模块可视为是系统在内存中建立的一个个数据结构, 用于管理运行时加载到内存中的程序代码, 数据以及资源。每个执行模块作为一个系统资源的分配单位, 享有其独自的内存池, 执行模块中的多个函数将共享该执行模块的内存池。所述执行模块可以是运行后被加载到进程中的一个windows下的.exe程序或一个动态链接库 (dll) 等。同一个执行模块, 不论多少个线程在调用, 只会被加载一次, 由同一个进程开启的所有线程, 对于同一执行模块, 它的内存池是共享的。依照操作系统类型的不同, 执行模块还可有其它形式。按照本领域技术人员的公知, 不同的操作系统的内存管理模式会有区别, 但是均会存在这样一种特定的单元, 其由一些数据和代码的集合构成, 表现为程序、函数等形式, 并且对该种代码组合操作系统会分配私有的 (private) 内存空间 (包括逻辑的或物理的) 以供其访问。因此, 在本发明中, 执行模块也可理解为在给定操作系统下, 依据该操作系统的默认内存管理方式而为其分配单独的内存池的一组代码和数据的集合。

专利名称:并行计算的内存访问方法

专利号:ZL 2010 1 0140502.6

申请日:2010.04.07公开日:2013.04.17

申请人:福州福昕软件开发有限公司林芝

摘要:本发明是一种有关计算机并行计算的内存访问的方法, 用于存在调用同一原始执行模块的n≥2个并行线程的情况, 包括以下步骤:S1) 根据线程数n确定需创建的映像执行模块的个数k, n-1≥k≥1;S2) 确定该n个线程与原始执行模块及k个映像执行模块之间的映射策略F;S3) 创建k个映像执行模块, 并为其分配各自私有的内存池;S4) 执行所述并行的n个线程, 令各个线程按照所述映射策略F调用执行模块, 每个执行模块访问且仅访问其私有的内存池;S5) 线程运行完成后删除创建的映像执行模块, 释放资源。本发明可令并行计算的效率随核心数增加而呈线性增长, 而不受内存访问瓶颈的限制。各种操作系统通用, 且便于将单线程的程序直接移植到多线程环境。

并行计算、网格计算 篇11

拉普拉斯变换是工程数学常用的一种积分变换,在工程技术和理论研究等诸多方面有较广泛的应用,特别是对于求解常系数线性偏微分方程的初边值问题。本文基于离散化的思想和蒙特卡罗算法对某一常见函数进行Laplace变换,利用两种并行模式改造并精选出最优的并行计算处理方法。

蒙特卡罗方法是一种随机模拟方法,它以统计理论方法和概率为基础,是使用随机数或伪随机数来解决实际计算问题的方法。Open MP是一种面向共享内存及分布式共享内存的多处理器多线程并行编程语言,是能用于显示指导多线程、共享内存并行的应用程序编程接口,并利用封装好的函数来进行并行计算;Win API并行模式是通过编写线程函数,利用Windows系统中的API接口进行多线程调度来实现并行。通过对数值实验的串并行算法的计算速度,加速效果进行比较,得出并行优化后的计算方法。并进一步考虑将计算中高效的并行方法应用到其他数值问题。

2 拉普拉斯变换描述

定义设f(t)是时间t的函数,当t>0时,对定义在区间(0,+∞)上的实自变量t的函数f(x),乘以e-pt(其中p为复数),然后对t由0到+∞积分,此广义积分若收敛,称函数F(p)

为函数f(t)拉普拉斯变换,记作L[f(t)],即

3 某问题的串并行算法描述

当f(x)=sin(x)时,计算其Laplace变换:

算法改进:

由于e-px的变化速度太快,我们没有办法直接求sin(x)的Laplace变换,故将其离散化形成级数形式,然后利用梯形公式法则的数值积分方法来估算它的值。为了提高精度把积分区间[0,200000]分成若干等份,分点为xn+1=xn+step,形成若干个自区间,再在每个子区间上采用梯形公式。

串行程序:

3.1 API实现

首先在进程内创建线程,它是CPU调度和分配的基本单位。利用WINAPI定义线程函数,在线程函数内分配该线程所要进行的任务,然后将线程函数导入到创建好的线程中运行,计算机通过API接口,针对创建的线程数目,调度相同数目的CPU进行计算,最后将各线程的计算结果合并得到最终结果。

程序中使用多线程时,很多情况下是一些线程进行某些处理操作,而其他线程必须对其处理结果进行了解,若不采取适当措施,其他线程会在线程处理任务结束前就去访问处理结果,因此产生了数据竞争。为避免数据竞争,我们使用临界区进行数据同步,临界区独占对某些共享资源的访问,它只允许一个线程对共享资源进行访问。若有多个线程想同时访问临界区,那么在一个线程进入临界区后其他线程将被挂起。在本问题的实现过程中,将求和运算拖入临界区,来避免频繁介入临界区。

API关键代码如下:

3.2 Open MP实现

利用parallel for循环并行化

采用工作分配的执行方式,利用parallel for循环语句将总的工作量按照一定的方式分配到各个线程,最后将所有线程的结果汇总。Parellel for是对一个完整的for循环进行分割,它根据线程数大小按工作量平均分配,每个线程的工作量为总的工作量/线程数。为了避免产生数据竞争,采用的方法是对竞争变量私有化,添加私有量private(n),再对执行完的程序利用reducation语句进行归约操作,用来更好的收集任务结果。

关键代码

4 蒙特卡罗算法求解

4.1 蒙特卡罗算法

蒙特卡罗法计算多重积分时,采用均匀随机数法得到随机变量是常用方法之一。选取f(p)的方法是取Vs上的均匀分布,即

Vs表示积分区域的体积,此时g(p)=VsG(p)。采用均匀分布随机数计算多重积分时,有。

设区域D:a≤x≤b,c≤y≤d其面积A=(b-a)(d-c),f(x,y)设为区域上的有界函数,不妨设(xi,yi),i=1,2...N为落在区域D上的均匀分布随机数列,用均匀随机数计算二重积分时,当有N充分大时,有。将上式推广到多重积分,有

4.2 基于Laplace变化的蒙特卡洛串行算法描述

Laplace变化格式为单重积分,所以我们在求解Laplace变换过程中我们可以用蒙特卡洛求解多重积分的方法对它求解。根据上述蒙特卡洛算法将Laplace变化最终转化为。然后通过编程求解。

关键串行代码如下:

4.3 基于Open Mp并行算法实现

我们在串行程序的基础上通过Open MP进行并行处理。求解该问题需要计算N个值,然后对N个值进行求和。在计算N个值得过程中数据之间没有依赖关系,所以我们采用四个线程将任务进行分配。在计算每个值之前我们都需要随机产生一个介于积分区间的随机数,为了减少共享内存带来的时间消耗,我们将这个随机数设定为每个线程的私有变量private(x)。然后利用规约reduction(+:s)将N个值进行求和运算,得到最终结果。

关键代码:

5 分析与结论

四线程并行计算:

上述结果可以看出利用离散化方法所花费的时间整体比较少,在串行的基础上对它进行并行实现,使得效率进一步提高。Open MP的加速比达到2.5396,API的加速比达到3.113。利用蒙特卡洛算法计算过程中所用时间比较长。主要因为蒙特卡洛算法主要针对的是多重积分的计算,而该问题是一重积分的运算所以效率较低。但蒙特卡洛算法的串行和并行算法相比较可以看出并行算法效率较高,加速比达到2.498。综合上述结果可以看出基于离散方法的API并行效率最高。

6 结语

对于Laplace变化,可以看出基于离散算法的API的并行效率最高,蒙特卡洛Open MP效率最低。Open MP编程模型比较适合迭代的并行计算。类似的我们还可以通过并行手段解决其他的并行计算问题。

摘要:Laplace变换是一种解决常系数偏微分方程初边值问题的常用方法,在此,利用离散化方法和蒙特卡罗算法求解Laplace变换,运用多线程技术,结合高性能并行计算中Win API,Open MP的并行模式获得最优计算方法。通过数值结果可以看出,蒙特卡罗Open MP方法速度最慢,效率最低,基于离散算的Win API方法计算速度最快,并行效率最高,最终获得结论的并行计算模式应用到其他初值问题。

关键词:Laplace变换,OpenMP,WinAPI,蒙特卡罗算法

参考文献

[1]朱建伟,刘荣.多线程并行快速求解e值得六种方法[J].现代计算机,2013(6).

[2]薛小超,王克,朱朋海.基于多核并行的非线性方程蒙特卡洛计算方法[J].电脑知识与技术,2014(7).

[3]刘辉玲,叶峰.计算多重积分的均匀随机数蒙特卡罗法的实现[J]电脑知识与技术,2008(12).

上一篇:精品城市论文下一篇:机械粉碎