Download presentation
Presentation is loading. Please wait.
Published byBernard Bishop Modified over 9 years ago
1
1CPSD Software Infrastructure for Application Development Laxmikant Kale David Padua Computer Science Department
2
2CPSD Computer Science Roles… Work closely with mathematicians and engineers Give engineers state-of-the-art tools Provide benchmark for Java development Symbolic support of FE software generation Interaction with mathematicians and engineers HPC environment Java compiler Runtime infrastructure
3
3CPSD HPC Environment Symbolic algebra support Java Compiler F2J Parallel InfrastructureUniprocessor Fortran code Container Semantics
4
4CPSD Why Java? Object model Modular and reusable code development —Amortize the high cost of software development for high performance scientific codes Much faster to debug and develop —Disciplined memory model —garbage collection Java Grande Industry trend —May replace C++
5
5CPSD Runtime environments Object-based runtime infrastructure Provide parallel support libraries past work: parallel Java, object-based load balancing We have developed parallel Java Object based parallelism (not just threads) Fast asynchronous remote method invocation —Substantially faster than RMI Can inter-operate with other languages/paradigms —Implemented in Converse framework —modules written in Java, MPI-C, Charm++ etc. can co- exist [PDPTA -97] “Design and implementation of parallel Java…”
6
6CPSD Object-based load balancing Charm++ supports object based load balancing Parallel C++ Dynamic and periodic balancing —seed movement —migration mechanisms with automatic forwarding —migration strategies Used in molecular dynamics application Used for cluster adaptivity Can be adapted for Java
7
7CPSD Load balancing: before
8
8CPSD Load balancing: after
9
9CPSD Java Compiler Oriented to the needs of the project Targets uniprocessors and parallel machines Use advanced analysis techniques Builds on expertise in compilers Promise of Java Extensive static analysis
10
10CPSD Container Class analysis Goal: To optimize symbolic Java applications with extensive use of container classes or numerical Java codes using sparse matrices Program optimization Hard-wire semantics of Java container classes into the compiler —java.util.Vector —java.util.Hashtable —sparse matrix
11
11CPSD Container analysis contd. Design optimization techniques to exploit their semantic properties access analysis commutativity analysis exploit associativity loop parallelization pointer analysis
12
Performance CPSD
13
CPSD
14
14CPSD Ongoing and future work Develop Java compiler for scientific applications Fortran to Java translator Interactions with IBM researchers Interested in compilation issues Grad student exchanges Consultation on engineering applications Optimization and parallelization Code organization Work with mathematicians Symbolic analysis Compiler strategies
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.