SOFTWARE: Compiler Techniques for High-Performance Computing in Java
SOFTWARE: Compiler Techniques for High-Performance Computing in Java
批准号:
0234345
负责人:
Ken Kennedy
金额:
$32.0万
依托单位国家:
美国
项目类别:
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.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
NGS: GrADS: Efficient Script-Based Application Development for Networked High Performance Computing Environments
-
批准号:0103759
-
项目类别:Standard Grant
-
资助金额:$130.0万
-
财政年份:2002
-
负责人:Ken Kennedy
-
依托单位:
Next Generation Software: Grid Application Development Software (GrADS)
-
批准号:9975020
-
项目类别:Continuing Grant
-
资助金额:$560.0万
-
财政年份:1999
-
负责人:Ken Kennedy
-
依托单位:
Special Project: A Student Conference on Computational Science and Engineering for Minority Institutions in the South-Central United States
-
批准号:9522903
-
项目类别:Standard Grant
-
资助金额:$0.0万
-
财政年份:1995
-
负责人:Ken Kennedy
-
依托单位:
Retooling the Supercomputing Community for Scalable Parallelism
-
批准号:9418606
-
项目类别:Continuing grant
-
资助金额:$85.04万
-
财政年份:1994
-
负责人:Ken Kennedy
-
依托单位:
Software Environments and Scalable High Level Data Structure Extensions of Fortran for Irregular Loosely Synchronous Problems on SIMD and MIMD Parallel Computers
-
批准号:9213821
-
项目类别:Continuing grant
-
资助金额:$185.2万
-
财政年份:1993
-
负责人:Ken Kennedy
-
依托单位:
Postdoctoral Research Associateship in Computational Science and Engineering
-
批准号:9310307
-
项目类别:Standard Grant
-
资助金额:$4.38万
-
财政年份:1993
-
负责人:Ken Kennedy
-
依托单位:
A Workshop on Compiler Infrastructure
-
批准号:9225049
-
项目类别:Standard Grant
-
资助金额:$2.17万
-
财政年份:1993
-
负责人:Ken Kennedy
-
依托单位:
U.S.-Austria Cooperative Research on Virtual Shared Memory for Distributed-Memory Machines (Computer Science)
-
批准号:8912776
-
项目类别:Standard Grant
-
资助金额:$1.68万
-
财政年份:1990
-
负责人:Ken Kennedy
-
依托单位:
Report on the Scientific Contributions of Computer Science (for the NSF Advisory Committee for Computer Research)
-
批准号:8912613
-
项目类别:Standard Grant
-
资助金额:$0.0万
-
财政年份:1989
-
负责人:Ken Kennedy
-
依托单位:
Center for Research on Parallel Computation
-
批准号:8809615
-
项目类别:Cooperative Agreement
-
资助金额:$1343.13万
-
财政年份:1989
-
负责人:Ken Kennedy
-
依托单位:
Advanced Techniques in Interprocedural Analysis
-
批准号:8706229
-
项目类别:Continuing grant
-
资助金额:$0.0万
-
财政年份:1988
-
负责人:Ken Kennedy
-
依托单位:
An Automated System for Deriving Efficient Parallel Programs
-
批准号:8720277
-
项目类别:Continuing Grant
-
资助金额:$175.76万
-
财政年份:1987
-
负责人:Ken Kennedy
-
依托单位:
"Parasol: A Laboratory for Parallel Software Technology"
-
批准号:8619893
-
项目类别:Continuing grant
-
资助金额:$264.19万
-
财政年份:1987
-
负责人:Ken Kennedy
-
依托单位:
A Programming Environment to Support Parallel Processing on Supercomputers
-
批准号:8518578
-
项目类别:Continuing grant
-
资助金额:$63.57万
-
财政年份:1986
-
负责人:Ken Kennedy
-
依托单位:
Interprocedural Information in a Programming Environment
-
批准号:8503608
-
项目类别:Continuing Grant
-
资助金额:$18.54万
-
财政年份:1985
-
负责人:Ken Kennedy
-
依托单位:
The Computation and Use of Interprocedural Information in a Programming Environment
-
批准号:8303638
-
项目类别:Continuing grant
-
资助金额:$0.0万
-
财政年份:1983
-
负责人:Ken Kennedy
-
依托单位:
An Experimental Computer Network to Support Numerical Computation
-
批准号:8121884
-
项目类别:Continuing Grant
-
资助金额:$235.53万
-
财政年份:1982
-
负责人:Ken Kennedy
-
依托单位:
An Optimizing Program Management System For Vector Fortran
-
批准号:8104006
-
项目类别:Standard Grant
-
资助金额:$0.0万
-
财政年份:1981
-
负责人:Ken Kennedy
-
依托单位:
Acquisition of Computer Science Research Equipment
-
批准号:8008887
-
项目类别:Standard Grant
-
资助金额:$0.0万
-
财政年份:1980
-
负责人:Ken Kennedy
-
依托单位:
An Investigation of Compiler Optimization Techniques ThroughThe Use of a Programming Laboratory
-
批准号:7724093
-
项目类别:Standard Grant
-
资助金额:$0.0万
-
财政年份:1978
-
负责人:Ken Kennedy
-
依托单位:
海外基金