Fix parallel build of examples/charm++/user-driven-interop
[charm.git] / tests / charm++ / jacobi3d-sdag / jacobi3d.ci
blobacb1e10ae6028bb53ea915a0df8ef605194c2a35
1 mainmodule jacobi3d {
3   readonly CProxy_Main mainProxy;
4   readonly int arrayDimX;
5   readonly int arrayDimY;
6   readonly int arrayDimZ;
7   readonly int blockDimX;
8   readonly int blockDimY;
9   readonly int blockDimZ;
11   readonly int num_chare_x;
12   readonly int num_chare_y;
13   readonly int num_chare_z;
15   readonly int globalBarrier;
16   readonly int maxIter;
17   readonly int ckptFreq;
19   message ghostMsg {
20     double gh[];
21   };
23   mainchare Main {
24     entry Main(CkArgMsg *m);
25     entry void start();
26     entry void report();
27   };
29   array [3D] Jacobi {
30     // Normal Charm++ entry methods
31     entry Jacobi(void);
32     entry void begin_iteration(void);
33     entry void receiveGhosts(ghostMsg *gmsg);
34     entry void processGhosts(ghostMsg *gmsg);
36     entry void doStep() {
37       serial "begin_iteration" {
38         begin_iteration();
39       }
40       for(imsg = 0; imsg < 6; imsg++) {
41         // "iterations" keeps track of messages across steps
42         when receiveGhosts[iterations] (ghostMsg *gmsg)
43           serial "process ghosts" { processGhosts(gmsg); }
44       }
45       serial "doWork" {
46         check_and_compute();
47       }
48     };
49   };
51   group JacobiMap : CkArrayMap {
52     entry JacobiMap(int x, int y, int z);
53   };
55   nodegroup OmpInitializer {
56     entry OmpInitializer(int numThreads); 
57   };