机群天玑1000plus和骁龙865哪个好

天玑1000plus和骁龙865哪个好  时间:2021-01-20  阅读:()

Vol.
15,No.
62004JournalofSoftware软件学报1000-9825/2004/15(06)0842PC机群上共享存储与消息传递的比较章隆兵1+,吴少刚2,蔡飞1,胡伟武11(中国科学院计算技术研究所,北京100080)2(石油大学(华东)计算机与通信工程学院,山东东营257061)Shared-MemoryVersusMessage-PassingonPCClusterZHANGLong-Bing1+,WUShao-Gang2,CAIFei1,HUWei-Wu11(InstituteofComputingTechnology,TheChineseAcademyofSciences,Beijing100080,China)2(CollegeofComputerandCommunicationEngineering,UniversityofPetroleum(EastChina),Dongying257061,China)+Correspondingauthor:Phn:+86-10-62559641,Fax:+86-10-62564342,E-mail:lbzhang@ict.
ac.
cn,http://www.
ict.
ac.
cnReceived2003-09-08;Accepted2004-03-01ZhangLB,WuSG,CaiF,HuWW.
Shared-Memoryversusmessage-passingonPCcluster.
JournalofSoftware,2004,15(6):842~849.
http://www.
jos.
org.
cn/1000-9825/15/842.
htmAbstract:Twoparallelprogrammingmodelsofshared-memoryandmessage-passingarewidelyadopted.
Theprogrammabilityofmessage-passingispoor,whilethatofshared-memoryisgood.
TheOpenMPApplicationProgrammingInterfaceisanemergingstandardforshared-memory.
OpenMPonclustersuppliesanOpenMPcomputingenvironmentonclusterofworkstationsorPCs,whichcombinesthefriendlyprogrammabilityofshared-memorywiththefinescalabilityofcluster.
Taking7well-knownparallelapplicationsonaclusterofPCs,thispapercomparestheperformanceofOpenMP/JIAJIA,anOpenMPsystemoncluster,withthatofMPI,atypicalmessagepassingsystem.
ExperimentalresultsshowthattheperformanceofOpenMPisaveragelyequalto81%ofMPIforthe7applicationsrunningon8-nodes,buttheformeriseasiertousethanthelatter.
Keywords:OpenMP;messagepassinginterface;PCcluster;parallelprogrammingmodel;shared-memory;softwaredistributedsharedmemorysystem摘要:共享存储和消息传递是目前两种主流的并行编程模型.
一般认为,消息传递的可编程性不及共享存储友好.
OpenMP是目前共享存储编程的实际工业标准.
机群OpenMP系统在机群上提供了OpenMP编程环境,具有易编程和可扩展的特点,但是其性能如何一直是关注的热点.
以机群OpenMP系统OpenMP/JIAJIA和典型的消息传递系SupportedbytheNationalNaturalScienceFoundationofChinaunderGrantNo.
60303016(国家自然科学基金);theFoundationfortheAuthorofNationalExcellentDoctoralDissertationoftheChineseAcademyofSciences(中国科学院全国首届优秀博士学位论文作者基金);theYouthInnovationFoundationoftheInstituteofComputingTechnology,theChineseAcademyofSciences,underGrantNo.
20026180-7(中国科学院计算技术研究所领域前沿青年基金)作者简介:章隆兵(1974-),男,安徽绩溪人,博士,主要研究领域为计算机系统结构,并行计算,微处理器设计;吴少刚(1973-),男,博士,讲师,主要研究领域为计算机系统结构,机群计算,虚拟共享存储技术;蔡飞(1979-),男,博士生,主要研究领域为计算机系统结构,微处理器设计;胡伟武(1968-),男,博士,研究员,博士生导师,主要研究领域为高性能计算机体系结构,并行处理,VLSI设计.
章隆兵等:PC机群上共享存储与消息传递的比较843统MPI(messagepassinginterface)为例,在分析两种并行编程环境各自特点的基础上,在PC机群上采用7个应用比较了二者的性能.
实验结果表明,对于所测试的7个应用而言,OpenMP版本在8个处理机运行时的平均性能为MPI版本的81%,但是采用OpenMP编程却比MPI简单很多.
关键词:OpenMP;消息传递;PC机群;并行编程模型;共享存储;软件分布式共享存储系统中图法分类号:TP311文献标识码:A随着高速网络和微处理器技术的发展,机群获得了很好的性能.
由于性价比高和可扩展性好的特点,机群正逐渐成为主流的并行计算平台.
消息传递(如MPI(messagepassinginterface)[1]、PVM)和共享存储(如OpenMP[2])是两种典型的并行编程模型.
通常认为,共享存储的可编程性比消息传递要好得多.
由于机群是一种典型的分布式存储系统,采用消息传递进行编程是很自然且有效的,因此消息传递系统是目前机群上主流的并行编程环境.

