外文翻译-网上花店购物系统的实现与设计.docx

上传人:wj 文档编号:651575 上传时间:2023-04-29 格式:DOCX 页数:12 大小:23.45KB
下载 相关 举报
外文翻译-网上花店购物系统的实现与设计.docx_第1页
第1页 / 共12页
外文翻译-网上花店购物系统的实现与设计.docx_第2页
第2页 / 共12页
外文翻译-网上花店购物系统的实现与设计.docx_第3页
第3页 / 共12页
外文翻译-网上花店购物系统的实现与设计.docx_第4页
第4页 / 共12页
外文翻译-网上花店购物系统的实现与设计.docx_第5页
第5页 / 共12页
外文翻译-网上花店购物系统的实现与设计.docx_第6页
第6页 / 共12页
外文翻译-网上花店购物系统的实现与设计.docx_第7页
第7页 / 共12页
外文翻译-网上花店购物系统的实现与设计.docx_第8页
第8页 / 共12页
外文翻译-网上花店购物系统的实现与设计.docx_第9页
第9页 / 共12页
外文翻译-网上花店购物系统的实现与设计.docx_第10页
第10页 / 共12页
外文翻译-网上花店购物系统的实现与设计.docx_第11页
第11页 / 共12页
外文翻译-网上花店购物系统的实现与设计.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

外文翻译-网上花店购物系统的实现与设计.docx

《外文翻译-网上花店购物系统的实现与设计.docx》由会员分享,可在线阅读,更多相关《外文翻译-网上花店购物系统的实现与设计.docx(12页珍藏版)》请在冰点文库上搜索。

外文翻译-网上花店购物系统的实现与设计.docx

毕业设计外文资料翻译

1.外文资料翻译译文

在高性能计算领域中Java的研究、实践和经验

摘要

人们对Java的高性能计算(HPC)这一领域兴趣的不断上升是基于多核集群架构对这种语言的吸引力是独特的。

特别是内置的网络和多线程支持,以及

Java虚拟机(JVM)不断增加的性能。

然而,由于Java对于HPC现有的编程选项分析方面的限制使得它在这一领域的应用正在被推迟,而且随着绩效评估的深入和更新,以及缺乏对目前在这一领域的研究项目的了解,因此为了提高

Java的高性能计算,提出解决方案是必要的。

本文分析了在Java高性能计算方面的当前状态,是共享和分布式内存编程两者相结合,提出了相关的研究项目,最后,评估当前JavaHPC的解决方案以及研究开发两个共享存储环境和两个InfiniBand的多核集群的性能。

主要结论为一下几个方面:

(1)在Java HPC方面获取的重大利益已经导致许多项目的发展,尽管平时相当温和,这可能会阻止Java在这一领域的更高的发展;

(2)Java可以以本地编译语言实现几乎相同的性能,既为串行应用程序又为并行应用程序,是对HPC编程的替代;

(3)在共享内存和低延迟的网络中有效的java通讯方面支持的最新优势是桥接Java和高性能计算本地编译应用程序之间的间隙。

因此,Java的在这方面的良好前景吸引了产业界和学术界的注意,这是

java在高性能计算方面显著优势导致的。

1.简介

Java在它发行后不久,就已经成为一种主要的编程语言,尤其是在基于

web的分布式环境下,而且对于高性能计算方面来说是一种新兴的选项。

对于

Java的并行计算方面日益增长的兴趣是基于其吸引人的特征:

内置网络和多线程的支持,面向对象,平台无关性,可移植性,类型安全,安全性,拥有广泛的API和开发者广泛的社区,最后,它是计算机专业的学生主要培训语言。

此外,性能不再是一个障碍。

在过去几年里,Java和本地语言(如C语言和

Fortran语言)之间的性能差距已经缩小,由于Java虚拟机(JVM)的即时

(JIT)编译器,从Java字节中获取本机性能。

然而,java在高性能计算方面使用因缺乏此区域和彻底的和及时的最新的它们的性能评价的现有的编程选项分

第0页,共10页

析而被延迟,以及Java高性能计算在目前的研究项目的不了解,其解决方案需要,以提高其通过率。

关于HPC平台,新部署的显著增加安装内核的数量,以满足不断增长的计算能力需求。

这目前的趋势是为了强调多核集群的并行性和多线程能力的重要性。

在这种情况下的Java代表的并行应用的开发有吸引力的选择,因为它是一个多线程的语言,并提供了内置的网络支持,主要特点为充分利用混合共享/分布式存储架构。

