Table of Contents
Parallel computing and message-passing in Java
Goals of this lecture
Contents of Lecture
Survey of Parallel Computing in Java
Java for High-Performance Computing
The Java Grande Forum
Approaches to Parallelism in Java
Message Passing with Java
Java Based Frameworks
Use Java as wrapper for existing frameworks. (I)
Use Java as wrapper for existing frameworks. (II)
Use pure Java libraries(I)
Use pure Java libraries(II)
Use pure Java libraries(III)
Extend Java Language(I)
Extend Java Language(II)
Extend Java Language(III)
Web oriented
Object Serialization and RMI
Performance Problems of Object Serialization
Efficient Object Serialization(I)
Efficient Object Serialization(II)
mpiJava: A Java Interface to MPI
The mpiJava wrapper
mpiJava features.
Class hierarchy
Minimal mpiJava program
MPI datatypes
Basic Datatypes
mpiJava implementation issues
mpiJava - Software Layers
mpiJava implementation issues
mpiJava - Test Machines
mpiJava performance
mpiJava performance1. Shared memory mode
mpiJava performance2. Distributed memory
mpiJava demos1. CFD: inviscid flow
mpiJava demos2. Q-state Potts model
Object Serialization in mpiJava
Some issues in design of a Java API for MPI
Representing Message Buffers
Overview of this part of lecture
Basic Datatypes
Derived datatypes
Restricted model
Limitations
Object datatypes
Automatic serialization
Implementation issues for Object datatypes
Modifications to mpiJava
Benchmarking mpiJava with naive serialization
Platform
Non-shared memory: byte
Non-shared memory: float
Shared memory: byte
Shared memory: float
Parameters in timing model (microseconds)
Benchmark lessons
Improving serialization
Eliminating overheads of element serialization
Improved protocol
Customized output stream class
Customized input stream class
Non-shared memory: float (optimized in red)
Non-shared memory: byte(optimized in red)
Shared memory: float(optimized in red)
Shared memory: byte(optimized in red)
Comments
Conclusions on object serialization
Message-passing in Java Grande.
Projects related to MPI and Java
1. DOGMA MPIJ
2. Automatic wrapper generation
3. JMPI™ environment
4. jmpi instrumented MPI
Standardization?
Java Grande Forum
MPJ
Thoughts on a Java Reference Implementation for MPJ
Benefits of a pure Java implementation of MPJ
Resource discovery
Communication base
Handling “Partial Failures”
Acquiring compute slaves through Jini
Handling failures with Jini
Higher layers
Integration of Jini and MPI
Integration of Jini and MPI
JiniMPI Architecture
Remarks on JiniMPI I
Remarks on JiniMPI II
|