Title: A%20High%20Performance%20Middleware%20in%20Java%20with%20a%20Real%20Application
1A High Performance Middleware in Java with a Real
Application
- Fabrice Huet, Denis Caromel, Henri Bal
- Inria-I3S-CNRS, Sophia-Antipolis, France
- Vrije Universiteit, Amsterdam, Netherlands
2Outline
- Motivations and Overview
- Jem3D 3D electromagnetism
- ProActive High Level Middleware for the Grid
- Ibis High Performance Communications
- Java experimentations
- Comparison with a Fortran Implementation
- Conclusion
3Outline
- Motivations and Overview
- Jem3D 3D electromagnetism
- ProActive High Level Middleware for the Grid
- Ibis High Performance Communications
- Java experimentations
- Comparison with a Fortran Implementation
- Conclusion
4Motivations
- Offer an integrated solution for
- Programming
- Deploying
- Running
- applications in an heterogeneous environment
- Investigate the current situation of Java
programming for high performance
5Overview
6Outline
- Motivations and Overview
- Jem3D 3D electromagnetism
- ProActive High Level Middleware for the Grid
- Ibis High Performance Communications
- Java experimentations
- Comparison with a Fortran Implementation
- Conclusion
7Jem3D
- Solves 3D Maxwell equations
- Relies on finite volume approximation method
- Works on unstructured tetrahedral discretization
of the computation domain - In this paper, we compute the propagation of an
eigenmode in a cubic metallic cavity (standard
test case) - The complexity of the computation is linked to
the number of tetrahedra - We set the number of points to be used for
tetrahedra (Mesh size)
8Jem3D (2)
Initialization
Compute mag. field, and update elec. field
Compute elec. field, and update mag. field
Calculation of the discrete electromagnetic energy
t lt tmax
t tmax
Solution Saving
9Distribution of the ComputationExample on 4 nodes
N
10Outline
- Motivations and Overview
- Jem3D 3D electromagnetism
- ProActive High Level Middleware for the Grid
- Ibis High Performance Communications
- Java experimentations
- Comparison with a Fortran Implementation
- Conclusion
11ProActive
- Java library for parallel, distributed and
concurrent programming - Medium grain entities active object
- Has its own thread of execution
- Stores and serves requests
- Asynchronous communications with transparent
future objects and wait by necessity - Uses RMI or Soap-like protocol
- High level features mobility, security,
component, group communication, deployment
descriptors
12Group Communications
- Idea / Goals
- Manipulate groups as simple Java objects
- Maintain the dot notation
- Code reusability
- Remote method invocation on a group
- Multi-unicast approach
- Based on the ProActive communication mechanism
- Replication of n single communication
- Uses of multiple threads
13Deployment Descriptor
- Abstract Away from source code
- Machines names
- Creation/Connection Protocols
- Lookup and Registry Protocols
- Interfaced with various protocols and
Infrastructures - Cluster LSF, PBS, SGE , OAR and PRUN(custom
protocols) - Internet and LAN rsh, rlogin, ssh
- Grid Globus, Web services, gsissh
- API to query resources from within the
application through symbolic names (VirtualNode)
14Deployment Descriptor- Examples
VirtualNode jem3dNode Mapping jem3dNode
? VM1, VM2 Infrastructure VM1 ? Local VM VM2
? SSH host1 then Local VM
localhost
App.
host1
localhost
frontend
App.
15Outline
- Motivations and Overview
- Jem3D 3D electromagnetism
- ProActive High Level Middleware for the Grid
- Ibis High Performance Communications
- Java experimentations
- Comparison with a Fortran Implementation
- Conclusion
16Ibis
- Grid programming environment with efficient
communications - Java Implementation for portability
- Native Implementation for performance
- TCP
- Myrinet
- MPI
- Various programming models Group Method
Invocation (GMI), Divide and Conquer (Satin),
Remote Method Invocation (RMI) - We focus here on the Java implementation for
portability reasons
17Improved RMI implementation
- Source compatible with Suns RMI (replace
java.rmi. with ibis.rmi.) - Reduced overhead through caching of type
information - Overall, reduce by 10 the amount of data sent
over the wire - Improved serialization
- Generation of serialization code for all classes
- Specially generated constructor to create empty
objects
18Outline
- Motivations and Overview
- Jem3D 3D electromagnetism
- ProActive High Level Middleware for the Grid
- Ibis High Performance Communications
- Java experimentations
- Comparison with a Fortran Implementation
- Conclusion
19Running Environment
- DAS-2 MultiCluster
- 200 Nodes on 5 sites
- 1GB of memory
- We use 72 Nodes on 1 site, other evenly
distributed - Intra domain nodes linked by 100Mb/s ethernet
- Inter domains linked with 1Gb/s
- OS
- RedHat 7.2
- Java
- Suns 1.5.0 and IBMs 1.4.1
20Jem3D with 51x51x51 mesh
21Outline
- Motivations and Overview
- Jem3D 3D electromagnetism
- ProActive High Level Middleware for the Grid
- Ibis High Performance Communications
- Java experimentations
- Comparison with a Fortran Implementation
- Conclusion
22Comparison with a Fortran Implementation
- Not a Java vs Fortran/MPI Comparison!
- We compare
- The same algorithm
- Implemented in very different languages (dynamic
data structures in Java, static in Fortran) - By different persons
- With different goals
- We want to know
- How much we pay for the Java features
- How much we can gain with Ibis
23Running Environment
- Cluster located in Sophia-Antipolis
- 16 nodes of Pentium 3 at 1Ghz
- 512MB of RAM
- Nodes linked with 100Mb/s Ethernet
- OS
- Linux 2.4.17
- Suns JDK 1.4.2
- Fortran/MPI
- MPICH-1.2.5
24Sequential Version
Time Time Memory Memory Java/Fortran Java/Fortran
Mesh Java Fortran Java Fortran Time Memory
21x21x21 45s 18.9s 78M 59M 2.38 1.32
31x31x31 150s 65s 224M 164M 2.30 1.36
41x41x41 387s 156s 483M 366M 2.48 1.31
25Speedup, 51x51x51
26Speedup, 81x81x81
27Outline
- Motivations and Overview
- Jem3D 3D electromagnetism
- ProActive High Level Middleware for the Grid
- Ibis High Performance Communications
- Java experimentations
- Comparison with a Fortran Implementation
- Conclusion
28Conclusion
- ProActive Ibis
- Integrated Solution
- Allows a better speedup than plain RMI
implementation - Gives to the application a better control on its
environment - Still slower (3x) than a close Fortran/MPI
implementation but - Easier to compile
- Easier to deploy (Jem3D ran on 150 nodes)
- Evaluate the native solutions
- The native ibis version is installed/managed by
an administrator - We compile against the Java classes only
29Resources
- Jem3D not available yet, but working on it
- ProActive Available under LGPL
- http//www-sop.inria.fr/oasis/ProActive
- Ibis Available under LGPL
- http//www.cs.vu.nl/ibis
- Booth 2345