what is [open] mpi?open]-mpi-1up.pdfmay 2008 screencast: what is [open] mpi? 3 mpi forum •...
TRANSCRIPT
![Page 1: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/1.jpg)
May 2008 Screencast: What is [Open] MPI? 1
Screencast: What is [Open] MPI?
Jeff Squyres May 2008
![Page 2: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/2.jpg)
May 2008 Screencast: What is [Open] MPI? 2
What is MPI?
• Message Passing Interface “De facto” standard Not an “official” standard (IEEE, IETF, …)
• Written and ratified by the MPI Forum Body of academic, research, and industry
representatives • MPI is two spec documents:
MPI-1 and MPI-2 Specified interfaces in C, C++, Fortran 77/90
![Page 3: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/3.jpg)
May 2008 Screencast: What is [Open] MPI? 3
MPI Forum
• Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996
Additions to MPI-1 • Recently reconvened (Jan 2008)
Working on MPI-2.1 (small bug fixes) • Will issue a single document for MPI 1+2
Also working on MPI-2.2 (bigger bug fixes) Also working on MPI-3 (entirely new stuff)
![Page 4: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/4.jpg)
May 2008 Screencast: What is [Open] MPI? 4
What is MPI?
• Software implementations of spec Mostly host-side software
• “Middleware” Sits between the application and network Simplifies network activity to the application
• Source code portability Run apps on commodity clusters and “big iron”
supercomputers
![Page 5: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/5.jpg)
May 2008 Screencast: What is [Open] MPI? 5
User application
MPI API
Operating System
MPI High-Level View
![Page 6: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/6.jpg)
May 2008 Screencast: What is [Open] MPI? 6
What is MPI?
• Intended to deliver very high performance Low latency, high bandwidth
• Examples 2 servers + switch, user-level processes DDR InfiniBand
• ~1-2µs half-round trip 0-byte ping pong • ~14Gbps bandwidth for large messages
10Gbps Ethernet • ~5-7µs half-round trip 0-byte ping pong • ~10Gbps bandwidth for large messages
![Page 7: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/7.jpg)
May 2008 Screencast: What is [Open] MPI? 7
MPI Implementations
• Many exist / are available for customers Vendors: HP MPI, Intel MPI, Scali MPI
• Have their own support channels Open source: Open MPI, MPICH[2], …
• Rely on open source community for support • But also have some vendor support
• Various research-quality implementations Proof-of-concept Not usually intended for production usage
![Page 8: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/8.jpg)
May 2008 Screencast: What is [Open] MPI? 8
Why So Many MPI’s?
• A complicated question… Some aim to make money (closed source) Some targeted at specific platforms Others aimed at research (open source) History and politics also involved (yuck)
• Open MPI is a fascinating blend of research and industry
![Page 9: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/9.jpg)
May 2008 Screencast: What is [Open] MPI? 9
Target Audience
• Scientists and engineers Don’t know or care how network works Not computer scientists Sometimes not even [very good] programmers
• Parallel computing Using tens, hundreds, or thousands of servers
in a single computational program Intended for high-performance computing
![Page 10: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/10.jpg)
May 2008 Screencast: What is [Open] MPI? 10
Parallel Computing
• Use 10’s, 100’s, 1000’s of processors When the computation is too big for one server
• Spread the job across multiple servers Individual user processes running in concert Acting together as a single application
• More RAM • More processing power • Divide and conquer
![Page 11: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/11.jpg)
May 2008 Screencast: What is [Open] MPI? 11
MPI Abstracts the Network
• Sockets? Shared memory? Ethernet? InfiniBand? …something else? Doesn’t matter
• Application calls MPI_SEND / MPI_RECV The Right magic happens
• Connections are made automatically Sockets (IP address/port) Shared memory (e.g., mmap file) InfiniBand (queue pair setup)
![Page 12: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/12.jpg)
May 2008 Screencast: What is [Open] MPI? 12
User application
MPI API
Operating System
MPI High-Level View
![Page 13: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/13.jpg)
May 2008 Screencast: What is [Open] MPI? 13
Server
User application
MPI API
Operating System
Example: 4 Servers
Server
User application
MPI API
Operating System
Server
User application
MPI API
Operating System
Server
User application
MPI API
Operating System
Network
![Page 14: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/14.jpg)
May 2008 Screencast: What is [Open] MPI? 14
Server
User application
MPI API
Operating System
Example: 2 Servers
User application
MPI API
Server
User application
MPI API
User application
MPI API
Operating System
Network
![Page 15: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/15.jpg)
May 2008 Screencast: What is [Open] MPI? 15
Server
User application
MPI API
Operating System
Example: 1 Server
User application
MPI API
User application
MPI API
User application
MPI API
![Page 16: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/16.jpg)
May 2008 Screencast: What is [Open] MPI? 16
Runtime
• MPI implementations also include a runtime environment Need to start processes on multiple servers
simultaneously Typically requires some user-level setup Common source of errors
![Page 17: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/17.jpg)
May 2008 Screencast: What is [Open] MPI? 17
Trivial MPI Application
![Page 18: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/18.jpg)
May 2008 Screencast: What is [Open] MPI? 18
Trivial MPI Application
Process 0 to=1
from=3
Process 2 to=3
from=1
Process 1 to=2
from=0 Process 3
to=0 from=2
MPI_Send(…)
MPI_Send(…)
MPI_Send(…)
MPI_Send(…) MPI_Recv(…)
MPI_Recv(…)
MPI_Recv(…)
MPI_Recv(…)
![Page 19: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/19.jpg)
May 2008 Screencast: What is [Open] MPI? 19
Open MPI
• YAMPI (yet another MPI) …but not really Replaces several prior
MPI’s • Collaborate = great MPI
implementation What a concept! Lots of “MPI-smart” people
out there • Open source project
Influenced by both research and industry
Research / academia
Industry
![Page 20: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/20.jpg)
May 2008 Screencast: What is [Open] MPI? 20
Open MPI
• It’s two words! Open MPI NOT “OpenMPI”
• Frequently abbreviated “OMPI” Pronounced “oom-pee”
![Page 21: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/21.jpg)
May 2008 Screencast: What is [Open] MPI? 21
Open MPI
• Fundamentally based on plugins A.k.a. “components” or “modules”
• Plugins for everything Back-end resource manager Back-end network Back-end checkpointer …etc. Currently ~30 types of plugins in Open MPI
• Recurring theme: run-time decisions
![Page 22: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/22.jpg)
May 2008 Screencast: What is [Open] MPI? 22
User application
MPI API
Modular Component Architecture (MCA)
Framework
Com
p.
Com
p.
Com
p.
…
Framework
Com
p.
Com
p.
Com
p.
…
Framework
Com
p.
Com
p.
Com
p.
…
Framework
Com
p.
Com
p.
Com
p.
…
Framework
Com
p.
Com
p.
Com
p.
…
Framework
Com
p.
Com
p.
Com
p.
…
Framework
Com
p.
Com
p.
Com
p.
…
…
Plugin High-Level View
![Page 23: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/23.jpg)
May 2008 Screencast: What is [Open] MPI? 23
Resources
• MPI Forum http://www.mpi-forum.org/
• Open MPI General web site: http://www.open-mpi.org/ FAQ: http://www.open-mpi.org/faq/
• Magazine columns about MPI http://cw.squyres.com/
![Page 24: What is [Open] MPI?open]-mpi-1up.pdfMay 2008 Screencast: What is [Open] MPI? 3 MPI Forum • Published MPI-1 spec in 1994 • Published MPI-2 spec in 1996 Additions to MPI-1 • Recently](https://reader036.vdocuments.mx/reader036/viewer/2022071606/6143c7b66b2ee0265c024306/html5/thumbnails/24.jpg)
May 2008 Screencast: What is [Open] MPI? 24