因此,Java可以使用共享内存(节点内)和分布式存储器

(节点间)的通信网络支持的线程。

然而,尽管Java和本地语言之间的性能差距通常是较小的程序应用,它可以是特别依赖于低效率的通信库时的并行应用程序,这已阻碍了Java的高性能计算的采用。

因此,目前的研究工作集中于提供可扩展的Java通信中间件,特别是在高性能计算系统,如InfiniBand或

Myrinet的常用高速网络。

本文的其余部分安排如下。

第2节分析了Java的高性能计算领域中现有的编程选项。

第3节描述了在这一领域的当前研究工作,特别要强调的是,提供可扩展的高性能通信中间件。

第4节中提出了,Java的高性能计算方面解决方案,有代表性的综合绩效评价。

最后,第5节总结了我们的结束语。

2.Java的高性能计算

本节分析在Java的高性能计算中现有的编程选项,可分为:

(1)共享内存编程;

(2)Java的套接字;

(3)远程方法调用(RMI);

(4)在Java中的消息传递。

这些编程选项允许双方高级别库和Java并行应用程序的开发。

2.1.Java共享存储器编程

在Java的HPC中有几个选项用于共享内存编程,如使用Java线程,

OpenMP类似于实现,和Titanium的实现。

有几种选择在Java共享内存编程为高性能计算,例如使用Java线程,

OpenMP的类实现和钛。

因为Java已经内置了多线程支持,并行编程使用Java的线程是相当延伸,由于其较高的性能,尽管对于高性能计算而言它是相当低级的选项(工作并行化和共享数据访问同步通常难以实现)。

此外,该选项仅限于共享存储系统,该系统提供比分布式内存的机器较少的可扩展性。

尽管如此,分布式内存编程模型组合,可以克服这个限制。

最后,为了减少部分从线程的低层次细节编程的程序员,Java已经从1.5规范纳入了并发性工具,如线程池,任务,阻塞队列和低级别的高性能基元的高级并行编程例如CyclicBarrier。

第10页,共10页

该项目并行的Java(PJ)在这些并发实用程序里已经实行了一些高级抽象,如ParallelRegion(代码并行执行),ParallelTeam(即执行并行区域的线程组)

和并行For循环(线程间的工作并行),允许一个简单的线程基地共享内存编程。

此外,由于它是用于混合编程共享PJ还实现消息传递范例/分布存储器系统,

例如多核簇。

主要有两个OpenMP实现java对象,JOMPandJaMP.JOMP由编译器(书面在java中,利用JavaCC工具和运行时库的建立)。

编译器将Java源代码与

OpenMPjava源代码指令调用运行时库,从而使用java线程执行的并行性。

这个整个系统是“纯正”的java(100%java),从而可以运行在任何Java虚拟机。

这一实施的发展停在2000,它最近已被用于提供嵌套并行多核HPC系统。

然而,跳必须与一些实用程序进行优化,比如并发框架的替换等通过更有效的java.util.concurrent.cyclicbarrier实现的跳障碍。

实验评价通过+跳配置混合(java消息的消息传递库线程安全)显示出3倍的性能比同等纯消息传递场景。

虽然跳的可扩展性是有限的共享存储系统,它与分布式存储通信库(例如,消息传递库)的组合可以克服这个问题。

对象是javaOpenMP中Jackal的实现,基于软件的

java分布式共享内存(需求侧管理)执行。

因此,这个项目是有限的,这样的环境。

跳起后跳的方法,但利用并发实用程序,例如任务,因为它是最近的一个项目。

OpenMP类似的方法拥有使用Java线程的一些优点,如有一个代码更接近的顺序版本的更高层次的编程模型,并熟悉的使用OpenMP的开发,从而增加了可编程性。

然而,当前的OpenMP-like的实现仍是初步的工作和缺乏效率(忙等待JOMP屏障)和可移植性(JAMP)。

Titanium就是一个在加州大学伯克利分校被开发的Java的一个显式并行方言,它提供了全球分区地址空间(PGAS)的编程模型,如UPC和Co-array

Fortran,从而实现更高级的可编程性。

除了Java的的特点,增加了Titanium灵活和高效的多维数组和明确的并行SPMD控制模型轻量级同步。

此外,据报道它优于FortranMPIcode,由于其源极到源编译成C代码和使用本地库,诸如数值和高速网络的通信库。

