1 Developing Native Device for MPJ Express Advisor: Dr. Aamir Shafi Co-advisor: Ms Samin Khaliq.

Slides:



Advertisements
Similar presentations
Threads, SMP, and Microkernels
Advertisements

Parallel Processing with OpenMP
Distributed Systems CS
Class CS 775/875, Spring 2011 Amit H. Kumar, OCCS Old Dominion University.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Master/Slave Architecture Pattern Source: Pattern-Oriented Software Architecture, Vol. 1, Buschmann, et al.
Protocols and software for exploiting Myrinet clusters Congduc Pham and the main contributors P. Geoffray, L. Prylli, B. Tourancheau, R. Westrelin.
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
Parallelizing Audio Feature Extraction Using an Automatically-Partitioned Streaming Dataflow Language Eric Battenberg Mark Murphy CS 267, Spring 2008.
Aamir Shafi, Bryan Carpenter, Mark Baker
PARALLEL PROCESSING COMPARATIVE STUDY 1. CONTEXT How to finish a work in short time???? Solution To use quicker worker. Inconvenient: The speed of worker.
Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
MPI in uClinux on Microblaze Neelima Balakrishnan Khang Tran 05/01/2006.
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.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 2: Operating-System Structures Modified from the text book.
Sameer Shende, Allen D. Malony Computer & Information Science Department Computational Science Institute University of Oregon.
Parallel Programming with Java
07/14/08. 2 Points Introduction. Cluster and Supercomputers. Cluster Types and Advantages. Our Cluster. Cluster Performance. Cluster Computer for Basic.
JavaGrande Forum: An Overview Vladimir Getov University of Westminster.
CS 350 Operating Systems & Programming Languages Ethan Race Oren Rasekh Christopher Roberts Christopher Rogers Anthony Simon Benjamin Ramos.
1 Programming Multicore Processors Aamir Shafi High Performance Computing Lab
OpenMP in a Heterogeneous World Ayodunni Aribuki Advisor: Dr. Barbara Chapman HPCTools Group University of Houston.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
German National Research Center for Information Technology Research Institute for Computer Architecture and Software Technology German National Research.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Lappeenranta University of Technology / JP CT30A7001 Concurrent and Parallel Computing Introduction to concurrent and parallel computing.
111 © 2002, Cisco Systems, Inc. All rights reserved.
CCA Common Component Architecture Manoj Krishnan Pacific Northwest National Laboratory MCMD Programming and Implementation Issues.
Advisor: Dr. Aamir Shafi Co-Advisor: Mr. Ali Sajjad Member: Dr. Hafiz Farooq Member: Mr. Tahir Azim Optimizing N-body Simulations for Multi-core Compute.
Crossing The Line: Distributed Computing Across Network and Filesystem Boundaries.
Parallel Programming Dr Andy Evans. Parallel programming Various options, but a popular one is the Message Passing Interface (MPI). This is a standard.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
MIMD Distributed Memory Architectures message-passing multicomputers.
1 COMP 3438 – Part II-Lecture 1: Overview of Compiler Design Dr. Zili Shao Department of Computing The Hong Kong Polytechnic Univ.
4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.
SCIRun and SPA integration status Steven G. Parker Ayla Khan Oscar Barney.
A High Performance Middleware in Java with a Real Application Fabrice Huet*, Denis Caromel*, Henri Bal + * Inria-I3S-CNRS, Sophia-Antipolis, France + Vrije.
13/11/98Java Grande Forum1 MPI for Java Bryan Carpenter, Vladimir Getov, Glenn Judd, Tony Skjellum, Geoffrey Fox and others.
HPD -- A High Performance Debugger Implementation A Parallel Tools Consortium project
COMP381 by M. Hamdi 1 Clusters: Networks of WS/PC.
3/12/2013Computer Engg, IIT(BHU)1 PARALLEL COMPUTERS- 2.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Exploring Parallelism with Joseph Pantoga Jon Simington.
Background Computer System Architectures Computer System Software.
Computer Science and Engineering Parallel and Distributed Processing CSE 8380 April 28, 2005 Session 29.
Software. Introduction n A computer can’t do anything without a program of instructions. n A program is a set of instructions a computer carries out.
Programming Parallel Hardware using MPJ Express By A. Shafi.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
Reference Implementation of the High Performance Debugging (HPD) Standard Kevin London ( ) Shirley Browne ( ) Robert.
INTRODUCTION TO HIGH PERFORMANCE COMPUTING AND TERMINOLOGY.
Group Members Hamza Zahid (131391) Fahad Nadeem khan Abdual Hannan AIR UNIVERSITY MULTAN CAMPUS.
Introduction to Operating Systems Concepts
Introduction to threads
Object Oriented Programming in
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Introduction to Parallel Computing: MPI, OpenMP and Hybrid Programming
Chapter 4: Threads.
Spark Presentation.
MPJ: The second generation ‘MPI for Java’
Pluggable Architecture for Java HPC Messaging
Chapter 4: Threads.
MPJ (Message Passing in Java): The past, present, and future
Aamir Shafi MPJ Express: An Implementation of Message Passing Interface (MPI) in Java Aamir Shafi.
CHAPTER 4:THreads Bashair Al-harthi OPERATING SYSTEM
Multithreaded Programming
MPJ: A Java-based Parallel Computing System
(Computer fundamental Lab)
Chapter 4: Threads & Concurrency
Parallel programming in Java
Presentation transcript:

