1 / 37

Methods and Systems for High Performance Computing with Java

Vladimir Getov 12 June 2006. Methods and Systems for High Performance Computing with Java. Part 1: Introduction. Relevant publications: V. Getov. Java in High-Performance Computing – Guest Editorial . FGCS , vol. 18(2), v-vi, Oct. 2001.

ivi
Download Presentation

Methods and Systems for High Performance Computing with Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Vladimir Getov 12 June 2006 Methods and Systems for High Performance Computing with Java

  2. Part 1: Introduction Relevant publications: • V. Getov. Java in High-Performance Computing – Guest Editorial. FGCS, vol. 18(2), v-vi, Oct. 2001. • M. Philippsen, R. Boisvert, V. Getov, R. Pozo, J. Moreira, D. Gannon, G. Fox. JavaGrande – High Performance Computing with Java. Proceedings of PARA 2000 Conference, LNCS, Springer, vol. 1947, 20-36, 2001. • High Performance Computing Using Java Technology – Tutorial lecture. ACM JavaGrande and JavaOne2001 Conferences, San Francisco, June 2001.

  3. Some Important Facts About Current Computer Systems • The gap between processing speed and memory access speed continues to grow; • So does the gap between high-level programming models and underlying hardware architectures; • The wide variety of hardware architectures makes it particularly difficult to achieve portable high performance; • The pace of innovation is such that investment in tuning for one machine may not pay off before that machine is obsolete.

  4. Pros/Cons of using Java • Pros: Java offers tremendous potential for portability and heterogeneous execution - Bytecode Representation, RMI, Object Serialization • Cons: Java still suffers a significant performance penalty and as with any new language, the thought of rewriting existing codes brings reluctance and lack of enthusiasm.

  5. Background Observations • Java thread model is insufficient • Message Passing model is important to support • Performance is critical • Many applications need “high” performance • Proper numerical computing • Complex, arrays, performance, reproducibility

  6. Part 2: Message Passing in Java Relevant publications: • B. Carpenter, V. Getov, G. Judd, A. Skjellum, G. Fox. MPJ: MPI-like Message Passing for Java. Concurrency: Practice and Experience, vol. 12 (11), 1019-1038, 2000. •  V. Getov, P. Gray, V. Sunderam. Aspects of Portability and Distributed Execution for JNI-Wrapped Message Passing Libraries. Concurrency: Practice and Experience, vol. 12 (11), 1039-1050, 2000. • V. Getov, M. Philippsen. Java Communications for Large-Scale Parallel Computing. Proceedings of SciComp'01 Conference, LNCS, Springer, vol. 2179, 33-45, 2001.

  7. Message Passing - Motivation • The existing communication packages in Java - RMI, API to BSD sockets - are optimized for Client/Server programming • The symmetric model of communication is captured in the MPI standard - MPI-1 and MPI-2 • An MPI-like message-passing API specification is needed to enable the development of portable JavaGrande applications

  8. Early MPI-like Efforts - 1 • mpiJava - Modeled after the C++ binding for MPI. Implementation through JNI wrappers to native MPI software. • JavaMPI - Automatic generation of wrappers to legacy MPI libraries. C-like implementation based on the JCI code generator. • MPIJ - Pure Java implementation of MPI closely based on the C++ binding. A large subset of MPI is implemented using native marshaling of primitive Java types.

  9. Early MPI-like Efforts - 2 • JMPI - MPI Soft Tech Inc. have announced a commercial effort under way to develop a message passing environment for Java. • Others • Existing ports - Linux, Solaris (both WS clusters and SMPs), AIX (both WS clusters and SP2), Windows NT clusters, Origin-2000, Fujitsu AP3000, and Hitachi SR2201. • Java + MPI codes - growing variety including full applications

  10. MPJ API Specification • Builds on the MPI-1 Specification and the Java Specification. • Immediate standardization for common message passing programs in Java • Basis for conversion between C, C++, Fortran and Java. • Eventually, support for aspects of MPI-2 as well as possible improvements to the Java language.

  11. Multidimensional arrays • In Java an “n-dimensional array” is equivalent to a one-dimensional array of (n - 1)-dimensional arrays. • In MPJ, message buffers are always one-dimensional arrays, but element type may be an object, which may have array type - hence multidimensional arrays can appear as message buffers.

  12. Java multidimensional arrays Array of Arrays

  13. Java multidimensional arrays Java multidimensional arrays are not indivisible objects: could have intra-array aliasing and "partial overlaps" with other arrays

  14. Naming Conventions • All MPI classes belong to the package mpi. • Conventions for capitalization, etc, in class and member namesgenerally follow the recommendations of Sun's Java code conventions • consistent with the MPI C++ binding

  15. Error codes • Unlike the C and Fortran interfaces, the Java interfaces to MPIcalls will not return explicit error codes. • Instead, the Java exception mechanism will be used to report errors

  16. Ping-Pong Timings

  17. Part 3: High Performance Java Relevant publications: • V. Getov. A Mixed-Language Programming Methodology for High Performance Java Computing. In: R. Boisvert and P. Tang (Eds.) The Architecture of Scientific Software. Kluwer Academic Publishers, 333-347, 2001. • Q. Lu, V. Getov. Mixed-Language High-Performance Computing for Plasma Simulations. Scientific Programming, vol. 11(1), 57-66, 2003.

  18. Java is a highly-portable language Java adheres to the “Write once, run anywhere” philosophy Java has a well-established collection of scientific library bindings Java’s execution speed is suitable for HPC C/Fortran are highly-portable languages C/Fortran adhere to the “Write once, run anywhere” philosophy C/Fortran have well-established scientific libraries C/Fortran execution speeds are suitable for HPC Mixed-Language Programming with Java

  19. C/Fortran have well-established scientific library bindings C/Fortran execution speeds are suitable for HPC So, What Language to Use? Java is a highly-portable language Java adheres to the “Write once, run anywhere” philosophy Utilize Java for its portability and standardization, but focus on using Java as a wrapper for porting of native code in the form of shared libraries. This involves the least amount of work and guarantees maximum performance on different platforms.

  20. Data formats in Java and C differ: sizes of primitive types; C pointers; multidimensional arrays; C structures; Still different Java native method interfaces exist; A native interface is inadequate for calling existing library functions. Difficulties in binding a native library to Java

  21. JCI Block Diagram

  22. Legacy libraries bound to Java so far

  23. Mixed-language programming based on JVM

  24. NPB EP kernel on IBM SP2

  25. Mixed-language programming based on HPCJ

  26. NPB IS kernel on IBM SP2

  27. Part 4: Grid Systems and Environments Relevant publications: • V. Getov, G. von Laszewski, M. Philippsen, I. Foster. Multi-Paradigm Communications in Java for Grid Computing. Communications of the ACM, vol. 44(10), 118-125, Oct. 2001. • V. Getov, M. Gerndt, A. Hoisie, A. Malony, B. Miller (Eds.) Performance Analysis and Grid Computing. Kluwer Academic Publishers, 2003. • V. Getov, S. Newhouse, O. Rana, E. Sharakan. Developing Grid Services with Jini and JXTA. Proc of ICCC 2004, 1402-1408, ICCC Press, 2004 (best paper award). • V. Getov, A. Puliafito, O. Rana. Computational Grid and Web Services: Concepts, Functionalities, and Comparisons. Proc of ICCC 2004, 10-15, ICCC Press, 2004.

  28. Roadmap of Communication Frameworks

  29. Industry& Business Grids e-Science What is the Grid ? “A Grid provides an abstraction for resource sharing and collaboration across multiple administrative domains…” (Source: NGG Expert Group, 16 June 2003 “European Grid Research 2005-2010) Benefits • Increased productivity by reducing the total cost of ownership • Any-type, anywhere, anytime services by/for all • Infrastructure for dynamic virtual organisations • Backbone for the next generation Internet services

  30. Java in Grid Computing • Main motivation - need to solve bigger problems with resource requirements beyond the current limits • Recent advances in computer communications make it possible to couple geographically distributed resources - Grid computing • In contrast with low-level approaches Java can support a single object-oriented communication framework for Grande applications

  31. Example Application:An Advanced Scientific Instrument Virtual Reality Cave Advanced Photon Source Scientist Avatar Supercomputer Electronic Library and Databases Computing Portal Clients

  32. Lightweight Grid Platform • New generic approach to designing the next generation Grid systems with dynamic properties – components-based design. • To develop a lightweight Grid platform suitable for resource limited devices, to support our design. • To provide a design that will allow for the efficient integration of mobile devices into the Grid. • To provide enhanced security, centralized management and monitoring, roaming, fault tolerance and a high level of autonomy in this mobile wireless environment.

  33. Challenges in Mobile Grids • Limited available resources. • Increased power consumption sensitivity. • Increased heterogeneity and software non-interoperability. • Unpredictable long periods of complete disconnectivity. • Unreliable, low-bandwidth and high latency communication links. • Very frequent, dynamic and unpredictable changes to the network layout.

  34. Hybrid Environment: Virtual “Cluster” Approach

  35. Clustered Approach Benefits • Single point of entry to the wireless cluster. • Centralized cluster management and monitoring. • Encapsulation of heterogeneity and dynamicity. • Masking of internal failures and silent recovering locally without affecting the regular Grid operation.

  36. Bryan Carpenter (Uni Syracuse) Susan Flynn-Hummel (IBM - T.J. Watson) Vasil Georgiev (IPP-BAS and Uni Westminster) Gregor von Laszewski (Argonne NL) Sava Mintchev (Uni Westminster) Jose Moreira (IBM - T.J. Watson) Michael Philippsen (Uni Karlsruhe) Antonio Puliafito (Uni Messina) Omer Rana (Uni Cardiff) Eric Sharakan (Sun Microsystems) Mary Thomas (San Diego Supercomputer Center) Experiments - CTC, IBM - T.J. Watson, SDSC, Southampton and Westminster Universities Acknowledgements

More Related