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"
//);

// ************************************************************************* //

Reply via email to