Parallel computing and message-passing in Java


Click here to start

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 performance 1. Shared memory mode

mpiJava performance 2. Distributed memory

mpiJava demos 1. CFD: inviscid flow

mpiJava demos 2. 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


Object datatypes

Automatic serialization

Implementation issues for Object datatypes

Modifications to mpiJava

Benchmarking mpiJava with naive serialization


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)


Conclusions on object serialization

Message-passing in Java Grande.

Projects related to MPI and Java


2. Automatic wrapper generation

3. JMPI™ environment

4. jmpi instrumented MPI


Java Grande Forum


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


Home Page: