Presentation is loading. Please wait.

Presentation is loading. Please wait.

MPJ: A Java-based Parallel Computing System

Similar presentations


Presentation on theme: "MPJ: A Java-based Parallel Computing System"— Presentation transcript:

1 MPJ: A Java-based Parallel Computing System
Aamir Shafi Distributed Systems Group University of Portsmouth

2 Presentation Outline Introduction, Design and Implementation of MPJ,
Preliminary Performance Evaluation, Conclusions. February 22, 2019

3 Introduction (1) Serial Computation: Parallel Computation:
Using ‘a’ single processor to solve a problem: Sequential - the CPU executes instructions ‘one after the another’, Parallel Computation: Using multiple processors to solve a problem: Each processors executes different instructions simultaneously, Processors collaborate by passing messages via: System bus (I.e. on a Symmetric Multi-Processors), Interconnect (i.e. on a Cluster), Why Parallel Computing? To achieve application speed-up (lesser execution time), To solve large-scale problems. Message Passing Interface: A software layer, used for inter-processor communications between peer processes. Outline the project February 22, 2019

4 Introduction (2) In order to standardise the message passing software layer, the Message Passing Interface (MPI) was introduced in June 1994: Language bindings for C, C++, and Fortran, Java is becoming a popular platform for scientific computing: ‘Write once, run anywhere’ philosophy, Built-in support for threads, networking, synchronization, and security, Easy to use graphical packages, Improved performance - Just In Time (JIT) compilers: Comms performance is comparable to C on Fast Ethernet, As a result, a Java binding was proposed in 98’ by the Java Grande Forum: Not part of the official MPI standards effort. February 22, 2019

5 Introduction (3) Previous Efforts: Aims of this project:
“Either” of these two approaches can be used, Wrappers to existing MPI C libraries: High Performance, Pure Java: Portability, Aims of this project: Develop a reference implementation of the MPI standard in Java, Based on the ideology that there is no ‘one size fits all’ approach for Java messaging, Application users can choose between high performance or portability, Options for various communication protocols: TCP (using Java New I/O package), Shared Memory, Myrinet etc., Allows use of wrappers to native MPI implementations. February 22, 2019

6 Presentation Outline Introduction, Design and Implementation,
Preliminary Performance Evaluation, Conclusions. February 22, 2019

7 Design Aims: Two device levels:
Support swapping various communication devices, Based on the idea of UNIX device drivers, Two device levels: The MPJ Device level (mpjdev): Makes it possible to provide an interface to native MPI libraries, The xdev Device level (xdev): Provides interface to implement drivers for various communication protocols, TCP (using Java New I/O package), Shared Memory, Myrinet etc. February 22, 2019

8 Design February 22, 2019

9 Implementation MPJ complies with the functionality of MPI-1.2:
Point to point communications, Collective communications, Groups, communicators, and contexts, Derived datatypes: Buffering API, Runtime infrastructure: Allows bootstrapping MPJ processes, MPJ Daemon can be installed as OS service, Communication protocols: Java NIO device, GM 2.x.x device (Myrinet), Shared memory device (using Threads API). February 22, 2019

10 Presentation Outline Introduction, Design and Implementation,
Preliminary Performance Evaluation, Conclusions. February 22, 2019

11 Preliminary Performance Evaluation
Point-to-point (connected by Fast Ethernet): mpiJava (using MPICH 1.2.5), MPJ (using Java NIO), MPICH (1.2.5) (using ch_p4), LAM/MPI (7.0.9) (using TCP RPI), Transfer time and throughput graphs, Analysis. February 22, 2019

12 Transfer Time Comparison
MPJ: ~250 microseconds (latency) mpiJava, LAM/MPI, MPICH: ~125 microseconds (latency) February 22, 2019

13 Throughput Comparison
MPJ: ~81 Mbps mpiJava: ~84 Mbps LAM/MPI: ~90 Mbps MPICH: ~88 Mbps February 22, 2019

14 Analysis General behaviour is similar to other MPI implementations,
Optimisation areas: Latency for small messages: Currently control message and data is written in two separate SocketChannel write operations, Large messages: Maintaining pool of buffers, Understand the anamoly at 16 Mbyte datapoint. February 22, 2019

15 Presentation Outline Introduction,. Design and Implementation,
Preliminary Performance Evaluation, Conclusions. February 22, 2019

16 Summary A key issue for Java messaging is not debating the use of pure Java or the JNI approach: But, providing a flexible mechanism to swap various communication protocols. MPJ has a pluggable architecture: We have implemented devices for: TCP (using Java NIO), Myrinet (using GM 2.x.x), Shared memory communications (using Threads API), The MPJ runtime infrastructure allows bootstrapping MPJ processes across various platforms. February 22, 2019

17 Conclusions MPJ is the second generation ‘MPI for Java’,
Current Status: Unit testing, Optimisation, First release by the end of June05, Java NIO device, Arguably, the first “full” MPI library for Java providing a pure Java implementation. Future Work: Define and implement Java bindings for MPI-2 standard. February 22, 2019

18 Questions February 22, 2019


Download ppt "MPJ: A Java-based Parallel Computing System"

Similar presentations


Ads by Google