View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003748 | OpenFOAM | Bug | public | 2021-10-29 09:23 | 2021-10-29 10:49 |
Reporter | mboesi | Assigned To | henry | ||
Priority | normal | Severity | tweak | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | Unix | OS | Ubuntu | OS Version | 18.04 |
Summary | 0003748: Significant MPI overhead when solving chemistry if mechanism reduction is not active | ||||
Description | The active species are synced between the different MPI processors at the end of the solve method in TDACChemistryModel: if (Pstream::parRun()) { List<bool> active(composition.active()); Pstream::listCombineGather(active, orEqOp<bool>()); Pstream::listCombineScatter(active); forAll(active, i) { if (active[i]) { composition.setActive(i); } } } If the mechanism reduction is not active, the active species should never change and, thus, the sync should not be required. I've done some code profiling in parallel mode which showed that typically more than 30% of the computational costs arise from that MPI communication. I'm still running some tests on this. To prevent this excessive and, in cases without mechanism reduction, unnecessary MPI communication, the synchronization of the active species should only be done when mechanism reduction is actvite: OF9: if (Pstream::parRun() && reduced) OFdev if (Pstream::parRun() && mechRedActive_) | ||||
Tags | No tags attached. | ||||