1.23
2.0
main
test-branch
| 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 |
|
|---|
| 8 | void 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.