ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:23.45KB ,
资源ID:651575      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-651575.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(外文翻译-网上花店购物系统的实现与设计.docx)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

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

1、毕业设计外文资料翻译1. 外文资料翻译译文在高性能计算领域中 Java 的研究、实践和经验摘要人们对 Java 的高性能计算(HPC)这一领域兴趣的不断上升是基于多核集群架构对这种语言的吸引力是独特的。特别是内置的网络和多线程支持,以及Java 虚拟机(JVM)不断增加的性能。然而,由于 Java 对于 HPC 现有的编程选项分析方面的限制使得它在这一领域的应用正在被推迟,而且随着绩效评估的深入和更新,以及缺乏对目前在这一领域的研究项目的了解,因此为了提高Java 的高性能计算,提出解决方案是必要的。本文分析了在 Java 高性能计算方面的当前状态,是共享和分布式内存编程两者相结合,提出了相关

2、的研究项目,最后,评估当前 Java HPC 的解决方案以及研究开发两个共享存储环境和两个 InfiniBand 的多核集群的性能。主要结论为一下几个方面:(1) 在 JavaHPC 方面获取的重大利益已经导致许多项目的发展,尽管平时相当温和,这可能会阻止 Java 在这一领域的更高的发展;(2) Java 可以以本地编译语言实现几乎相同的性能,既为串行应用程序又为并行应用程序,是对 HPC 编程的替代;(3) 在共享内存和低延迟的网络中有效的 java 通讯方面支持的最新优势是桥接 Java 和高性能计算本地编译应用程序之间的间隙。因此,Java 的在这方面的良好前景吸引了产业界和学术界的注

3、意,这是java 在高性能计算方面显著优势导致的。1. 简介Java 在它发行后不久,就已经成为一种主要的编程语言,尤其是在基于web 的分布式环境下,而且对于高性能计算方面来说是一种新兴的选项。对于Java 的并行计算方面日益增长的兴趣是基于其吸引人的特征:内置网络和多线程的支持,面向对象,平台无关性,可移植性,类型安全,安全性,拥有广泛的 API 和开发者广泛的社区,最后,它是计算机专业的学生主要培训语言。此外,性能不再是一个障碍。在过去几年里,Java 和本地语言(如 C 语言和Fortran 语言)之间的性能差距已经缩小,由于 Java 虚拟机(JVM)的即时(JIT)编译器,从 Ja

4、va 字节中获取本机性能。然而,java 在高性能计算方面使用因缺乏此区域和彻底的和及时的最新的它们的性能评价的现有的编程选项分第 0 页,共 10 页析而被延迟,以及 Java 高性能计算在目前的研究项目的不了解,其解决方案需要,以提高其通过率。关于 HPC 平台,新部署的显著增加安装内核的数量,以满足不断增长的计算能力需求。这目前的趋势是为了强调多核集群的并行性和多线程能力的重要性。在这种情况下的 Java 代表的并行应用的开发有吸引力的选择,因为它是一个多线程的语言,并提供了内置的网络支持,主要特点为充分利用混合共享/ 分布式存储架构。因此,Java 可以使用共享内存(节点内)和分布式存

5、储器(节点间)的通信网络支持的线程。然而,尽管 Java 和本地语言之间的性能差距通常是较小的程序应用,它可以是特别依赖于低效率的通信库时的并行应用程序,这已阻碍了 Java 的高性能计算的采用。因此,目前的研究工作集中于提供可扩展的 Java 通信中间件,特别是在高性能计算系统,如 InfiniBand 或Myrinet 的常用高速网络。本文的其余部分安排如下。第 2 节分析了 Java 的高性能计算领域中现有的编程选项。第 3 节描述了在这一领域的当前研究工作,特别要强调的是,提供可扩展的高性能通信中间件。第 4 节中提出了,Java 的高性能计算方面解决方案,有代表性的综合绩效评价。最后

6、,第 5 节总结了我们的结束语。2. Java 的高性能计算本节分析在 Java 的高性能计算中现有的编程选项,可分为:(1) 共享内存编程;(2) Java 的套接字;(3) 远程方法调用(RMI);(4) 在 Java 中的消息传递。这些编程选项允许双方高级别库和 Java 并行应用程序的开发。2.1. Java 共享存储器编程在 Java 的 HPC 中有几个选项用于共享内存编程,如使用 Java 线程,OpenMP 类似于实现,和 Titanium 的实现。有几种选择在 Java 共享内存编程为高性能计算,例如使用 Java 线程,OpenMP 的类实现和钛。因为 Java 已经内置了

7、多线程支持,并行编程使用 Java 的线程是相当延伸,由于其较高的性能,尽管对于高性能计算而言它是相当低 级的选项(工作并行化和共享数据访问同步通常难以实现)。此外,该选项仅限于共享存储系统,该系统提供比分布式内存的机器较少的可扩展性。尽管如此, 分布式内存编程模型组合,可以克服这个限制。最后,为了减少部分从线程的 低层次细节编程的程序员,Java 已经从 1.5 规范纳入了并发性工具,如线程池, 任务,阻塞队列和低级别的高性能基元的高级并行编程例如 CyclicBarrier。第 10 页,共 10 页该项目并行的 Java(PJ)在这些并发实用程序里已经实行了一些高级抽象, 如 Paral

