PVM and MPI What is more preferable? Comparative analysis of PVM and MPI for the development of physical applications on parallel clusters Ekaterina Elts.

Slides:



Advertisements
Similar presentations
Multiple Processor Systems
Advertisements

Computer Architecture
Parallel Virtual Machine Rama Vykunta. Introduction n PVM provides a unified frame work for developing parallel programs with the existing infrastructure.
MPI Message Passing Interface
Class CS 775/875, Spring 2011 Amit H. Kumar, OCCS Old Dominion University.
Super computers Parallel Processing By: Lecturer \ Aisha Dawood.
Master/Slave Architecture Pattern Source: Pattern-Oriented Software Architecture, Vol. 1, Buschmann, et al.
Summary Background –Why do we need parallel processing? Applications Introduction in algorithms and applications –Methodology to develop efficient parallel.
Network Operating Systems Users are aware of multiplicity of machines. Access to resources of various machines is done explicitly by: –Logging into the.
Scientific Programming OpenM ulti- P rocessing M essage P assing I nterface.
Reference: Message Passing Fundamentals.
Tuesday, September 12, 2006 Nothing is impossible for people who don't have to do it themselves. - Weiler.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
1 Computer Science, University of Warwick Architecture Classifications A taxonomy of parallel architectures: in 1972, Flynn categorised HPC architectures.
Mapping Techniques for Load Balancing
Lecture 2 – MapReduce CPE 458 – Parallel Programming, Spring 2009 Except as otherwise noted, the content of this presentation is licensed under the Creative.
07/14/08. 2 Points Introduction. Cluster and Supercomputers. Cluster Types and Advantages. Our Cluster. Cluster Performance. Cluster Computer for Basic.
Lecture 1 – Parallel Programming Primer CPE 458 – Parallel Programming, Spring 2009 Except as otherwise noted, the content of this presentation is licensed.
Reference: / Parallel Programming Paradigm Yeni Herdiyeni Dept of Computer Science, IPB.
KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing.
Parallel Processing LAB NO 1.
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
Chapter 9 Message Passing Copyright © Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere2 Introduction.
LIGO-G Z 8 June 2001L.S.Finn/LDAS Camp1 How to think about parallel programming.
PVM. PVM - What Is It? F Stands for: Parallel Virtual Machine F A software tool used to create and execute concurrent or parallel applications. F Operates.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Multiple Processor Systems. Multiprocessor Systems Continuous need for faster and powerful computers –shared memory model ( access nsec) –message passing.
CS525: Special Topics in DBs Large-Scale Data Management Hadoop/MapReduce Computing Paradigm Spring 2013 WPI, Mohamed Eltabakh 1.
A Metadata Based Approach For Supporting Subsetting Queries Over Parallel HDF5 Datasets Vignesh Santhanagopalan Graduate Student Department Of CSE.
SUMA: A Scientific Metacomputer Cardinale, Yudith Figueira, Carlos Hernández, Emilio Baquero, Eduardo Berbín, Luis Bouza, Roberto Gamess, Eric García,
Introduction, background, jargon Jakub Yaghob. Literature T.G.Mattson, B.A.Sanders, B.L.Massingill: Patterns for Parallel Programming, Addison- Wesley,
Part I MPI from scratch. Part I By: Camilo A. SilvaBIOinformatics Summer 2008 PIRE :: REU :: Cyberbridges.
Loosely Coupled Parallelism: Clusters. Context We have studied older archictures for loosely coupled parallelism, such as mesh’s, hypercubes etc, which.
Multiple Processor Systems. Multiprocessor Systems Continuous need for faster computers –shared memory model ( access nsec) –message passing multiprocessor.
1 Parallel Programming Aaron Bloomfield CS 415 Fall 2005.
1 CMPE 511 HIGH PERFORMANCE COMPUTING CLUSTERS Dilek Demirel İşçi.
Computer Science and Engineering Parallel and Distributed Processing CSE 8380 February Session 11.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Chapter 4 Message-Passing Programming. The Message-Passing Model.
Parallel and Distributed Programming Kashif Bilal.
How to for compiling and running MPI Programs. Prepared by Kiriti Venkat.
Gedae, Inc. Gedae: Auto Coding to a Virtual Machine Authors: William I. Lundgren, Kerry B. Barnes, James W. Steed HPEC 2004.
PVM (Parallel Virtual Machine)‏ By : Vishal Prajapati Course CS683 Computer Architecture Prof. Moreshwar R Bhujade.
Message-Passing Computing Chapter 2. Programming Multicomputer Design special parallel programming language –Occam Extend existing language to handle.
CS- 492 : Distributed system & Parallel Processing Lecture 7: Sun: 15/5/1435 Foundations of designing parallel algorithms and shared memory models Lecturer/
M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young MACH: A New Kernel Foundation for UNIX Development Presenter: Wei-Lwun.
Hadoop/MapReduce Computing Paradigm 1 CS525: Special Topics in DBs Large-Scale Data Management Presented By Kelly Technologies
FTOP: A library for fault tolerance in a cluster R. Badrinath Rakesh Gupta Nisheeth Shrivastava.
Background Computer System Architectures Computer System Software.
Computer Science and Engineering Parallel and Distributed Processing CSE 8380 April 28, 2005 Session 29.
Distributed File System. Outline Basic Concepts Current project Hadoop Distributed File System Future work Reference.
 Dan Ibanez, Micah Corah, Seegyoung Seol, Mark Shephard  2/27/2013  Scientific Computation Research Center  Rensselaer Polytechnic Institute 1 Advances.
