MPJ: A Java-based Parallel Computing System

Slides:



Advertisements
Similar presentations
A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
Advertisements

Threads, SMP, and Microkernels
CoMPI: Enhancing MPI based applications performance and scalability using run-time compression. Rosa Filgueira, David E.Singh, Alejandro Calderón and Jesús.
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
Aamir Shafi, Bryan Carpenter, Mark Baker
A Comparative Study of Network Protocols & Interconnect for Cluster Computing Performance Evaluation of Fast Ethernet, Gigabit Ethernet and Myrinet.
1 Parallel Computing—Introduction to Message Passing Interface (MPI)
High Performance Communication using MPJ Express 1 Presented by Jawad Manzoor National University of Sciences and Technology, Pakistan 29 June 2015.
Parallel Programming with Java
Optimizing Threaded MPI Execution on SMP Clusters Hong Tang and Tao Yang Department of Computer Science University of California, Santa Barbara.
1 Developing Native Device for MPJ Express Advisor: Dr. Aamir Shafi Co-advisor: Ms Samin Khaliq.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
Tools and Utilities for parallel and serial codes in ENEA-GRID environment CRESCO Project: Salvatore Raia SubProject I.2 C.R. ENEA-Portici. 11/12/2007.
The MPC Parallel Computer Hardware, Low-level Protocols and Performances University P. & M. Curie (PARIS) LIP6 laboratory Olivier Glück.
Parallel Computing Through MPI Technologies Author: Nyameko Lisa Supervisors: Prof. Elena Zemlyanaya, Prof Alexandr P. Sapozhnikov and Tatiana F. Sapozhnikov.
Crossing The Line: Distributed Computing Across Network and Filesystem Boundaries.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
G-JavaMPI: A Grid Middleware for Distributed Java Computing with MPI Binding and Process Migration Supports Lin Chen, Cho-Li Wang, Francis C. M. Lau and.
Evaluation of Agent Teamwork High Performance Distributed Computing Middleware. Solomon Lane Agent Teamwork Research Assistant October 2006 – March 2007.
04 June Thoughts on a Java Reference Implementation for MPJ Mark Baker *, Bryan Carpenter  * University of Portsmouth  Florida.
PARALLEL COMPUTING overview What is Parallel Computing? Traditionally, software has been written for serial computation: To be run on a single computer.
Programming Parallel Hardware using MPJ Express By A. Shafi.
CIT 140: Introduction to ITSlide #1 CSC 140: Introduction to IT Operating Systems.
INTRODUCTION TO HIGH PERFORMANCE COMPUTING AND TERMINOLOGY.
Introduction to Operating Systems Concepts
Computer System Structures
Introduction to Parallel Computing: MPI, OpenMP and Hybrid Programming
Module 12: I/O Systems I/O hardware Application I/O Interface
Credits: 3 CIE: 50 Marks SEE:100 Marks Lab: Embedded and IOT Lab
Introduction to parallel programming
For Massively Parallel Computation The Chaotic State of the Art
Mobile Operating System
Chapter 4: Multithreaded Programming
Parallel Objects: Virtualization & In-Process Components
Grid Computing.
Constructing a system with multiple computers or processors
CRESCO Project: Salvatore Raia
University of Technology
Chapter 3: Windows7 Part 1.
CSCI 315 Operating Systems Design
MPJ: The second generation ‘MPI for Java’
Lecture 1: Parallel Architecture Intro
Pluggable Architecture for Java HPC Messaging
MPI-Message Passing Interface
Developing a Scalable Coherent Interface (SCI) device for MPJ Express
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
Chapter 2: System Structures
Chapter 3: Operating-System Structures
Chapter 2: The Linux System Part 1
MPJ (Message Passing in Java): The past, present, and future
Operating System Concepts
13: I/O Systems I/O hardwared Application I/O Interface
CS703 - Advanced Operating Systems
Multiple Processor Systems
Aamir Shafi MPJ Express: An Implementation of Message Passing Interface (MPI) in Java Aamir Shafi.
Constructing a system with multiple computers or processors
Constructing a system with multiple computers or processors
Constructing a system with multiple computers or processors
Hybrid Programming with OpenMP and MPI
Chapter 2: Operating-System Structures
Outline Chapter 2 (cont) OS Design OS structure
Prof. Leonardo Mostarda University of Camerino
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Chapter 4: Threads & Concurrency
Chapter 4 Multiprocessors
Outline Operating System Organization Operating System Examples
Chapter 2: Operating-System Structures
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
Types of Parallel Computers
Module 12: I/O Systems I/O hardwared Application I/O Interface
Presentation transcript:

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

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

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

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

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

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

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

Design February 22, 2019

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

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

Preliminary Performance Evaluation Point-to-point (connected by Fast Ethernet): mpiJava 1.2.5 (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

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

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

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

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

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

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

Questions February 22, 2019