8、lelRegion(代码并行执行),ParallelTeam(即执行并行区域的线程组)和并行 For 循环(线程间的工作并行),允许一个简单的线程基地共享内存编程。此外,由于它是用于混合编程共享 PJ 还实现消息传递范例/分布存储器系统,例如多核簇。主要有两个 OpenMP 实现 java 对象,JOMP and JaMP .JOMP 由编译器(书面在 java 中,利用 JavaCC 工具和运行时库的建立)。编译器将 Java 源代码与OpenMPjava 源代码指令调用运行时库,从而使用 java 线程执行的并行性。这个整个系统是“纯正”的 java(100% java),从而可以运行在任

9、何 Java 虚拟机。这一实施的发展停在 2000,它最近已被用于提供嵌套并行多核 HPC 系统。然而, 跳必须与一些实用程序进行优化,比如并发框架的替换等通过更有效的 java.util. concurrent. cyclicbarrier 实现的跳障碍。实验评价通过+跳配置混合(java 消息的消息传递库线程安全)显示出 3 倍的性能比同等纯消息传递场景。虽然跳的可扩展性是有限的共享存储系统,它与分布式存储通信库(例如,消息传递库) 的组合可以克服这个问题。对象是 java OpenMP 中 Jackal 的实现,基于软件的java 分布式共享内存(需求侧管理)执行。因此,这个项目是有限的

10、,这样的环境。跳起后跳的方法,但利用并发实用程序,例如任务,因为它是最近的一个项目。OpenMP 类似的方法拥有使用 Java 线程的一些优点,如有一个代码更接近的顺序版本的更高层次的编程模型,并熟悉的使用 OpenMP 的开发,从而增加了可编程性。然而,当前的 OpenMP-like 的实现仍是初步的工作和缺乏效率(忙等待 JOMP 屏障)和可移植性(JAMP)。Titanium 就是一个在加州大学伯克利分校被开发的 Java 的一个显式并行方言,它提供了全球分区地址空间(PGAS)的编程模型,如 UPC 和 Co-arrayFortran,从而实现更高级的可编程性。除了 Java 的的特点

11、,增加了 Titanium 灵活和高效的多维数组和明确的并行 SPMD 控制模型轻量级同步。此外,据报道它优于 Fortran MPI code ,由于其源极到源编译成 C 代码和使用本地库,诸如数值和高速网络的通信库。然而,Titanium 存在几个限制,例如避免使用Java 线程中的和缺乏便携性,因为它依赖于 Titanium 和 C 编译器。2.2. Java 网络编程接口网络编程接口是一个用于网络通讯的低级编程接口,它允许发送在应用程序之间的数据流。网络编程接口 API 被广泛延伸并可以被认为是标准的低级别通信层因为有上几乎每一个网络协议网络编程接口实现。因此,网络编程接口已选择实施

12、Java 中的最低级网络通信。然而,Java 网络编程接口通常缺乏高效的高速网络支持,因此不得不求助于全网络支持低效的 TCP / IP 仿真。 TCP / IP 仿真的例子 IP 是在 InfiniBand(IPoIB)上的,IPX 的 Myrinet 的低级别库MX(Myrinet eXpress)的顶部,并在 SCI 中的 SCIP 里。Java 有两个主要的网络编程接口实现,其中包括广泛扩展的 Java IO 套接字, 和 Java NIO(New I / O)网络编程接口其中提供可扩展的非阻塞通信支持。然而, 这两种实现方式不提供高速网络支持也不提供 HPC 剪裁。Ibis 套机子解

13、决了一部分这些问题,增加 Myrinet 的支持,并且以 Ibis 为基础,并行分布式计算框架 java。然而,在 JVM 的接口程序库里限制实施它们的性能优势。Java 快速套接字(JFS)是 Java 高性能计算领域的套接字实现。由于 JVM IO/ NIO 的套接字不提供高速网络支持也不提供 HPC 剪裁,而 JFS 克服了这些限制:(1) 用于增强共享内存(节点内)通信的重载的协议;(2) 分别在 SCI, Myrinet 和 InfiniBand 中的 SCI 套接字,Sockets-MX 和套接字直接协议 (SDP),支持高性能的本地网络编程接口通信,(3) 避免需要原始数据类型数

14、组序列的;(4) 减少缓冲和不必要的副本。因此,JFS 是能够显著减少 JVM 套接字通信开销。此外,它的互操作性和用户和应用程序的透明度通过反射允许其在广泛的并行和分布式目标应用直接适用性。2.3. java 远程方法调用Java 远程方法调用(RMI)协议允许在一个 JVM 中运行的对象调用另一个JVM 中运行一个对象的方法,提供 Java 的功能相当于远程过程调用(RPC)程序之间的远程通信。这种方法的主要优点是它的简单性,但其主要缺点是由RMI 协议中所示的性能差。ProActive 是一种并行,多线程和分布式计算集中在电网应用的基于 RMI 的中间件。ProActive 是一个完全可