然而,消息传递难于编程,而共享存储易于编程,这使得在机群上实现共享存储编程环境很有吸引力.
目前,OpenMP是支持共享存储并行编程的工业标准,而机群OpenMP系统在机群上提供了OpenMP计算环境,它结合了机群的可扩展性和OpenMP的易编程性,引起了广泛的研究[3~5].
机群OpenMP系统主要利用软件DSM(distributedsharedmemory)系统在机群上构造的虚拟共享存储抽象,将OpenMP程序转换成等价的软件DSM程序,进而在机群上运行.
由于机群OpenMP系统是以软件DSM系统为基础的,所以机群上软件DSM系统的性能对机群OpenMP系统的性能有很大影响.
在机群上进行软件DSM系统与消息传递系统的性能比较的工作较多[6~9].
文献[8]中的研究表明:对于所测试的大部分应用而言,在PC机群上软件DSM系统的性能与MPI相当.
对于机群OpenMP系统而言,由于程序语义的转换开销,其性能可能会比软件DSM系统要差一些.
然而与消息传递系统相比,机群OpenMP系统在性能上究竟相差多少,是否在合理范围内,却又不失编程友好性呢目前,在PC机群上进行OpenMP与消息传递系统性能比较的工作还未见到.
本文的贡献在于利用我们自己设计的机群OpenMP系统OpenMP/JIAJIA,在一个通用的PC机群平台上与MPI系统作了详细的性能比较,直接回答了上述性能差距问题.
本文的研究结果表明,所测试的7个应用的OpenMP版本在8个处理机运行时的平均性能达到MPI版本的81%.
本文第1节简要介绍OpenMP标准、机群OpenMP系统OpenMP/JIAJIA以及MPI标准.
第2节介绍用于性能比较的应用程序.
第3节是测试数据和性能分析.
第4节是结论.
为了描述方便,本文中有关OpenMP的制导和子句都采用斜体标示.
1机群OpenMP系统与MPI1.
1OpenMPOpenMP标准通过定义编译制导、库例程和环境变量规范,给程序员提供了支持Fortran、C/C++语言的一组功能强大的高层并行结构和一个支持增量并行的共享存储程序设计模型,能满足很大范围的应用需求.
目前,OpenMPARB发布的分别支持Fortran、C/C++的最新说明规范是2.
0的版本[2].
OpenMP允许用户创建、管理可移植的并行程序,其编译制导主要包括3种类型:并行及工作共享制导、数据环境制导和同步制导.
OpenMP程序的并行块主要由parallel制导来描述,并行块以SPMD方式在多线程上运行.
工作共享制导用于将并行区域中的任务划分成子任务在多个线程上执行,包括for,sections和single这3种模式.
工作共享制导可以和某个并行块绑定在一起使用,编程更加简洁.
数据环境制导用于在并行执行时控制数据的属性,主要包括threadprivate制导和一些描述数据区域属性的子句,如private,shared,default,firstprivate,lastprivate,reduction和copyin子句.
同步制导主要包括master,barrier,critical,atomic,flush和ordered.
另外,OpenMP的库例程主要提供一些获取线程标识和设置锁变量的接口函数,和环境变量一起便于对程序运行时行为进行控制.

