source: CIVL/examples/messagePassing/ring2.cvl@ 0f26e04

1.23 2.0 main test-branch
Last change on this file since 0f26e04 was 18cad8a, checked in by Stephen Siegel <siegel@…>, 12 years ago

Adding new version of MPI example ring2.cvl. It's starting to look very much like real MPI.

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

  • Property mode set to 100644
File size: 594 bytes
Line 
1/* Create nprocs processes. Have them exchange data in a cycle.
2 * Commandline example:
3 * civl verify -inputNPROCS=3 ring.cvl -simplify=false
4 */
5#include<civlc.h>
6#include "mp_root2.cvh"
7
8void MPI_Process (int rank) {
9#include "mp_proc2.cvh"
10
11 double x=rank, y;
12 MPI_Status stat;
13
14 MPI_Send(&x, 1, MPI_DOUBLE, (rank+1)%NPROCS, 0, MPI_COMM_WORLD);
15 MPI_Recv(&y, 1, MPI_DOUBLE, (rank+NPROCS-1)%NPROCS, 0, MPI_COMM_WORLD, &stat);
16 $assert y == (rank+NPROCS-1)%NPROCS;
17 $assert stat.size == sizeof(double);
18 $assert stat.source == (rank+NPROCS-1)%NPROCS;
19 $assert stat.tag == 0;
20}
Note: See TracBrowser for help on using the repository browser.