source:
CIVL/examples/contracts/contractsMPI/simpleMpiAgree.c
| Last change on this file was ea777aa, checked in by , 3 years ago | |
|---|---|
|
|
| File size: 375 bytes | |
| Rev | Line | |
|---|---|---|
| [214ffce] | 1 | #include<mpi.h> |
| 2 | #include<assert.h> | |
| 3 | ||
| 4 | ||
| 5 | #define comm MPI_COMM_WORLD | |
| 6 | ||
| [cc2ac3e] | 7 | /*@ |
| [214ffce] | 8 | @ \mpi_collective(comm, P2P): |
| [cc2ac3e] | 9 | @ requires \mpi_valid(x, 1, MPI_INT); |
| [214ffce] | 10 | @ ensures \mpi_agree(*x); |
| 11 | @*/ | |
| 12 | int bcast(int * x) { | |
| 13 | return 0; | |
| 14 | } | |
| 15 | ||
| 16 | ||
| 17 | /*@ | |
| 18 | @ \mpi_collective(comm, P2P): | |
| 19 | @ ensures \mpi_agree(\result); | |
| 20 | @*/ | |
| 21 | int target() { | |
| 22 | int rank; | |
| 23 | ||
| [7bbef04] | 24 | $havoc(&rank); |
| [214ffce] | 25 | bcast(&rank); |
| 26 | return rank; | |
| 27 | } |
Note:
See TracBrowser
for help on using the repository browser.