OpenMP采用fork/join并行执行模式:OpenMP程序首先由Master线程执行,直到碰到第1个并行结构(由parallel制导构成),则由Master线程创建(fork操作)一组线程,且Master线程成为线程组的主线程.
除了工作共享结构外,每个线程都执行并行动态扩展域中的代码.
而工作共享结构表明任务被划分成子任务,线程组中的每个线程分别执行对应的子任务,所有线程在工作共享结构结束处需要隐式同步,而且在并行结构的出口处执行844JournalofSoftware软件学报2004,15(6)合并操作(join操作).
并行结构执行完后,Master线程继续执行.
程序中可以说明多个并行结构,所以程序在执行时创建和合并多次.
OpenMP标准只规定用户直接并行的语义,它的实现本身并不检查依赖、死锁等导致程序错误的问题,完全由用户保证采用OpenMP结构的程序正确性.
1.
2OpenMP/JIAJIAOpenMP/JIAJIA是我们自己开发的一个基于软件DSM系统JIAJIA[10]的机群OpenMP系统.
OpenMP/JIAJIA利用JIAJIA在机群上提供的共享存储界面,将OpenMP程序映射成等价的JIAJIA程序在机群上运行.
OpenMP/JIAJIA主要包括编译处理系统前端和支持fork/join模式的JIAJIA运行库后端.
系统框架如图1所示.
ClusterJIAJIAlibraryExecutablecodeGccDSMprogramS2CgeneratorPerformancetunerOMP2JIACpreprocessorOpenMPprogramFig.
1FrameworkofOpenMP/JIAJIAsystem图1OpenMP/JIAJIA系统框架图1中,编译处理系统由C预处理器、OMP2JIA编译器、性能优化器以及S2C源码生成器组成,其中C预处理器和S2C生成器直接取自SUIF工具集[11],OMP2JIA编译器由我们自己基于SUIF开发,性能优化器是计划采用编译分析技术来提高性能的模块,目前没有实现.
后端运行库由基于SPMD模式的JIAJIA改造而成.
整个系统处理流程包括由编译系统前端处理OpenMP源程序,生成等价的软件DSM源程序,然后通过标准编译器(如GNUGcc)链接JIAJIA运行库,生成可执行程序在机群上运行.
由于软件DSM系统JIAJIA在机群上构造的是一个类NUMA的虚拟共享存储系统,为了在NUMA系统中获得高性能,需要对OpenMP标准进行扩展.
与硬件CC-NUMA机器SGIOrigin2000类似,OpenMP/JIAJIA中提供了合适的数据分布制导扩展distribute.
distribute制导支持Block和Cyclic两种数据分布方式,程序员利用distribute数据分布制导控制数据在处理机间的分布.
另外,OpenMP/JIAJIA还提供了基于局部性优先的静态和动态循环调度模式.
结合数据分布制导和合适的调度模式,可以充分实现拥有者计算,从而提高程序性能.

