MPI_Recv
Recv data from a node
Syntax
value = MPI_Recv(rank, tag) value = MPI_Recv(rank, tag, comm=mpi_comm)
Arguments
- rank
The rank. TODO
- tag
The tag. TODO
- comm=mpi_comm
If the optional argument "comm" is given, this function will use the MPI communicator created by MPI_Create_comm. If not, the default MPI_COMM_WORLD is used.
- res
The value received from MPI_Send. If the optional argument "comm" is given, all nodes which are not in the communicator will return empty matrix.
Description
Receive a variable from a specified node. The value is usually sent by the function MPI_Send.
Technical implementation
For more information on the implementation of Scilab/MPI, please see Technical details about the implementation
Examples
MPI_Init(); rnk = MPI_Comm_rank(); sizeNodes = MPI_Comm_size(); SLV = rnk; // handy shortcuts, master is rank 0 Master = ~ SLV; // slaves are all other tag = 0; if Master // The master node for slaveId = 1:sizeNodes-1 // Send data to the slaves value = rand(100,100) + rand(100,100) * %i; MPI_Send(value, slaveId); end for slaveId = 1:sizeNodes-1 valueBack = MPI_Recv(slaveId, tag); // Check that the slaves gaves us what we expected assert_checkequal(valueBack,value + 1); end else // The slaves rankSource = 0; // Receive the information from the master value = MPI_Recv(rankSource); // Increment all the values by one value = value + 1; // Send back to the master MPI_Send(value, 0); end MPI_Finalize();
See also
- MPI_Send — Send data from a node to another
Report an issue | ||
<< MPI_Isend | Scilab MPI | MPI_Send >> |