1 Developing Native Device for MPJ Express Advisor: Dr. Aamir Shafi Co-advisor: Ms Samin Khaliq

2Agenda  Introduction to Parallel Computing  Introduction to Parallel Architectures  Introduction to Parallel Programming  Literature Review  MPJ Express  mpiJava  MPICH and MPICH-2  Problem Statement  Deliverables  Questions

Parallel Computing  There are three ways to do any thing faster  Work harder  Work smarter  Get help  In Computers  Work harder => increase the processor speed  Work smarter =>use a better algorithm  Get help => use parallel processing  Why use Parallel Computing  Save time  Solve large and complex problems  Provide concurrency 3

Parallel Architectures  There are two types of parallel systems  Massively Parallel Processors (MPP)  Symmetric Multi Processors (SMP)  Commodity Clusters (Poor man’s Super Computer ! )  MPP  Each Processor has its own memory and cache. Nothing is shared  SMP  Each Processor share the same memory  Commodity Clusters  Made from Commodity-Off-The-Shelf components 4

Parallel Programming  Message Passing libraries are available in C, C++, Fortran, Java  Two types of Message Passing systems are available  PVM (Parallel Virtual Machine)  MPI (Message Passing Interface)  Java has become a popular programming language because of its features like portability, type safety, built in support for threads and rich set of API’s  Various Java based messaging systems have been developed which have followed one of the following three approaches for communication  Java Native Interface (JNI)  Remote Method Invocation (RMI)  Low level communication (Sockets) 5

Literature Review and Related Work  MPJ Express  Java based messaging system that implements the high-level MPI functionality using lower level sockets.  Layered design  Thread safe  Layered design allows the developer to swap the layers in and out as needed  Thread safety allows multiple threads to be started in one process without any restriction. 6

Architecture 7

Literature Review and Related Work… Cont’d  mpiJava  Java based messaging system that uses JNI to communicate with Native MPI library  Popular in terms of uptake by the HPC community  Used as a teaching tool and for the development of performance measurement and analysis tool  Current API is in version released in 2003  MPICH and MPICH-2  C implementation of MPI  For the first release of the Native device, we intend to add support for MPICH and MPICH-2 to be used as the underlying Native MPI libraries. 8

9 mpiJava vs MPJ Express  mpiJava uses JNI to communicate with the Native MPI library. This is against Java‘s philosophy of write once and run any ware  The absence of buffering layer in mpiJava poses JNI data copying overheads  Runs on most of the high speed interconnects by using Native MPI library that supports the particular interconnect  Has been very popular in HPC community  MPJ Express exploits Java NIO package  Unlike mpiJava, it is thread safe  MPJ Express has its own runtime  MPJ Express has introduced an efficient buffering layer in order to avoid JNI overheads.

To develop a Native MPI device based on mpiJava for MPJ Express software. Analyze, evaluate and optimize its performance against other Java messaging systems Problem Statement 10

11 Motivation  mpiJava was a very popular messaging system but is no more maintained  The performance of Native device (which will be based on mpiJava) can be improved using direct ByteBuffers that have been introduced in Java NIO package  MPJ Express is thread safe and already has support for communication on Myrinet, shared memory along with having a pure Java implementation  James Gosling, one of the founders of Java called MPJ Express one of his favorite MPI like library  We intend to release Native device as part of the MPJ Express software. The users would download just one software and wont have to switch software for different tasks

12 Challenges  Its not simple copy and paste!  mpiJava doesn’t have any buffering layer whereas MPJ Express using a buffering layer. How the messages will be written and read ?  We have to introduce a Native Buffer (currently NIO Buffer is used for pure Java communications) for the Native device.  Will the runtime of MPJ Express be compatible with mpiJava ?  Can we start Java processes from MPJ Express rather Native MPI?  The MPJ Express software has got a layered design. The mpjdev level of the software needs to be redesigned to accommodate the Native device

13 This Project is done as part of our Project approved by British Council

Deliverables 14  Literature review  Understanding the architecture of MPJ Express, mpiJava, MPICH and MPICH-2  Modify the design of MPJ Express (particularly mpjdev API)  Test MPJ Express with the modified design  Integrate Native device into MPJ Express  JNI code of Native device and Native buffer  Code Testing  Performance Evaluation against mpiJava and other MPI devices  Code optimization  Documentation

15 References  Nested Parallelism for Multi-core Systems Using Java, by Aamir Shafi  mpiJava as a teaching tool ml ml  Lab: Parallel programming using java (ppj)  MPI Meets Multicore, meets multicore meets multicore

Questions ???? 16

17 Appendix