CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Meshing & Mesh Conversion (https://www.cfd-online.com/Forums/openfoam-meshing/)
-   -   [snappyHexMesh] Running snappyHexMesh in parallel - optimizing (https://www.cfd-online.com/Forums/openfoam-meshing/197122-running-snappyhexmesh-parallel-optimizing.html)

peterhess December 29, 2017 09:35

Running snappyHexMesh in parallel - optimizing
 
Hello!

I am facing a problem here using snappyHexMesh in parallel...

Steps made in my case are:

- blockMesh (structured Mesh)
- decompose (hierarchical)
- snappyHexMesh (in parallel)

Everything works actually fine.

Mesh size about 400 000 Cells.

The Mesh has a complex geometry in the center of the middle.

The decompose sparatestheMesh allready generated by blockMesh since no snappyHexMesh avaliable yet.

That means the cells are equally devided on the processors.

snappyHexMesh in parallel is using the Mesh generated by blockMesh and separated by decompose.

Because of the complex geometry in the middle of the Mesh, the cores loads during snappyHexMesh become different.

The cores responsable for Meshing the complex geometry have more to do than the others.

Cores time (sec)

4 --- 942

6 --- 881

7 --- 824

8 --- 696

9 --- 703

12 -- 877

As we can see the snappyHexMesh needs less time to 8 cores then more time!

How could I let the loads (number of cells) during the snappyHexMesh changes and optimize itself to run snappyHexMesh faster (equal load for every core).

Sure I can separate my blockMesh-Mesh manaully during the decompose step, but I cant separate them perfectly, cause I dont know in this step, how much cells per every core are needed.

Hardware:

IBM X3850 M2 - 4 X 4 cors - 3Ghz
RAM 32 GB

Ubuntu 17.10 - openFoam 5.0

Regards

Peter

Antimony January 2, 2018 23:11

Hi,

I had posted on this a couple of years back (https://www.cfd-online.com/Forums/op...optimally.html)

Instead of hierarchical for your decomposition method, choose scotch. The advantage with scotch is that it figures out the load on each processor for you and you do not need to specify anything.

While the initial decomposition (when using scotch) maybe similar to the hierarchical method, in subsequent iterations (feature/surface/region refinement steps) of snappyHexMesh, the scotch algorithm will do load balancing.

To see that, you can see the processor boundaries at the start of snappyHexMesh and at the end of snappyHexMesh. They will be different.

Hope this helps

Cheers,
Antimony

peterhess January 3, 2018 03:54

Thanks Antimony

I did not notice that. I will try.

Regards

Peter

PS: Yes u r right. Probleme solved. Thanks a lot!


All times are GMT -4. The time now is 16:36.