Recv data from a node
value = MPI_Recv(rank,tag[, comm=mpi_comm])
The rank. TODO
The tag. TODO
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.
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.
Receive a variable from a specified node. The value is usually sent by the function MPI_Send.
For more information on the implementation of Scilab/MPI, please see Technical details about the implementation
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(); | ![]() | ![]() |