source: CIVL/examples/messagePassing/ring1.cvl@ a054a5b

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

Clean up some messsage passing examples, made gcomm_create concretize size, make gcomm_create use the path condition to extract concrete value, found a lot of guard code which could be commented out.

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

  • Property mode set to 100644
File size: 455 bytes
RevLine 
[69bf2e6]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_root.cvh"
7
8void MPI_Process (int rank) {
[b7bd088]9 #include "mp_proc.cvh"
[e689ae5]10 $comm comm = $comm_create($here, COMM_WORLD, rank);
[69bf2e6]11 double x=rank, y;
[e689ae5]12
[b7bd088]13 send(&x, 1, (rank+1)%NPROCS, 0, comm);
14 recv(&y, 1, (rank+NPROCS-1)%NPROCS, 0, comm);
[69bf2e6]15 $assert(y==(rank+NPROCS-1)%NPROCS);
16}
Note: See TracBrowser for help on using the repository browser.