SOFTWARE: Compiler Techniques for High-Performance Computing in Java
软件:Java 中高性能计算的编译器技术
基本信息
- 批准号:0234345
- 负责人:
- 金额:$ 32万
- 依托单位:
- 依托单位国家:美国
- 项目类别:Continuing Grant
- 财政年份:2003
- 资助国家:美国
- 起止时间:2003-02-01 至 2006-01-31
- 项目状态:已结题
- 来源:
- 关键词:
项目摘要
Since its debut in 1995, Java has gained acceptance rapidly among software developers as the language of choice for many applications where portability and reliability are paramount. Java's support for clean object-oriented (OO) design, write once, run anywhere portability, comprehensive static type checking, automatic storage management, and safe execution semantics have dramatically improved programmer productivity and software reliability.Despite of this high level of interest, Java has made little headway in the arena of high-performancecomputing because it is too slow. The performance penalty is particularly acute when Java programs are written in a clean, object-oriented style that makes extensive use of polymorphism. Our recent studies of Java performance show that applications written in this object-oriented style incur performance penalties of a factor of ten or more over applications coded in a more tedious style similar to Fortran and C. If this performance gap cannot be bridged, the object-oriented benefits of Java will not be realized for compute-intensive applications, squandering an opportunity to revolutionize high-performance programming.We propose to address this problem by conducting research into compiler technologies that makeit possible to develop applications and component libraries using the full power of the Java languagewithout sacrificing significant run-time performance. Although these strategies are suitable for usein a compiler, we will incorporate the resulting technologies into a source-to-source optimizationtool. This tool will use application developer interaction to help optimize and package the Javasoftware.We believe that the development of Java implementation technology suitable for high-performancesoftware could catalyze a revolution in the way compute-intensive applications are constructedenabling the solution of more difficult scientific problems and the development of web applicationsthat have heretofore been out of reach. A large number of computational scientists share this vision, as evidenced by the experimental use of Java reported in the Java Grande Forum.The optimization of object-oriented programs has been an active area of programming languageresearch for nearly twenty years, but little attention has been focused on the optimization technology required for high-performance numerical computation. Prior to Java, type-safe object-oriented languages were not considered candidates for numerical applications. To achieve high performance for polymorphic numerical code, the language implementation must perform class specialization, which clones a type-specific version of a class containing polymorphic fields, object inlining, which replaces a variable containing a reference to an object by a tuple of variables containing the object's fields and method inlining, which replaces method calls by specialized versions of the correspondingmethod body.We believe that a judicious application of these three transformations combinedwith standard instruction-level code optimization can translate polymorphic object-oriented sourceprograms to machine code comparable in quality to optimized Fortran.In addition to these necessary optimizations, we propose two novel compilation strategies: almostwhole-program compilation, which relaxes the above optimizations' requirement of whole-program compilation to allow for more programming flexibility, and semantics modifying transformations which improve the communication between the compiler and the programmer to allow for even more aggressive optimizations.We also propose to apply the technologies resulting from this research to optimize several scientific applications written in Java.
自1995年首次亮相以来,Java已迅速获得软件开发人员的认可,成为许多对可移植性和可靠性至关重要的应用程序的首选语言。Java对干净的面向对象(OO)设计、一次编写、随处运行的可移植性、全面的静态类型检查、自动存储管理和安全执行语义的支持,极大地提高了程序员的生产率和软件的可靠性。尽管有如此高的兴趣,Java在高性能计算的竞技场上却进展甚微,因为它太慢了。当Java程序是以干净的、面向对象的风格编写的,并且广泛使用多态性时,性能损失尤其严重。我们最近对Java性能的研究表明,以这种面向对象的风格编写的应用程序的性能损失是以类似Fortran和C的更乏味的风格编写的应用程序的10倍或更多。如果这个性能差距不能被弥合,Java的面向对象的好处将无法实现计算密集型应用程序,浪费了一个机会,革命性的高性能programming.We建议,以解决这个问题进行研究编译器技术,使之成为可能,开发应用程序和组件库使用的Java语言的全部功能,而不牺牲显着的运行时性能。尽管这些策略适合在编译器中使用,我们将把这些技术合并到一个源到源优化工具中。这个工具将使用应用程序开发人员的互动,以帮助优化和包装的Java软件。我们相信,Java实现技术的发展,适用于高性能的软件可以催化革命的方式计算密集型应用程序的构建enabling解决更困难的科学问题和Web应用程序的开发,迄今为止已经遥不可及。大量的计算科学家都认同这一观点,正如Java Grande论坛上报道的Java的实验使用所证明的那样,面向对象程序的优化已经成为编程语言研究的一个活跃领域近20年,但很少有人关注高性能数值计算所需的优化技术。在Java之前,类型安全的面向对象语言并不被认为是数值应用程序的候选者。为了实现多态数字代码的高性能,语言实现必须执行类专门化,其克隆包含多态字段的类的类型特定版本,对象内联,其将包含对对象的引用的变量替换为包含对象的字段和方法内联的变量元组,我们相信,这三种转换的明智应用与标准的解释级代码优化相结合,可以将多态对象转换为面向源程序的机器代码的质量与优化的Fortran相当。除了这些必要的优化,我们提出了两个新的编译策略:almostwhole-program compilation(几乎全程序编译),它放松了上述优化对全程序编译的要求,以允许更大的编程灵活性,和语义修改转换,改善编译器和程序员之间的通信,以允许更积极的优化。我们还建议应用这项研究所产生的技术优化了几个用Java编写的科学应用程序。
项目成果
期刊论文数量(0)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)
数据更新时间:{{ journalArticles.updateTime }}
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
数据更新时间:{{ journalArticles.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ monograph.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ sciAawards.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ conferencePapers.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ patent.updateTime }}
Ken Kennedy其他文献
An algorithm for partial Grundy number on trees
- DOI:
10.1016/j.disc.2005.09.008 - 发表时间:
2005-11-28 - 期刊:
- 影响因子:
- 作者:
Zhengnan Shi;Wayne Goddard;Stephen T. Hedetniemi;Ken Kennedy;Renu Laskar;Alice McRae - 通讯作者:
Alice McRae
Compiler Analysis for Irregular Problems in Fortran D
Fortran D 中不规则问题的编译器分析
- DOI:
10.1007/3-540-57502-2_42 - 发表时间:
1992 - 期刊:
- 影响因子:0
- 作者:
R. V. Hanxleden;Ken Kennedy;C. Koelbel;R. Das;J. Saltz - 通讯作者:
J. Saltz
Compiling programs for distributed-memory multiprocessors
- DOI:
10.1007/bf00128175 - 发表时间:
1988-10-01 - 期刊:
- 影响因子:2.700
- 作者:
David Callahan;Ken Kennedy - 通讯作者:
Ken Kennedy
Monolithically Integrated Electrically Pumped Continuous-Wave III-V Quantum Dot Light Sources on Silicon
硅上单片集成电泵浦连续波 III-V 量子点光源
- DOI:
10.1109/jstqe.2017.2693025 - 发表时间:
2017-04 - 期刊:
- 影响因子:4.9
- 作者:
Mengya Liao;Siming Chen;Suguo Huo;Si Chen;Jiang Wu;Mingchu Tang;Ken Kennedy;Wei Li;Mickael Martin;Thierry Baron;Chaoyuan Jin;Ian Ross;Alwyn Seeds;Huiyun Liu - 通讯作者:
Huiyun Liu
Introducing novel light management to design a hybrid high concentration photovoltaic/water splitting system
引入新颖的光管理来设计混合高聚光光伏/水分解系统
- DOI:
- 发表时间:
2015 - 期刊:
- 影响因子:0
- 作者:
J. Videira;K. Barnham;A. Hankin;J. P. Connolly;M. Leak;Jonathan Johnson;G. Kelsall;Ken Kennedy;J. Roberts;Alexander J. Cowan;A. Chatten - 通讯作者:
A. Chatten
Ken Kennedy的其他文献
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
{{ truncateString('Ken Kennedy', 18)}}的其他基金
NGS: GrADS: Efficient Script-Based Application Development for Networked High Performance Computing Environments
NGS:GrADS:针对网络高性能计算环境的高效基于脚本的应用程序开发
- 批准号:
0103759 - 财政年份:2002
- 资助金额:
$ 32万 - 项目类别:
Standard Grant
Next Generation Software: Grid Application Development Software (GrADS)
下一代软件:网格应用开发软件 (GrADS)
- 批准号:
9975020 - 财政年份:1999
- 资助金额:
$ 32万 - 项目类别:
Continuing Grant
Special Project: A Student Conference on Computational Science and Engineering for Minority Institutions in the South-Central United States
特别项目:美国中南部少数族裔机构计算科学与工程学生会议
- 批准号:
9522903 - 财政年份:1995
- 资助金额:
$ 32万 - 项目类别:
Standard Grant
Retooling the Supercomputing Community for Scalable Parallelism
重组超级计算社区以实现可扩展的并行性
- 批准号:
9418606 - 财政年份:1994
- 资助金额:
$ 32万 - 项目类别:
Continuing grant
Software Environments and Scalable High Level Data Structure Extensions of Fortran for Irregular Loosely Synchronous Problems on SIMD and MIMD Parallel Computers
SIMD 和 MIMD 并行计算机上不规则松散同步问题的 Fortran 软件环境和可扩展高级数据结构扩展
- 批准号:
9213821 - 财政年份:1993
- 资助金额:
$ 32万 - 项目类别:
Continuing grant
Postdoctoral Research Associateship in Computational Science and Engineering
计算科学与工程博士后研究助理
- 批准号:
9310307 - 财政年份:1993
- 资助金额:
$ 32万 - 项目类别:
Standard Grant
U.S.-Austria Cooperative Research on Virtual Shared Memory for Distributed-Memory Machines (Computer Science)
美国-奥地利关于分布式内存机虚拟共享内存的合作研究(计算机科学)
- 批准号:
8912776 - 财政年份:1990
- 资助金额:
$ 32万 - 项目类别:
Standard Grant
Report on the Scientific Contributions of Computer Science (for the NSF Advisory Committee for Computer Research)
计算机科学的科学贡献报告(供 NSF 计算机研究咨询委员会使用)
- 批准号:
8912613 - 财政年份:1989
- 资助金额:
$ 32万 - 项目类别:
Standard Grant
Center for Research on Parallel Computation
并行计算研究中心
- 批准号:
8809615 - 财政年份:1989
- 资助金额:
$ 32万 - 项目类别:
Cooperative Agreement
相似海外基金
Compiler Tools and Techniques
编译器工具和技术
- 批准号:
1000231947-2017 - 财政年份:2019
- 资助金额:
$ 32万 - 项目类别:
Canada Research Chairs
Optimizing Compiler Techniques for Parallel and Heterogeneous Architectures
优化并行和异构架构的编译器技术
- 批准号:
542793-2019 - 财政年份:2019
- 资助金额:
$ 32万 - 项目类别:
Alexander Graham Bell Canada Graduate Scholarships - Master's
Compiler Tools and Techniques
编译器工具和技术
- 批准号:
1000231947-2017 - 财政年份:2018
- 资助金额:
$ 32万 - 项目类别:
Canada Research Chairs
Compiler Tools and Techniques
编译器工具和技术
- 批准号:
1000223884-2010 - 财政年份:2017
- 资助金额:
$ 32万 - 项目类别:
Canada Research Chairs
Compiler Tools and Techniques
编译器工具和技术
- 批准号:
1000223884-2010 - 财政年份:2016
- 资助金额:
$ 32万 - 项目类别:
Canada Research Chairs
XPS:EXPL:DSD: Language Abstraction, Annotation, Compiler Optimization Techniques for Efficient CFD Computation
XPS:EXPL:DSD:用于高效 CFD 计算的语言抽象、注释、编译器优化技术
- 批准号:
1533822 - 财政年份:2015
- 资助金额:
$ 32万 - 项目类别:
Standard Grant
Compiler Tools and Techniques
编译器工具和技术
- 批准号:
1223884-2010 - 财政年份:2015
- 资助金额:
$ 32万 - 项目类别:
Canada Research Chairs
SHF: Small: Compiler and Architectural Techniques for Soft Error Resilience
SHF:小型:软错误恢复能力的编译器和架构技术
- 批准号:
1527463 - 财政年份:2015
- 资助金额:
$ 32万 - 项目类别:
Standard Grant
Compiler Tools and Techniques
编译器工具和技术
- 批准号:
1000223884-2010 - 财政年份:2014
- 资助金额:
$ 32万 - 项目类别:
Canada Research Chairs
Using supervised learning techniques to improve compiler decisions
使用监督学习技术来改进编译器决策
- 批准号:
385160-2009 - 财政年份:2013
- 资助金额:
$ 32万 - 项目类别:
Collaborative Research and Development Grants