Presentation is loading. Please wait.

Presentation is loading. Please wait.

Systems and Environments for High Performance Java Computing Vladimir Getov 4 January 2006.

Similar presentations


Presentation on theme: "Systems and Environments for High Performance Java Computing Vladimir Getov 4 January 2006."— Presentation transcript:

1

2 Systems and Environments for High Performance Java Computing Vladimir Getov 4 January 2006

3 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.

4 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.

5 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.

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

7 Part 2: 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.

8 Mixed-Language Programming with Java 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

9 So, What Language to Use? Java is a highly-portable language Java adheres to the “Write once, run anywhere” philosophy C/Fortran have well-established scientific library bindings C/Fortran execution speeds are suitable for HPC 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.

10 Difficulties in binding a native library to Java 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.

11 JCI Block Diagram

12 Legacy libraries bound to Java so far

13 Mixed-language programming based on JVM

14 NPB EP kernel on IBM SP2

15 Mixed-language programming based on HPCJ

16 NPB IS kernel on IBM SP2

17 Part 3: 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.

18 Message Passing - Motivation The existing communication packages in Java - RMI, API to BSD sockets - are optimized for Client/Server programming 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 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 An MPI-like message-passing API specification is needed to enable the development of portable JavaGrande applications

19 Early MPI-like Efforts - 1 mpiJava - Modeled after the C++ binding for MPI. Implementation through JNI wrappers to native MPI software. 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. 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. 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.

20 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. JMPI - MPI Soft Tech Inc. have announced a commercial effort under way to develop a message passing environment for Java. Others 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. 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 Java + MPI codes - growing variety including full applications

21 MPJ API Specification Builds on the MPI-1 Specification and the Java Specification. Builds on the MPI-1 Specification and the Java Specification. Immediate standardization for common message passing programs in Java Immediate standardization for common message passing programs in Java Basis for conversion between C, C++, Fortran and 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. Eventually, support for aspects of MPI-2 as well as possible improvements to the Java language.

22 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.

23 Java multidimensional arrays Array of Arrays

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

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

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

27 Ping-Pong Timings

28 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.

29 Roadmap of Communication Frameworks

30 What is the Grid ? 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 “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) e-Science Industry & Business Grids

31 Java in Grid Computing Main motivation - need to solve bigger problems with resource requirements beyond the current limits 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 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 In contrast with low-level approaches Java can support a single object-oriented communication framework for Grande applications

32 Example Application: An Advanced Scientific Instrument Avata r Virtual Reality Cave Scientist Advanced Photon Source Electronic Library and Databases Computing Portal Clients Supercomputer

33 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.

34 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.

35 Hybrid Environment: Virtual “Cluster” Approach

36 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.

37 Ten Reasons to Use Java in High-Performance Computing Language Language Class Libraries Class Libraries Components Components Deployment Deployment Portability Portability Maintenance Maintenance Performance Performance Gadgets Gadgets Industry Industry Education Education

38 Acknowledgements Bryan Carpenter (Uni Syracuse) Susan Flynn-Hummel (IBM - T.J. Watson) 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


Download ppt "Systems and Environments for High Performance Java Computing Vladimir Getov 4 January 2006."

Similar presentations


Ads by Google