1.
3MPI消息传递是一种广泛应用的并行编程模型.
为了使消息传递系统能被更多的人使用,能在更多的机器上运行,MPI标准便应运而生.
在吸收了现存许多系统的最突出优点的基础上,学术界和工业界的研究人员共同设计并制订了该标准.
MPI标准定义了用C和Fortran编写消息传递应用程序所用到的核心库例程的语法和语义,具有很多特点.
首先,MPI提供了一个易移植的编程接口和一个可靠的通信接口,允许避免内存到内存的拷贝,允许通信重叠,具有良好的通信性能;其次,它可以在异构系统中透明使用,即能在不同体系结构的处理器上运行;再者,MPI提供的接口与现存消息传递系统接口(如PVM,NX,Express,p4等)相差不大,却提供了更大的灵活性,能在更多的平台上运行.
MPI是一个标准,它没有规定具体的实现细节,这给实现该标准的厂家带来了很大的灵活性,使MPI可扩展性更好.
MPICH是一个成功的MPI实现,我们在机群上使用的是MPICH-1.
2.
3版本.
MPI提供模块化的函数调用,函数种类和个数都很多,适用于各种场合.
同时对一般的应用程序来说,通常只用到其中的10几个最常用的库函数,程序本身比用PVM编写的程序要直观得多.
章隆兵等:PC机群上共享存储与消息传递的比较8452应用程序简介我们使用了一些被广泛采用的基准程序,包括NPB[12]中的蒙特卡罗模拟程序EP,SPLASH2[13]中的水分子模拟程序WATER,SPECOMPL2001[14]中的浅水模拟程序SWIM,Rice大学OpenMP-Now项目[3]提供的计算多个向量正交基程序GS,逐次超松弛迭代程序SOR,Omni项目[4]提供的拉普拉斯方程求解程序LAP,以及我们自己编写的非分块LU分解程序.
MPI版本的EP是我们直接从NAS的网站上下载的,其他6个程序的MPI版本是从相应的共享存储程序移植过来的.
在程序的OpenMP版本中,我们采用了针对机群OpenMP系统扩展的distribute数据分布制导来控制数据分布,并且使用了基于局部性优先的静态循环调度模式.
在所有程序中,除了EP的MPI版本是Fortran程序,其余的都是C程序.
EP(embarrassinglyparallel)程序产生高斯伪随机数,统计落在环内的数目,是一个典型的蒙特卡罗应用——求积分.
该程序只在最后求和时交换数据,计算通信比非常大.
WATER是一个水分子动力学模拟程序.
WATER的主要数据结构是一个由记录构成的一维数组,每个数组元素记录了一个分子的特性参数,包括分子的质心、受力、位移和6个方向的导数等.
在每一个时间步都要计算分子和分子间的势.
WATER的并行算法将水分子数组分成相同大小的连续区段,每个处理机负责其中的一个区段.
主要的处理机间通信发生在力的计算过程中:若将分子数组看成一个环,则每个处理机对它所负责的每个分子都要计算该分子与数组中紧随其后的n/2个分子间的作用力,并依此更新记录中的相应数据.
SOR采用红黑格的逐次超松弛迭代法解偏微分方程.
SOR的并行程序将红黑两个数组分成大小基本相同(最多只差一行)的长方块,由每个处理机负责计算一块数据.
在每个迭代中,先根据黑数组的值来计算红数组,然后利用红数组来计算黑数组.
由于采用5点差分格式,只有涉及到带状边缘行的计算才会发生通信.
LAP采用雅可比迭代法求解二维拉普拉斯方程.
LAP的并行程序将新旧两个数组按行均匀划分成基本相同(最多只差一行)的长方块,由每个处理机负责计算一块数据.
在每次迭代中,先计算旧数组中每个元素的相邻4个元素的平均值,存放在新数组的对应元素中,然后计算新旧数组的迭代误差,最后并行更新旧数组.
当计算涉及到长方块边缘时需要进行通信.
SWIM是一个天气预报建模程序,它使用有限差分方法求解浅水方程组(shallowwaterequations).
SWIM的数据结构主要是14个二维数组.
SWIM的并行程序将所有数组按行均匀分布到处理机上,每个处理机负责计算分配给自己的行.
SWIM程序结构包含一个初始化阶段和一个迭代模拟阶段.
SWIM在计算自己拥有的数据边缘或者需要和别的处理机相互交换数据时进行通信.
LU分解将一个稠密矩阵分解成上三角阵U和下三角阵L.
该程序没有采用块分解算法,而是普通的基于行主元的分解.
LU的数据结构是一个二维数组.
在每次迭代中,当对角线元素所在行处理完以后,就利用该行内容并行更新当前元素右下角矩阵.
考虑到负载平衡问题,LU程序将数组按行以Cyclic方式分配给处理机,每个处理机负责计算分配给自己的行.
当处理机要取对角线元素所在行来更新自己拥有的行时就要进行通信.

