source: CIVL/examples/mpi/mpiFeature/Test_nonblocking/nonblocking_sendrecv_wildcard-bad.c

main
Last change on this file was ea777aa, checked in by Alex Wilton <awilton@…>, 3 years ago

Moved examples, include, build_default.properties, common.xml, and README out from dev.civl.com into the root of the repo.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5704 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 821 bytes
Line 
1#include "mpi.h"
2#include "assert.h"
3
4int main(int argc, char *argv[]) {
5 int numtasks, rank, next, prev, buf[2], tag1=1, tag2=2;
6 MPI_Request reqs[4];
7 MPI_Status stats[4];
8
9 MPI_Init(&argc,&argv);
10 MPI_Comm_size(MPI_COMM_WORLD, &numtasks);
11 MPI_Comm_rank(MPI_COMM_WORLD, &rank);
12
13 prev = rank-1;
14 next = rank+1;
15 if (rank == 0) prev = numtasks - 1;
16 if (rank == (numtasks - 1)) next = 0;
17
18 MPI_Irecv(&buf[0], 1, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &reqs[0]);
19 MPI_Irecv(&buf[1], 1, MPI_INT, MPI_ANY_SOURCE, tag2, MPI_COMM_WORLD, &reqs[1]);
20 MPI_Isend(&rank, 1, MPI_INT, prev, tag2, MPI_COMM_WORLD, &reqs[2]);
21 MPI_Isend(&rank, 1, MPI_INT, next, tag1, MPI_COMM_WORLD, &reqs[3]);
22
23 MPI_Waitall(4, reqs, stats);
24
25 assert(buf[0] == prev && buf[1] == next);
26
27 MPI_Finalize();
28}
Note: See TracBrowser for help on using the repository browser.