Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "1 Developing Native Device for MPJ Express Advisor: Dr. Aamir Shafi Co-advisor: Ms Samin Khaliq."— Presentation transcript:

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

2 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

3 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

4 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

5 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

6 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

7 Architecture 7

8 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 1.2.5 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 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.

10 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 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 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 13 This Project is done as part of our Project approved by British Council

14 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 15 References  Nested Parallelism for Multi-core Systems Using Java, by Aamir Shafi  mpiJava as a teaching tool http://users.cs.cf.ac.uk/David.W.Walker/CM0323/code.ht ml http://users.cs.cf.ac.uk/David.W.Walker/CM0323/code.ht ml  Lab: Parallel programming using java (ppj) http://www.sc.rwthaachen.de/Teaching/Labs/PPJ05  MPI Meets Multicore, http://blogs.sun.com/roller/page/jag?entry=mpi meets multicore http://blogs.sun.com/roller/page/jag?entry=mpi meets multicore

16 Questions ???? 16

17 17 Appendix


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

Similar presentations


Ads by Google