source: CIVL/examples/concurrency/ring1.cvl@ b5f707b

1.23 2.0 acw/focus-triggers main test-branch
Last change on this file since b5f707b was 3ff27cf, checked in by Manchun Zheng <zmanchun@…>, 11 years ago

updated examples since $assert/$assume has been changed to functions; fixed the model builder for the new side-effect remover.

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

  • Property mode set to 100644
File size: 502 bytes
Line 
1#include <civlc.cvh>
2/* Create nprocs processes. Have them exchange data in a cycle.
3 * Commandline example:
4 * civl verify -inputNPROCS=3 ring.cvl -simplify=false
5 */
6#include<comm.cvh>
7#include "mp_root.cvh"
8
9void MPI_Process (int rank) {
10 #include "mp_proc.cvh"
11 $comm comm = $comm_create($here, COMM_WORLD, rank);
12 double x=rank, y;
13
14 send(&x, 1, (rank+1)%NPROCS, 0, comm);
15 recv(&y, 1, (rank+NPROCS-1)%NPROCS, 0, comm);
16 $assert((y==(rank+NPROCS-1)%NPROCS));
17 $comm_destroy(comm);
18}
Note: See TracBrowser for help on using the repository browser.