View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002428 | OpenFOAM | Bug | public | 2017-01-11 11:56 | 2017-01-20 10:52 |
Reporter | hannes | Assigned To | henry | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | x86_64 | OS | Ubuntu | OS Version | 16.04 |
Product Version | dev | ||||
Summary | 0002428: sampling using cloudSet hangs in parallel run | ||||
Description | When using a cloudSet in a parallel run, the program hangs in meshSearch.findCell I have noticed this in a customized function object which uses a lot of cloudSets. But the issue also appears in the postProcess utility. | ||||
Steps To Reproduce | * Download and unpack attached case "sample_test.tgz" * Execute Allrun script * postProcess hangs in parallel | ||||
Tags | No tags attached. | ||||
|
|
|
I've gotten deeper into the debugging. We can reproduce the issue with using only 8 processors instead of 48. What happens is that when using 8 processors: - the 'processor3' ends the search early in 'cloudSet::calcSamples', because 'queryMesh.findCell' returned early; - all other processors kept trying to search and got stuck in the first sync in 'polyMeshTetDecomposition::findFaceBasePts', namely with: syncTools::swapBoundaryFacePositions(mesh, neighbourCellCentres); My preliminary assessment is that the method 'polyMesh::tetBasePtIs()' should somehow be called earlier, so that the sync always happens. Going back to why 'processor3' completed the search early, it was because within 'indexedOctree<Type>::findInside', the line: if (isContent(contentIndex)) considered that the 'contentIndex=1' is not 'content'. And this is where I managed to get to with the time I had. |
|
Try and replace the call to queryMesh.findCell(sampleCoords_[sampleI]); with something like mesh.findCell(sampleCoords_[sampleI]); since the octree is already on the polyMesh. The polyMesh::findCell should have provision for calling findFaceBasePts() before doing actual searching. |
|
Resolved in OpenFOAM-dev by commit 77bd21177b50d7f548dc2abeb6845f200d30001f Resolved in OpenFOAM-4.x by commit 8ff56d46b9c581a4e58752d251b034b4f9fc0028 |
Date Modified | Username | Field | Change |
---|---|---|---|
2017-01-11 11:56 | hannes | New Issue | |
2017-01-11 11:56 | hannes | File Added: sample_test.tgz | |
2017-01-16 00:56 | wyldckat | Note Added: 0007640 | |
2017-01-19 11:49 | MattijsJ | Note Added: 0007653 | |
2017-01-20 10:52 | henry | Assigned To | => henry |
2017-01-20 10:52 | henry | Status | new => resolved |
2017-01-20 10:52 | henry | Resolution | open => fixed |
2017-01-20 10:52 | henry | Fixed in Version | => 4.x |
2017-01-20 10:52 | henry | Note Added: 0007655 |