1 / 23

MPI-2

MPI-2. Functional Explorations of Additions to MPI. Ryan Johnsonbaugh. MPI-2 Additions. - Naming Changes - Process Creation and Management - One-Sided Communications - Extended Collective Operations - External Interfaces - I/O. Naming Changes. - Class_action_subset

lewis
Télécharger la présentation

MPI-2

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. MPI-2 Functional Explorations of Additions to MPI Ryan Johnsonbaugh

  2. MPI-2 Additions - Naming Changes - Process Creation and Management - One-Sided Communications - Extended Collective Operations - External Interfaces - I/O

  3. Naming Changes - Class_action_subset - Class_action (if no subset exist) - Action_subset (if not associated with a class) - "Create creates a new object, Get retrieves information about an object, Set sets this information, Delete deletes information, Is asks whether or not an object has a certain property."

  4. Naming Changes

  5. Process Creation and Management - MPI 1 Model has a static process list - MPI 2 Model > "MPI applications may start new processes through an interface to an external process manager,which can range from a parallel operating system (CMOST) to layered software (POE) to an rsh command (p4)."

  6. Process Creation - MPI_comm_spawn(command, argv, maxprocs, info, root, comm, intercomm, array_of_errcodes) - MPI_comm_spawn_multiple(char *command, char *argv[], int maxprocs, MPI Info info,int root, MPI Comm comm, MPI Comm *intercomm,int array of errcodes[])

  7. Runtime Environment - These Spawn functions create an interface between MPI and the actual runtime environment of your application using MPI. - MPI is not an operating system it simply facilitates communications between applications and therefore assumes the existence of the environment.

  8. Runtime Environment (Limitations) - Spawn commands create new processes - Spawned processes can be instructed where and how to run using the info argument. - MPI_universe_size attribute of MPI_comm_world

  9. Process Manager Interface - Children processes are in their own MPI_comm_world and MPI_comm_spawn in the parent MAY not return until MPI_init is called in the child. - If the program named in command does not call MPI_init, but instead forks a process that calls MPI_init, the results are undefined. Implementations may allow this case to work but are not required to.

  10. Process Manager Interface - int MPI_comm_get_parent(MPI_Comm *parent) - if a process is created using either of the Spawn commands this will return the parent intercommunicator else returns MPI_comm_null.

  11. One-Sided Communications - Remote Memory Access > A process can specify all communication parameters for both the sending and receiving side. - MPI_put (remote write) - MPI_get (remote read) - MPI_accumulate (remote update)

  12. Initialize One-Sided Communications - MPI_win_create(base, size, disp_unit, info, comm, win) > called by all process in the group of communication. - MPI_win_free(win) > also called by all processes only after all RMA communications are completed. Frees the window memory from RMA communicator. -no process returns from free routine till all have called free.

  13. RMA Communications Pairs - MPI_win_post and MPI_win_wait - MPI_win_start and MPI_win_complete - MPI_win_lock and MPI_win_unlock

  14. RMA Transfer Routines - MPI_put(originaddr, origincount, origin_datatype, targetrank, targetdisp, targetcount, targetdatatype, win) - MPI_get - MPI_accumulate(originaddr, origincount, origindatatype, targetrank, targetdisp, targetcount, targetdatatype, op, win)

  15. Synchronization Abilities

  16. Extended Collective Operations - Intercommunicator Constructors > MPI_intercomm_create > MPI_comm_dup - Intracommunicators (now intercomm also) > MPI_comm_create > MPI_comm_split

  17. MPI_create

  18. MPI_split

  19. Extended Intercommunicator Collective Operations Formerly only intracommunicator routines - All-To-All: Alltoall, Alltoallv, Allreduce, Reduce_scatter - All-To-One: Gather, Gatherv, Reduce - One-To-One: Bcast, Scatter, Scatterv - Other: Scan, Barrier

  20. External Interfaces - users can associate names with communicators, windows, and datatypes. - users can add error codes, classes, and strings to MPI

  21. I/O - Added Support to Manipulate files and file systems on disk drives connected to the system.

  22. Sources - MPI-2: Extensions to the Message-Passing Interface http://www.mpi-forum.org/docs/mpi2-report.pdf

More Related