1 / 18

Understanding MPI: Clean Messaging and Packet Reassembly

The Message Passing Interface (MPI) is essential for developing message-passing programs with its clean and powerful interface. This library provides standard primitives like MPI_Init, MPI_Comm_rank, and MPI_Send/Recv for effective communication. Using General Dynamic Network (GDN), messages must be packetized, enabling reassembly of logical MPI messages from raw data. The example illustrates how a tile can receive and process packets in a specified order, demonstrating the initial state, packet addition, and buffer management. Get equipped with MPI for streamlined multi-process communication.

said
Télécharger la présentation

Understanding MPI: Clean Messaging and Packet Reassembly

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. rMPIA Message Passing Library for Raw James Psota

  2. What is MPI? • Clean and powerful interface for writing message passing programs • A set of well-defined standard primitives with which many programmers are familiar James Psota

  3. Six Function MPI • MPI_Init: initializes MPI system • MPI_Comm_rank: returns “id” of calling tile • MPI_Comm_size: returns number of tiles running MPI program • MPI_Send: blocking send • MPI_Recv: blocking receive • MPI_Finalize: cleans all MPI state James Psota

  4. Packets • Use General Dynamic Network (GDN) • Must “packetize” MPI messages (GDN supports ≤ 31 words per Raw message) • Receiver must be able to re-assemble packets into logical MPI messages James Psota

  5. Packet Structure • First packet • Later packet James Psota

  6. Re-assembling Packets Example: tile02 does a MPI_Recv(src=0, tag=7), but also receives packets from other sources as well, in the in the following order: (note: <src,tag>) <6,1>, <0,2>, <0,7>, <6,1>, <0,7>, <6,1>, <0,7>, <0,7>, <0,7> James Psota

  7. Initial State: empty James Psota

  8. Add <6,1>1 James Psota

  9. Add <0,2>1 James Psota

  10. Add <0,7>1 James Psota

  11. Add <6,1>2 James Psota

  12. Add <0,7>2 James Psota

  13. Add <6,1>3 James Psota

  14. Add <0,7>3 James Psota

  15. Add <0,7>4 James Psota

  16. Add <0,7>5 James Psota

  17. Copy Into Tile02’s Buffer James Psota

  18. Clean-up State James Psota

More Related