Lecture 13 Parallel Processing. 2 What is Parallel Computing? Traditionally software has been written for serial computation. Parallel computing is the.
Parallel Programming Models EECC 756 David D. McGann 18 May, 1999.
PVM and MPI.
Introduction to Operating Systems Concepts
These slides are based on the book:
Flynn’s Taxonomy Many attempts have been made to come up with a way to categorize computer architectures. Flynn’s Taxonomy has been the most enduring of.
Chapter 1: Introduction
Introduction to Parallel Computing: MPI, OpenMP and Hybrid Programming
Lecture 1 – Parallel Programming Primer
Parallel Programming By J. H. Wang May 2, 2017.
Parallel Virtual Machine
Parallel Objects: Virtualization & In-Process Components
MPI Message Passing Interface
Parallel and Multiprocessor Architectures
Summary Background Introduction in algorithms and applications
Part 2: Parallel Models (I)
MPJ: A Java-based Parallel Computing System
Chapter 13: I/O Systems.
Presentation transcript:

PVM and MPI What is more preferable? Comparative analysis of PVM and MPI for the development of physical applications on parallel clusters Ekaterina Elts Scientific adviser: Assoc. Prof. A.V. Komolkin

Introduction Computational Grand Challenge problems Parallel processing – the method of having many small tasks to solve one large problem Two major trends : MPPs - (massively parallel processors) – but cost $$$ ! distributed computing

Introduction The hottest trend today is PC clusters running Linux Many Universities and companies can afford 16 to 100 nodes. PVM and MPI are the most used tools for parallel programming

Contents Parallel Programming  A Parallel Machine Model Cluster  A Parallel Programming Model Message Passing Programming Paradigm PVM and MPI  Background  Definition  A Comparison of Features Conclusion

A Sequential Machine Model The von Neumann computer A central processing unit (CPU) executes a program that performs a sequence of read and write operations on an attached memory SISD – Single Instruction Stream – Single Data Stream

A Parallel Machine Model Interconnect … The cluster A node can communicate with other nodes by sending and receiving messages over an interconnection network The von Neumann computer MIMD – Multiple Instruction Stream – Multiple Data Stream

A Parallel Programming Model input output input output Parallel algorithmSequential (serial) algorithm

Example: scalar product of vectors input output input output Parallel algorithmSequential (serial) algorithm do i=1,N S=s+a i b i enddo print S do i=1,N/2 s 1 =s 1 +a i b i enddo do i=N/2+1,N s 2 =s 2 +a i b i enddo print S S=s 1 +s 2

A Parallel Programming Model Message Passing detailed picture of a single task Many small tasks solve one large problem Instantaneous state of computation

Message Passing Paradigm Each processor in a message passing program runs a separate process (sub- program, task) −written in a conventional sequential language −all variables are private −communicate via special subroutine calls

Messages Messages are packets of data moving between processes The message passing system has to be told the following information: Sending process Source location Data type Data length Receiving process(es) Destination location Destination size

Message Passing SPMD Single Program Multiple Data Same program runs everywhere Each process only knows and operates on a small part of data MPMD Multiple Program Multiple Data Each process perform a different function (input, problem setup, solution, output, display)

What is Master/Slave principle? The master has the control over the running application, it controls all data and it calls the slaves to do there work PROGRAM IF (process = master) THEN master-code ELSE slave-code ENDIF END

Simple Example SPMD&Master/Slave master slave S=s 1 +s 2 slave For i from rank step size to N do s=s+a i b i enddo a 1 b 1 +a 1+size b 1+size +a 1+2*size b 1+2*size +…

PVM and MPI Background PVM The development of PVM started in summer 1989 at Oak Ridge National Laboratory (ORNL). PVM was effort of a single research group, allowing it great flexibility in design of this system MPI The development of MPI started in April MPI was designed by the MPI Forum (a diverse collection of implementors, library writers, and end users) quite independently of any specific implementation PVM-1 MPI-1MPI-2 PVM-2PVM-3PVM-3.4

PVM and MPI Goals PVM A distributed operating system Portability Heterogeneity Handling communication failures MPI A library for writing application program, not a distributed operating system portability High Performance Heterogeneity Well-defined behavior Note: implementation ≠ specification! MPI implementations: LAM, MPICH,…

What is MPI ? MPI - Message Passing Interface  A fixed set of processes is created at program initialization, one process is created per processor mpirun –np 5 program  Each process knows its personal number (rank)  Each process knows number of all processes  Each process can communicate with other processes  Process can’t create new processes (in MPI-1)

What is PVM ? PVM - Parallel Virtual Machine  Is a software package that allows a heterogeneous collection of workstations (host pool) to function as a single high performance parallel machine (virtual)  PVM, through its virtual machine provides a simple yet useful distributed operating system  It has daemon running on all computers making up the virtual machine

PVM Daemon (pvmd)  UNIX process which oversees the operation of user processes within a PVM application and coordinates inter-machine PVM communications  The pvmd serves as a message router and controller  One pvmd runs on each host of a virtual machine  The first pvmd (started by hand) is designated the master, while the others (started by the master) are called slaves  Only the master can start new slaves and add them to configuration or delete slave hosts from the machine

master Executing user computation Executing PVM system routines

What is Not Different? Portability – source code written for one architecture can be copied to a second architecture, compiled and executed without modification (to some extent) Support MPMD programs as well as SPMD Interoperability – the ability of different implementations of the same specification to exchange messages Heterogeneity (to some extent) PVM & MPI are systems designed to provide users with libraries for writing portable, heterogeneous, MPMD programs

Heterogeneity Architecture Data format Computational speed Machine load Network load dynamic static

Heterogeneity: MPI Different datatypes can be encapsulated in a single derived type, thereby allowing communication of heterogeneous messages. In addition, data can be sent from one architecture to another with data conversion in heterogeneous networks (big-endian, little-endian).

Heterogeneity: PVM The PVM system supports heterogeneity in terms of machines, networks, and applications. With regard to message passing, PVM permits messages containing more than one datatype to be exchanged between machines having different data representations.

Process control -Ability to start and stop tasks, to find out which tasks are running, and possibly where they are running. PVM contains all of these capabilities – it can spawn/kill tasks dynamically MPI -1 has no defined method to start new task. MPI -2 contain functions to start a group of tasks and to send a kill signal to a group of tasks

Resource Control PVM is inherently dynamic in nature, and it has a rich set of resource control functions. Hosts can be added or deleted load balancing task migration fault tolerance efficiency MPI is specifically designed to be static in nature to improve performance

Virtual topology - only for MPI Convenient process naming Naming scheme to fit the communication pattern Simplifies writing of code Can allow MPI to optimize communications

Virtual topology example A virtual topology of twelve processes - grid with a cyclic boundary condition in one direction e.g. processes 0 and 9 are ``connected''. The numbers represent the rank and the conceptual coordinates mapped to the ranks

Message Passing operations MPI : Rich message support PVM: Simple message passing

Point-to-Point communications A synchronous communication does not complete until the message has been received. An asynchronous communication completes as soon as the message is on its way

Non-blocking operations Non blocking communication allows useful work to be performed while waiting for the communication to complete

Collective communications Barrier A barrier operation synchronises a number of processors. Broadcast A broadcast sends a message to a number of recipients Reduction operations Reduction operations reduce data from a number of processors to a single item.

Fault Tolerance: MPI MPI standard is based on a static model If a member of a group failed for some reason, the specification mandated that rather than continuing which would lead to unknown results in a doomed application, the group is invalidated and the application halted in a clean manner. In simple if something fails, everything does.

Fault Tolerance: MPI

Failed Node There is a failure and…

Fault Tolerance: MPI Failed Node … the application is shut down

Fault Tolerance: PVM PVM supports a basic fault notification scheme: it doesn’t automatically recover an application after a crash, but it does provide notification primitives to allow fault-tolerant applications to be built The Virtual Machine is dynamically reconfigurable A pvmd can recover from the loss of any foreign pvmd except the master. The master must never crash

Fault Tolerance: PVM Virtual Machine

Fault Tolerance: PVM Virtual Machine Failed Node

Fault Tolerance: PVM Virtual Machine Fast host delete or recovery from fault

Conclusion PVM Virtual machine concept Simple message passing Communication topology unspecified Interoperate across host architecture boundaries Portability over performance Resource and process control Robust fault tolerance MPI No such abstraction Rich message support Support logical communication topologies Some realizations do not interoperate across architectural boundaries Performance over flexibility Primarily concerned with messaging More susceptible to faults Each API has it’s unique strengths

Conclusion PVM is better for:  Heterogeneous cluster, resource and process control  The size of cluster and the time of program’s execution are great MPI is better for:  Supercomputers (PVM is not supported)  Application for MPP Max performance  Application needs rich message support Each API has it’s unique strengths

Acknowledgments Scientific adviser Assoc. Prof. A.V.Komolkin

??? Thank you for your attention!