diff options
author | knarf <knarf@cct.lsu.edu> | 2011-06-10 17:10:51 -0500 |
---|---|---|
committer | Barry Wardell <barry.wardell@gmail.com> | 2011-12-14 18:26:29 +0000 |
commit | e32933bad3b0ed5366c0a942b7431129c566fcd7 (patch) | |
tree | 265af38f1401594600d0f2e9933276a26ceaa5b9 /Carpet/Carpet/src/Comm.cc | |
parent | 02b7f7c4dab0d4bbb281c544439362379d77bd25 (diff) |
This was found to be necessary on hopper, otherwise memory seemed to be
overwritten while prolongating/syncronizing. It looks liks this might be an MPI
implementation issue, but this is not clear. A barrier at this point seems to
be a sufficient workaround, and is now used on hopper. For more information
about this, ask Frank Loeffler <knarf@cct.lsu.edu>
Use the cpp flag CARPET_MPI_BARRIER_PROLONGATE_SYNC to enable this.
Diffstat (limited to 'Carpet/Carpet/src/Comm.cc')
-rw-r--r-- | Carpet/Carpet/src/Comm.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Carpet/Carpet/src/Comm.cc b/Carpet/Carpet/src/Comm.cc index 1a18e62e9..6c7521740 100644 --- a/Carpet/Carpet/src/Comm.cc +++ b/Carpet/Carpet/src/Comm.cc @@ -140,6 +140,15 @@ namespace Carpet { ProlongateGroupBoundaries (cctkGH, goodgroups); timer.stop(); } + + // This was found to be necessary on hopper, otherwise memory seemed to be + // overwritten while prolongating/syncronizing. It looks liks this might be + // an MPI implementation issue, but this is not clear. A barrier at this + // point seems to be a sufficient workaround, and is now used on hopper. + // For more information about this, ask Frank Loeffler <knarf@cct.lsu.edu> +#ifdef CARPET_MPI_BARRIER_PROLONGATE_SYNC + MPI_Barrier(dist::comm()); +#endif // synchronise ghostzones if (sync_during_time_integration or local_do_prolongate) { |