Collective Operations in MPI Collective operations are called by all processes in a communicator. MPI_BCAST distributes data from one process (the root) to all others in a communicator. MPI_REDUCE combines data from all processes in communicator and returns it to one process. In many numerical algorithms, SEND/RECEIVE can be replaced by BCAST/REDUCE, improving both simplicity and efficiency.
22
Embed
1 Introduction to Collective Operations in MPI l Collective operations are called by all processes in a communicator. MPI_BCAST distributes data from one.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Introduction to Collective Operations in MPI
Collective operations are called by all processes in a communicator.
MPI_BCAST distributes data from one process (the root) to all others in a communicator.
MPI_REDUCE combines data from all processes in communicator and returns it to one process.
In many numerical algorithms, SEND/RECEIVE can be replaced by BCAST/REDUCE, improving both simplicity and efficiency.
2
MPI Collective Communication
Communication and computation is coordinated among a group of processes in a communicator.
Groups and communicators can be constructed “by hand” or using topology routines.
Tags are not used; different communicators deliver similar functionality.
No non-blocking collective operations. Three classes of operations: synchronization,
data movement, collective computation.
3
Synchronization
MPI_Barrier( comm ) Blocks until all processes in the group of the
newtype contains all of the data of subarray_type.» Only change is “extent,” which is used only when
computing where in a buffer to get or put data relative to other data
22
Scattering A Matrix
sdisplace(1) = 0sdisplace(2) = 1sdisplace(3) = nsdisplace(4) = n + 1scounts(1,2,3,4)=1call MPI_Scatterv( a, scounts, sdispls, newtype,& alocal, n*n/4, MPI_DOUBLE_PRECISION,& 0, comm, ierr )» Note that process 0 sends 1 item of newtype but all
processes receive n2/4 double precision elements
Exercise: Work this out and convince yourself that it is correct