GS是一个计算M个N维向量的正交基的应用.
GS的数据结构是一个二维数组.
GS的并行程序在第i次迭代时,首先规格化第i个向量,随后把所有的第j个向量(j>i)与第i个向量正交化.
与LU类似,GS程序将数组按行以Cyclic方式分配给处理机,每个处理机负责计算分配给自己的行.
当处理机要取规格化后的向量来更新自己拥有的向量时要进行通信.
3测试数据和结果分析本文的硬件测试环境是8个结点的一个PC机群,采用百兆位交换式快速以太网互联,每个结点有2个PIII700处理器、1GB内存以及SuperMicro公司的370DLE主板.
软件环境是RedHatLinux7.
3操作系统,内核版本为2.
4.
18.
采用的C编译器为Gcc2.
96,Fortran编译器为g772.
96.
机群OpenMP系统为我们自己的OpenMP/JIAJIA,MPI的版本为MPICH-1.
2.
3.
表1为所测试应用的规模及其串行版本的执行时间.
一般情况下,应用的串行版本执行时间应该比其并行版本的单机执行时间短,这主要是因为并行版本的单机执行时间中包含了并行化所带来的开销.
然而,由于应用846JournalofSoftware软件学报2004,15(6)的串行版本与其并行版本的程序结构不同,由编译器生成的可执行代码的效率不同,故应用串行版本的执行时间与其并行版本的单机执行时间与具体程序的相关,并不一定很有规律.

青云互联:香港安畅CN2弹性云限时首月五折,15元/月起,可选Windows/可自定义配置

青云互联怎么样?青云互联是一家成立于2020年的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,目前提供有美国免费主机、香港主机、韩国服务器、香港服务器、美国云服务器,香港安畅cn2弹性云限时首月五折,15元/月起;可选Windows/可自定义配置,让您的网站高速、稳定运行。点击进入:青云互联官方网站地址青云互联优惠码:八折优惠码:ltY8sHMh (续费同价)青云互联香港云服务器活动...

老薛主机VPS年付345元,活动进行时。

老薛主机,虽然是第一次分享这个商家的信息,但是这个商家实际上也有存在有一些年头。看到商家有在进行夏季促销,比如我们很多网友可能有需要的香港VPS主机季度及以上可以半价优惠,如果有在选择不同主机商的香港机房的可以看看老薛主机商家的香港VPS。如果没有记错的话,早年这个商家是主营个人网站虚拟主机业务的,还算不错在异常激烈的市场中生存到现在,应该算是在众多商家中早期积累到一定的用户群的,主打小众个人网站...

ftlcloud(超云)9元/月,1G内存/1核/20g硬盘/10M带宽不限/10G防御,美国云服务器

ftlcloud怎么样?ftlcloud(超云)目前正在搞暑假促销,美国圣何塞数据中心的云服务器低至9元/月,系统盘与数据盘分离,支持Windows和Linux,免费防御CC攻击,自带10Gbps的DDoS防御。FTL-超云服务器的主要特色:稳定、安全、弹性、高性能的云端计算服务,快速部署,并且可根据业务需要扩展计算能力,按需付费,节约成本,提高资源的有效利用率。点击进入:ftlcloud官方网站...

天玑1000plus和骁龙865哪个好为你推荐
手机内存卡数据恢复手机存储数据恢复盗版win8.1升级win10盗版win8怎么升级到win10正版迈腾和帕萨特哪个好新帕萨特和新迈腾哪个好?江门旅游景点哪个好玩的地方江门有哪些旅游景点,江门哪里好玩手机音乐播放器哪个好手机哪个音乐播放器的音质更好?股票软件哪个好请问:免费的模拟炒股软件哪个好?清理手机垃圾软件哪个好手机垃圾清理软件哪个好牡丹江教育云空间登录云端学习如何登录?如何增加百度收录如何提高百度收录率?YunOSyunOS是手机里的什么软件系统啊?
godaddy域名解析 息壤主机 便宜建站 20g硬盘 gateone 网站监控 ibrs java空间 java虚拟主机 小米数据库 免空 怎样建立邮箱 刀片服务器的优势 速度云 福建铁通 天翼云盘 33456 个人免费主页 腾讯总部在哪 空间登陆首页 更多