- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java-calcu 2.doc
Java与科学计算
Java和Web技术在信息发布、管理、传输等信息服务领域得到了广泛的应用,但在传统的科学与工程计算方面却应用的较少。
在科学与工程计算中引入Java和Web技术的主要原因是:
1 网络已经成为分布计算的重要基础,充分利用Internet连接大量、丰富、易访问的计算资源;
2 充分发挥Java在网络软件开发及对并行和分布计算支持的优势。
在Java运用于科学计算方面,目前需要解决两个主要问题:
首先是解决Java解释执行慢等性能问题;
第二是如何把现有的计算程序库与Java结合起来。
第一节Java与科学和工程计算
一、科学与工程计算程序中的并行性
1. 数据并行性
2. 功能并行性
3. 对象并行性
4. Metaproblem
二、Web和并行计算软件
Web和Java在科学计算软件中的下列方面将发挥重要的作用:
(1)用户界面设计: 包括问题描述、可视化、数据分析 等。
(2)在分布式系统上实现Metaproblem,进行软件集成。
(3)在高性能计算机系统上实现Metaproblem中的某个计算密集的模块。
三、用户界面设计
未来的高性能计算环境一般分为4个层次:
(1)完全可视化环境或脚本语言环境层:用于与具体问题领域相关的功能,如现有的图形界面。
(2)部分脚本语言环境层:以性能为代价,换取程序的可移植性,如Java applets。
(3)传统编译层:传统的高级语言,可以获得高性能,如Fortran、C、C++和Java。
(4)平台相关层:应用程序的程序员很少使用这一层次提供的方法。这一层次用户可以用非常不方便的编程方式获得最高的性能。
四、粗粒度软件集成
计算512位二进制数的因子分解是一个非常有趣的例子。可以利用Web现实计算任务。
例如,在Web上发布计算需求和计算能力,并动态地匹配计算任务和计算资源。
五、Java——科学和工程计算的基本语言
1. Java用于科学和工程计算的优缺点
Fortran 77、Fortran 90 和C++相比。
1 Java最大的优势在于将有很多人学习和使用它。
2 Java语言对并行性的支持
第二节Java的代码优化技术
一、引言
由于Java的字节码通常是在虚拟机上解释执行的,因此速度比较慢。一个重要的思路便是将成熟的编译技术移植到Java上,进行代码优化。
二、优化的不利因素
1 异常机制限制了代码的优化。
2 高度抽象的字节码使编译器失去了许多基于机器的优化的可能性。
第三节 Java 编译和执行模式优化
为了提高Java的性能,一个重要的思路便是将成熟的技术移植到Java上,进行代码优化;另一方面,选用更高效的编译和执行模式,如使用即时编译技术替代通常使用的解释器,可以大幅度地提高Java的性能。
编译与执行模式的优化
除了JIT外,人们还提出了连续编译模型(Continuous compiler model),它通过重叠执行过程和编译过程来达到提高速度的目的。其中解释器负责执行程序,而编译器负责将代码编译成本地的机器码,解释器和编译器是并发执行的。
第四节 Java运行时系统对科学计算的支持
独立于平台的数值计算工具缺乏,
成为分布式科学与工程程序开发的一个障碍。
1 开发Java运算库
2 使用HDF文件的Java程序接口
HDF (The NCSA Hierarchical Data Format),它是一种用于存储和交换科学数据的与平台无关的数据格式。
HDF用于管理大型的、复杂的数据集,包括图像、多维数组和表。HDF所支持的多种数据结构能够以任何方式集成在HDF文件中。由于HDF库中缺少Java(TM)的实现,因此,对于需直接访问HDF文件的Java程序来说,需要一个与HDF库本地代码的接口。
一般地,Java的性能可能会限制其在科学计算方面的使用,如Java能否用于大数值计算中的内部循环。但是,Java在可移植的接口、远程数据访问和数据可视化方面都可大显身手。
在一些混合环境下,Java可作交互计算的框架结构,通过连接一些本地代码程序和库来实现有效的计算。
第五节 Java在科学计算中的实际运用
1 大型计算软件 MATLAB和Mathematica
2 计算库
一、NetSolve
Tennessee 大学开发了NetSolve。NetSolve是一个基于网络的Client/Sever模式的软件,其主要目的是进行网络科学计算。
文档评论(0)