然而,Titanium存在几个限制,例如避免使用

Java线程中的和缺乏便携性,因为它依赖于Titanium和C编译器。

2.2.Java网络编程接口

网络编程接口是一个用于网络通讯的低级编程接口,它允许发送在应用程序之间的数据流。

网络编程接口API被广泛延伸并可以被认为是标准的低级别通信层因为有上几乎每一个网络协议网络编程接口实现。

因此,网络编程接口已选择实施Java中的最低级网络通信。

然而,Java网络编程接口通常缺乏高效的高速网络支持,因此不得不求助于全网络支持低效的TCP/IP仿真。

TCP/IP仿真的例子IP是在InfiniBand(IPoIB)上的,IPX的Myrinet的低级别库

MX(MyrineteXpress)的顶部,并在SCI中的SCIP里。

Java有两个主要的网络编程接口实现,其中包括广泛扩展的JavaIO套接字,和JavaNIO(NewI/O)网络编程接口其中提供可扩展的非阻塞通信支持。

然而,这两种实现方式不提供高速网络支持也不提供HPC剪裁。

Ibis套机子解决了一

部分这些问题,增加Myrinet的支持,并且以Ibis为基础 ,并行分布式计算框架java。

然而,在JVM的接口程序库里限制实施它们的性能优势。

Java快速套接字(JFS)是Java高性能计算领域的套接字实现。

由于JVMIO

/NIO的套接字不提供高速网络支持也不提供HPC剪裁,而JFS克服了这些限制:

(1)用于增强共享内存(节点内)通信的重载的协议;

(2)分别在SCI,Myrinet和InfiniBand中的SCI套接字,Sockets-MX和套接字直接协议(SDP),支持高性能的本地网络编程接口通信,

(3)避免需要原始数据类型数组序列的;

(4)减少缓冲和不必要的副本。

因此,JFS是能够显著减少JVM套接字通信开销。

此外,它的互操作性和用户和应用程序的透明度通过反射允许其在广泛的并行和分布式目标应用直接适用性。

2.3.java远程方法调用

Java远程方法调用(RMI)协议允许在一个JVM中运行的对象调用另一个

JVM中运行一个对象的方法,提供Java的功能相当于远程过程调用(RPC)程序之间的远程通信。

这种方法的主要优点是它的简单性,但其主要缺点是由

RMI协议中所示的性能差。

ProActive是一种并行,多线程和分布式计算集中在电网应用的基于RMI的中间件。

ProActive是一个完全可移植的'纯粹'的Java(100%的Java)的中间件,其编程模型是基于元对象协议。

随着一组简单的原语的降低,这中间件简化的网格计算应用的编程:

在工作站上的集群,分布在局域网(LAN),或者用于电网。

此外,主动支持容错,负载平衡,流动性和安全性。

然而,使用RMI作为其默认传输层增加显著开销该中间件的操作。

RMI协议的优化已经是几个项目的目标,例如KaRMI,RMIX,Manta,IbisRMI,以及OptRMI.然而,使用非标准的API,存在缺乏便携性,与架空减少不充分的缺点,比套接字潜伏期时间更长,限制了其适用性。

因此,虽然Java的通信中间件(例如,消息传递库),使用是基于RMI的,当前Java通信库使用套接字是由于其开销较低。

在这种情况下,在高性能计算密钥中,由于较低层次的

API需要较高的编程来允许更高的吞吐量来实现。

2.外文原文

JavaintheHighPerformanceComputingarena:

Research,practiceandexperience

abstract

TherisinginterestinJavaforHighPerformanceComputing(HPC)isbasedontheappealingfeaturesofthislanguageforprogrammingmulti-coreclusterarchitectures,particularlythebuilt-innetworkingandmultithreadingsupport,andthecontinuousincreaseinJavaVirtualMachine(JVM)performance.However,itsadoptioninthisareaisbeingdelayedbythelackofanalysisoftheexistingprogrammingoptionsinJavaforHPCandthoroughandup-to-dateevaluationsoftheirperformance,aswellastheunawarenessoncurrentresearchprojectsinthisfield,whosesolutionsareneededinordertoboosttheembracementofJavainHPC.

ThispaperanalyzesthecurrentstateofJavaforHPC,bothforsharedanddistributedmemoryprogramming,presentsrelatedresearchprojects,andfinally,evaluatestheperformanceofcurrentJavaHPCsolutionsandresearchdevelopmentsontwosharedmemoryenvironmentsandtwoInfiniBandmulti-coreclusters.Themainconclusionsarethat:

