lecture 12 2 mpi async and barrier
play

Lecture 12.2 MPI Async and Barrier EN 600.320/420 Instructor: - PowerPoint PPT Presentation

Lecture 12.2 MPI Async and Barrier EN 600.320/420 Instructor: Randal Burns 7 March 2018 Department of Computer Science, Johns Hopkins University Tags: Out of Order Delivery MPI_Send (buff, count, datatype, dest, tag, comm ) MPI_Recv (buff,


  1. Lecture 12.2 MPI Async and Barrier EN 600.320/420 Instructor: Randal Burns 7 March 2018 Department of Computer Science, Johns Hopkins University

  2. Tags: Out of Order Delivery MPI_Send (buff, count, datatype, dest, tag, comm ) MPI_Recv (buff, count, datatype, source, tag, comm )  Tag is an application defined concept used to determine delivery order – Specify a tag, get the message you desire, regardless of delivery order – There are wildcards to receive all messages (Reg. exps?)  Communicator specifies a subset of nodes running a parallel application – Has a rank and size – Default MPI_COMM_WORLD Lecture 6: MPI

  3. How about asynchronous I/O?  MPI has support for non-blocking I/O – Send/recv request (returns as soon as resources allocated) – MPI_Isend( … ) – Do some useful work – MPI_Wait( &request, &status ) //finalize  MPI_Wait: a wait the completion of operation  MPI_Test: check the completion of operation and return immediately  Program must leave buffer intact until completion! – Tie up memory in application space – Source of errors Lecture 6: MPI

  4. (Aside) MPI_SendRecv  For pairwise exchange, MPI_SendRecv – Always non-blocking – Useless: doesn ’ t implement pairwise communication  Don’t use it’s lazy and inefficient Lecture 6: MPI

  5. Asychronous I/O Useful?  Forces for: – Overlap communication with computation  Forces against: – Ties up buffers – Complex code – Little overlap available for time-step synchronous programs  Use as a last resort – Remember the runtime is trying to do this for you Lecture 6: MPI

  6. Synchronization  Implicit synchronization (blocking send/receives) – Most common model – Allows for fine-grained dependency resolution  Explicit synchronization (barriers) – MPI_Barrier ( MPI_COMM_WORLD ) – All processes must enter barrier before any continue – Coarse-grained stops all – Common when interacting with shared resources, e.g. parallel file systems or shared-memory (when available) Lecture 6: MPI

  7. http://www.mpitutorial.com/mpi-broadcast-and- Barrier collective-communication/ Illustrated Lecture 6: MPI

  8. Barriers vs. Send/Receive  Barriers are useful when awaiting a global condition: – Data ready – Previous pipeline complete – Library call finished – Checkpoint written  But, not a good replacement for pairwise sends and receives – They allow nodes to complete whenever their local synchronization constraints are met – Barriers are global and create global stalls Lecture 6: MPI

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend