- PstreamBuffers nProcs() and allProcs() methods to recover the rank information consistent with the communicator used for construction - allowClearRecv() methods for more control over buffer reuse For example, pBufs.allowClearRecv(false); forAll(particles, particlei) { pBufs.clear(); fill... read via IPstream(..., pBufs); } This preserves the receive buffers memory allocation between calls. - finishedNeighbourSends() method as compact wrapper for finishedSends() when send/recv ranks are identically (eg, neighbours) - hasSendData()/hasRecvData() methods for PstreamBuffers. Can be useful for some situations to skip reading entirely. For example, pBufs.finishedNeighbourSends(neighProcs); if (!returnReduce(pBufs.hasRecvData(), orOp<bool>())) { // Nothing to do continue; } ... On an individual basis: for (const int proci : pBufs.allProcs()) { if (pBufs.hasRecvData(proci)) { ... } } Also conceivable to do the following instead (nonBlocking only): if (!returnReduce(pBufs.hasSendData(), orOp<bool>())) { // Nothing to do pBufs.clear(); continue; } pBufs.finishedNeighbourSends(neighProcs); ...
3 lines
33 B
Plaintext
3 lines
33 B
Plaintext
/* EXE_INC = */
|
|
/* EXE_LIBS = */
|