Investigate whether we can use an MPI_Barrier to synchronize BoardReaders with a newer version of MPI
At the moment, we don't have any enforced synchronization between BoardReaders when we are sending fragments. However, there are situations in which it may be nice to have such a thing. (For example, in the demo system when we have multiple BoardReaders.)
Back in the early days of artdaq, MPI_Barrier calls were used to provide this functionality, but they were removed so that we wouldn't get into a situation in which we are trying to end a run, but can't, because one of the BoardReaders is stuck waiting for the others to reach the Barrier but instead have already ended the run.
A possible solution to this dilemma (wanting some level of barrier functionality and wanting to have endRun work reliably) is to use barriers with timeouts. The MPI_Barrier call in the version of MPI that we are currently using does not support a timeout, but I believe that a later version of MPI will have that.
If a new version of MPI is needed, there will probably be spin-off issues for validating the new MPI.