charm
charm copied to clipboard
Add refnum with CkCallback example that hangs
Test command: jsrun -n2 -a1 -c1 -g1 ./test +ppn 1 +pemap L0,4
Hangs with both pamilrts-linux-ppc64le-smp
and netlrts-linux-ppc64le-smp
on OLCF Summit.
Once [iter]
(reference number matching) is removed from recv()
, the code works fine.
Doesn't examples/charm++/ckcallback
work and do basically the same thing? What does this test do differently from that?
@stwhite91 Thanks for pointing that out, I'm not sure yet as to what's exactly different but that test passes and this one hangs.
With this change, the example completes:
$ git diff -U2
diff --git a/examples/charm++/refnum/test.C b/examples/charm++/refnum/test.C
index 49d89b8f0..a099283fb 100644
--- a/examples/charm++/refnum/test.C
+++ b/examples/charm++/refnum/test.C
@@ -25,5 +25,5 @@ public:
Array1() {
iter = 0;
- cb = CkCallback(CkIndex_Array1::recv(), thisProxy[thisIndex]);
+ cb = CkCallback(CkIndex_Array1::recv(nullptr), thisProxy[thisIndex]);
}
diff --git a/examples/charm++/refnum/test.ci b/examples/charm++/refnum/test.ci
index 2c06ad807..b42c8f636 100644
--- a/examples/charm++/refnum/test.ci
+++ b/examples/charm++/refnum/test.ci
@@ -16,5 +16,5 @@ mainmodule test {
}
- when recv[iter]() serial {
+ when recv[iter](CkMessage* msg) serial {
CkPrintf("[%d] recv for iter %d\n", thisIndex, iter);
}
@@ -25,5 +25,5 @@ mainmodule test {
}
}
- entry void recv();
+ entry void recv(CkMessage* msg);
};
};
I'm not sure what is going wrong with parameter marshalling that is causing the hang without this change.