15、移植的纯粹的 Java(100的 Java)的中间件, 其编程模型是基于元对象协议。随着一组简单的原语的降低,这中间件简化的网格计算应用的编程:在工作站上的集群,分布在局域网(LAN),或者用于电网。此外,主动支持容错,负载平衡,流动性和安全性。然而,使用 RMI 作为其默认传输层增加显著开销该中间件的操作。RMI 协议的优化已经是几个项目的目标,例如 KaRMI, RMIX, Manta ,Ibis RMI , 以及 Opt RMI .然而,使用非标准的 API,存在缺乏便携性,与架空减少不充分的缺点,比套接字潜伏期时间更长,限制了其适用性。因此,虽然 Java 的通信中间件(例如,消息传递

16、库),使用是基于 RMI 的,当前 Java 通信库使用套接 字是由于其开销较低。在这种情况下,在高性能计算密钥中,由于较低层次的API 需要较高的编程来允许更高的吞吐量来实现。2. 外文原文Java in the High Performance Computing arena:Research, practice and experiencea b s t r a c tThe rising interest in Java for High Performance Computing (HPC) is based on the appealing features of this lan

17、guage for programming multi-core cluster architectures, particularly the built-in networking and multithreading support, and the continuous increase in Java Virtual Machine (JVM) performance. However, its adoption in this area is being delayed by the lack of analysis of the existing programming opti

18、ons in Java for HPC and thorough and up-to-date evaluations of their performance, as well as the unawareness on current research projects in this field, whose solutions are needed in order to boost the embracement of Java in HPC.This paper analyzes the current state of Java for HPC, both for shared

19、and distributed memory programming, presents related research projects, and finally, evaluates the performance of current Java HPC solutions and research developments on two shared memory environments and two InfiniBand multi-core clusters. The main conclusions are that: (1) the significant interest

20、 in Java for HPC has led to the development of numerous projects, although usually quite modest, which may have prevented a higher development of Java in this field; (2) Java can achieve almost similar performance to natively compiled languages, both for sequential and parallel applications, being a

21、n alternative for HPC programming; (3) the recent advances in the efficient support of Java communications on shared memory and low-latency networks are bridging the gap between Java and natively compiled applications in HPC. Thus, the good prospects of Java in this area are attracting the attention

22、 of both industry and academia, which can take significant advantage of Java adoption in HPC.1. IntroductionJava has become a leading programming language soon after its release, especially in web-based and distributed computing environments, and it is an emerging option for High Performance Computi

23、ng (HPC) 1,2. The increasing interest in Java for parallel computing is based on its appealing characteristics: built- in networking and multithreading support,object orientation, platform independence, portability, type safety, security, it has an extensive API and a wide community ofdevelopers, an

24、d finally, it is the main training language for computer science students. Moreover, performance is no longer an obstacle. The performance gap between Java and native languages (e.g., C and Fortran) has been narrowing for the past years, thanks to the Just-in-Time (JIT) compiler of the Java Virtual

25、Machine (JVM) that obtains native performance from Java bytecode. However, the use of Java in HPC is being delayed by the lack of analysis of the existing programming options in this area and thorough and up-to-date evaluations of their performance, as well as the unawareness on current researchproj

26、ects in Java for HPC, whose solutions are needed in order to boost its adoption.Regarding HPC platforms, new deployments are increasing significantly the number of cores installed in order to meet the ever growing computational power demand. This current trend to multi-core clusters underscores the

27、importance of parallelism and multithreading capabilities 3. In this scenario Java represents an attractive choice for the development of parallel applications as it is a multithreaded language and provides built-in networking support, key features for taking full advantage of hybrid shared/distribu

28、ted memory architectures. Thus, Java can use threads in shared memory (intra-node) and its networking support for distributed memory (inter-node) communication. Nevertheless, although the performance gap between Java and native languages is usually small for sequential applications, it can be partic

29、ularly high for parallel applications when depending on inefficient communication libraries, which has hindered Java adoption for HPC. Therefore,current research efforts are focused on providing scalable Java communication middleware, especially on high-speed networks commonly used in HPC systems, s

30、uch as InfiniBand or Myrinet.The remainder of this paper is organized as follows. Section 2 analyzes the existing programming options in Java for HPC. Section 3 describes current research efforts in this area, with special emphasis on providing scalable communication middleware for HPC. A comprehens

31、ive performance evaluation of representative solutions in Java for HPC is presented in Section 4. Finally, Section 5 summarizes our concluding remarks.2. Java for High Performance ComputingThis section analyzes the existing programming options in Java for HPC, which can be classified into: (1) share

32、d memory programming; (2) Java sockets; (3) Remote Method Invocation (RMI); and (4) message-passing in Java. These programming options allow the development of both high-level libraries and Java parallelapplications.2.1. Java shared memory programmingThere are several options for shared memory programming in Java for HPC, such as the use of Java threads, OpenMP-like implementations, and Titanium.As Java has built-in multithreading support, the use of Java threads

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

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