(1)thesignificantinterestinJavaforHPChasledtothedevelopmentofnumerousprojects,althoughusuallyquitemodest,whichmayhavepreventedahigherdevelopmentofJavainthisfield;

(2)Javacanachievealmostsimilarperformancetonativelycompiledlanguages,bothforsequentialandparallelapplications,beinganalternativeforHPCprogramming;(3)therecentadvancesintheefficientsupportofJavacommunicationsonsharedmemoryandlow-latencynetworksarebridgingthegapbetweenJavaandnativelycompiledapplicationsinHPC.Thus,thegoodprospectsofJavainthisareaareattractingtheattentionofbothindustryandacademia,whichcantakesignificantadvantageofJavaadoptioninHPC.

1.Introduction

Javahasbecomealeadingprogramminglanguagesoonafteritsrelease,especiallyinweb-basedanddistributedcomputingenvironments,anditisanemergingoptionforHighPerformanceComputing(HPC)[1,2].TheincreasinginterestinJavaforparallelcomputingisbasedonitsappealingcharacteristics:

built-innetworkingandmultithreadingsupport,objectorientation,platformindependence,portability,typesafety,security,ithasanextensiveAPIandawidecommunityof

developers,andfinally,itisthemaintraininglanguageforcomputersciencestudents.Moreover,performanceisnolongeranobstacle.TheperformancegapbetweenJavaandnativelanguages(e.g.,CandFortran)hasbeennarrowingforthepastyears,thankstotheJust-in-Time(JIT)compileroftheJavaVirtualMachine(JVM)thatobtainsnativeperformancefromJavabytecode.However,theuseofJavainHPCisbeingdelayedbythelackofanalysisoftheexistingprogrammingoptionsinthisareaandthoroughandup-to-dateevaluationsoftheirperformance,aswellastheunawarenessoncurrentresearchprojectsinJavaforHPC,whosesolutionsareneededinordertoboostitsadoption.

RegardingHPCplatforms,newdeploymentsareincreasingsignificantlythenumberofcoresinstalledinordertomeettheevergrowingcomputationalpowerdemand.Thiscurrenttrendtomulti-coreclustersunderscorestheimportanceofparallelismandmultithreadingcapabilities[3].InthisscenarioJavarepresentsanattractivechoiceforthedevelopmentofparallelapplicationsasitisamultithreadedlanguageandprovidesbuilt-innetworkingsupport,keyfeaturesfortakingfulladvantageofhybridshared/distributedmemoryarchitectures.Thus,Javacanusethreadsinsharedmemory(intra-node)anditsnetworkingsupportfordistributedmemory(inter-node)communication.Nevertheless,althoughtheperformancegapbetweenJavaandnativelanguagesisusuallysmallforsequentialapplications,itcanbeparticularlyhighforparallelapplicationswhendependingoninefficientcommunicationlibraries,whichhashinderedJavaadoptionforHPC.Therefore,currentresearcheffortsarefocusedonprovidingscalableJavacommunicationmiddleware,especiallyonhigh-speednetworkscommonlyusedinHPCsystems,suchasInfiniBandorMyrinet.

Theremainderofthispaperisorganizedasfollows.Section2analyzestheexistingprogrammingoptionsinJavaforHPC.Section3describescurrentresearcheffortsinthisarea,withspecialemphasisonprovidingscalablecommunicationmiddlewareforHPC.AcomprehensiveperformanceevaluationofrepresentativesolutionsinJavaforHPCispresentedinSection4.Finally,Section5summarizesourconcludingremarks.

2.JavaforHighPerformanceComputing

ThissectionanalyzestheexistingprogrammingoptionsinJavaforHPC,whichcanbeclassifiedinto:

(1)sharedmemoryprogramming;

(2)Javasockets;(3)RemoteMethodInvocation(RMI);and(4)message-passinginJava.Theseprogrammingoptionsallowthedevelopmentofbothhigh-levellibrariesandJavaparallel

applications.

2.1.Javasharedmemoryprogramming

ThereareseveraloptionsforsharedmemoryprogramminginJavaforHPC,suchastheuseofJavathreads,OpenMP-likeimplementations,andTitanium.

AsJavahasbuilt-inmultithreadingsupport,theuseofJavathreads

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2