Hi everyone,
may I have your help on a strange problem?
High performance computing is new to me and I have not much idea about OpenMPI
and OpenFoam (OF) which uses the "mpirun" command.
I have to support the OF application in my company and have been trying to find
the problem since about 1 week.
The versions are openmpi-1.3.2 and OF 2.0.1 which are running on openSUSE 11.3
x86_64.
The computer is brand new, has 96 GB RAM, 12 CPUs and was installed with Linux
some weeks ago.
I installed OF 2.0.1 according to the vendors instructions at
http://www.openfoam.org/archive/2.0.1/download/suse.php.
Here the problem:
The experienced user tested the OF with a test case out of one of the vendors
tutorials.
He only used the computing power of his local machine "caelde04" , no other
computers were accessed by mpirun.
He found no problem when testing in single "processor mode" but in
"multiprocessor mode" his calculations hangs when he distributes
the calculations to more than 2 CPUs. The OF vendor thinks this is an OpenMPI
problem somehow and that is why I am trying to get
help from this forum here.
I attached 2 files, one is the "decomposeParDict" which resides in the "system"
subdirectory of his test case and the other is the log file
from the "decomposePar" command and the mpirun command "mpirun -np 9 interFoam
-parallel".
Do you have an idea where the problem is or how I can narrow it down?
Thanks much for any help.
Andre
testuser@caelde04:~> cd /home/testuser/OpenFOAM/testuser-2.0.1/nozzleFlow2D
testuser@caelde04:~/OpenFOAM/testuser-2.0.1/nozzleFlow2D> .
/opt/openfoam201/etc/bashrc
testuser@caelde04:~/OpenFOAM/testuser-2.0.1/nozzleFlow2D> which mp
mp2bug mpeg_encode mpiCC mpicxx
mpif77-vt mpirunDebug mplex
mpartition mperfmon mpicc-vt mpicxx-vt
mpif90 mpi-selector mprof-decoder
mpeg2enc80 mpic++ mpiCC-vt mpiexec
mpif90-vt mpi-selector-menu mprof-heap-viewer
mpeg2_encode mpicc mpic++-vt mpif77
mpirun mplayerthumbsconfig mpt-status
testuser@caelde04:~/OpenFOAM/testuser-2.0.1/nozzleFlow2D> which mpirun
/usr/lib64/mpi/gcc/openmpi/bin/mpirun
testuser@caelde04:~/OpenFOAM/testuser-2.0.1/nozzleFlow2D> decomposePar
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.0.1 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 2.0.1-51f1de99a4bc
Exec : decomposePar
Date : Jan 06 2012
Time : 11:00:11
Host : caelde04
PID : 6988
Case : /home/testuser/OpenFOAM/testuser-2.0.1/nozzleFlow2D
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using
timeStampMaster
allowSystemOperations : Disallowing user-supplied system call operations
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time
Time = 0
Create mesh
Calculating distribution of cells
Selecting decompositionMethod hierarchical
Finished decomposition in 0.01 s
Calculating original mesh data
Distributing cells to processors
Distributing faces to processors
Distributing points to processors
Constructing processor meshes
Processor 0
Number of cells = 833
Number of faces shared with processor 1 = 86
Number of processor patches = 1
Number of processor faces = 86
Number of boundary faces = 1693
Processor 1
Number of cells = 833
Number of faces shared with processor 0 = 86
Number of faces shared with processor 2 = 107
Number of processor patches = 2
Number of processor faces = 193
Number of boundary faces = 1699
Processor 2
Number of cells = 833
Number of faces shared with processor 1 = 107
Number of faces shared with processor 3 = 112
Number of processor patches = 2
Number of processor faces = 219
Number of boundary faces = 1683
Processor 3
Number of cells = 833
Number of faces shared with processor 2 = 112
Number of faces shared with processor 4 = 110
Number of processor patches = 2
Number of processor faces = 222
Number of boundary faces = 1680
Processor 4
Number of cells = 833
Number of faces shared with processor 3 = 110
Number of faces shared with processor 5 = 106
Number of processor patches = 2
Number of processor faces = 216
Number of boundary faces = 1682
Processor 5
Number of cells = 833
Number of faces shared with processor 4 = 106
Number of faces shared with processor 6 = 97
Number of processor patches = 2
Number of processor faces = 203
Number of boundary faces = 1687
Processor 6
Number of cells = 833
Number of faces shared with processor 5 = 97
Number of faces shared with processor 7 = 86
Number of processor patches = 2
Number of processor faces = 183
Number of boundary faces = 1693
Processor 7
Number of cells = 833
Number of faces shared with processor 6 = 86
Number of faces shared with processor 8 = 78
Number of processor patches = 2
Number of processor faces = 164
Number of boundary faces = 1688
Processor 8
Number of cells = 836
Number of faces shared with processor 7 = 78
Number of processor patches = 1
Number of processor faces = 78
Number of boundary faces = 1770
Number of processor faces = 782
Max number of cells = 836 (0.32% above average 833.33333)
Max number of processor patches = 2 (12.5% above average 1.7777778)
Max number of faces between processors = 222 (27.749361% above average
173.77778)
Processor 0: field transfer
Processor 1: field transfer
Processor 2: field transfer
Processor 3: field transfer
Processor 4: field transfer
Processor 5: field transfer
Processor 6: field transfer
Processor 7: field transfer
Processor 8: field transfer
End.
testuser@caelde04:~/OpenFOAM/testuser-2.0.1/nozzleFlow2D> mpirun -np 9
interFoam -parallel
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.0.1 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 2.0.1-51f1de99a4bc
Exec : interFoam -parallel
Date : Jan 06 2012
Time : 11:00:53
Host : caelde04
PID : 6995
Case : /home/testuser/OpenFOAM/testuser-2.0.1/nozzleFlow2D
nProcs : 9
Slaves :
8
(
caelde04.6996
caelde04.6997
caelde04.6998
caelde04.6999
caelde04.7000
caelde04.7001
caelde04.7002
caelde04.7003
)
Pstream initialized with:
floatTransfer : 0
nProcsSimpleSum : 0
commsType : nonBlocking
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using
timeStampMaster
allowSystemOperations : Disallowing user-supplied system call operations
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time
Create mesh for time = 0
PIMPLE: Operating solver in PISO mode
Reading field p_rgh
Reading field alpha1
Reading field U
Reading/calculating face flux field phi
Reading transportProperties
Selecting incompressible transport model Newtonian
Selecting incompressible transport model Newtonian
Selecting turbulence model type LESModel
Selecting LES turbulence model oneEqEddy
--> FOAM Warning :
From function cubeRootVolDelta::calcDelta()
in file cubeRootVolDelta/cubeRootVolDelta.C at line 52
Case is 2D, LES is not strictly applicable
oneEqEddyCoeffs
{
ce 1.048;
ck 0.094;
}
Reading g
Calculating field g.h
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.0.1 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
note "mesh decomposition control dictionary";
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 9;
//- Keep owner and neighbour on same processor for faces in zones:
// preserveFaceZones (heater solid1 solid3);
//- Keep owner and neighbour on same processor for faces in patches:
// (makes sense only for cyclic patches)
//preservePatches (cyclic_half0 cyclic_half1);
//- Use the volScalarField named here as a weight for each cell in the
// decomposition. For example, use a particle population field to decompose
// for a balanced number of particles in a lagrangian simulation.
// weightField dsmcRhoNMean;
// method scotch;
method hierarchical;
// method simple;
// method metis;
// method manual;
// method multiLevel;
// method structured; // does 2D decomposition of structured mesh
multiLevelCoeffs
{
// Decomposition methods to apply in turn. This is like hierarchical but
// fully general - every method can be used at every level.
level0
{
numberOfSubdomains 64;
//method simple;
//simpleCoeffs
//{
// n (2 1 1);
// delta 0.001;
//}
method scotch;
}
level1
{
numberOfSubdomains 4;
method scotch;
}
}
// Desired output
simpleCoeffs
{
n (2 1 1);
delta 0.001;
}
hierarchicalCoeffs
{
n (1 9 1);
delta 0.001;
order xyz;
}
metisCoeffs
{
processorWeights
(
1
1
1
1
1
1
1
1
1
);
}
scotchCoeffs
{
//processorWeights
//(
// 1
// 1
// 1
// 1
//);
//writeGraph true;
//strategy "b";
}
manualCoeffs
{
dataFile "decompositionData";
}
structuredCoeffs
{
// Patches to do 2D decomposition on. Structured mesh only; cells have
// to be in 'columns' on top of patches.
patches (bottomPatch);
}
//// Is the case distributed
//distributed yes;
//// Per slave (so nProcs-1 entries) the directory above the case.
//roots
//(
// "/tmp"
// "/tmp"
//);
// ************************************************************************* //