[firedrake] Installing Firedrake on an HPC machine

Lawrence Mitchell lawrence.mitchell at imperial.ac.uk
Tue Aug 11 09:37:51 BST 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 10/08/15 18:16, Justin Chang wrote:
> Hi Lawrence,
> 
> After several trial and run experimentations these last few days,
> I still get the warning even with the pre-fork branches. However,
> if I use our system's intel-compiled libraries and compilers, I get
> no such errors when using mpirun. I suspect that this may have
> something to do with the HPC system that I am running on.

Reading between the lines, it seems to be some bad interaction between
OpenMPI, forking, and the infiniband OpenFabrics transport.  I have
filed a bug that will remind us about it: I think our local HPC system
also has the same setup, but I have not run there recently.

> But I am now running into a stranger issue:
> 
> I have attached an RT0 code that I am working with. Basically, it
> takes as input the seed size (aka the number of cells to generate
> in each spatial direction). The command line argument goes like
> this: "mpirun -n 1 python Test_RT0.py <seed>"
> 
> I get strange errors when the seed number changes. I ran all
> problems with -log_trace. For <seed> = 3, i get this:
> 
> $ python Test_RT0.py 3

...

> pyop2.exceptions.CompilationError: Command "['mpicc', '-std=c99', 
> '-fPIC', '-Wall', '-g', '-O3', '-fno-tree-vectorize', 
> '-I/home/jchang23/petsc-dev/include', 
> '-I/home/jchang23/petsc-dev/arch-linux2-c-opt/include', 
> '-I/home/jchang23/firedrake-deps/firedrake/firedrake', 
> '-I/home/jchang23/firedrake-deps/PyOP2/pyop2', '-msse', '-o', 
> '/tmp/pyop2-cache-uid3003/32e0bd01cb649f218f2092c503c1d41f.so.tmp',
>
> 
'/tmp/pyop2-cache-uid3003/32e0bd01cb649f218f2092c503c1d41f.c',
> '-shared', '-L/home/jchang23/petsc-dev/lib', 
> '-L/home/jchang23/petsc-dev/arch-linux2-c-opt/lib', 
> '-Wl,-rpath,/home/jchang23/petsc-dev/lib', 
> '-Wl,-rpath,/home/jchang23/petsc-dev/arch-linux2-c-opt/lib',
> '-lpetsc', '-lm']" returned with error.
> 
> Unable to compile code

This error, I think, comes from using intel compilers, but passing gcc
options.  Can you try with:

parameters["pyop2_options"]["compiler"] = "intel"

which has some prebaked options for the intel compiler.

> For <seed>=5 I get this:

> 
> petsc4py.PETSc.Error: error code 77
> 
> [0] DMPlexGenerate() line 1080 in 
> /home/jchang23/petsc-dev/src/dm/impls/plex/plexgenerate.c
> 
> [0] DMPlexGenerate_CTetgen() line 834 in 
> /home/jchang23/petsc-dev/src/dm/impls/plex/plexgenerate.c
> 
> [0] TetGenTetrahedralize() line 21483 in 
> /home/jchang23/petsc-dev/arch-linux2-c-opt/externalpackages/ctetgen/ctetgen.c
>
>  [0] TetGenMeshDelaunizeVertices() line 12113 in 
> /home/jchang23/petsc-dev/arch-linux2-c-opt/externalpackages/ctetgen/ctetgen.c
>
>  [0] TetGenMeshDelaunayIncrFlip() line 12046 in 
> /home/jchang23/petsc-dev/arch-linux2-c-opt/externalpackages/ctetgen/ctetgen.c
>
>  [0] TetGenMeshInsertVertexBW() line 11559 in 
> /home/jchang23/petsc-dev/arch-linux2-c-opt/externalpackages/ctetgen/ctetgen.c
>
>  [0] TetGenMeshInSphereS() line 5411 in 
> /home/jchang23/petsc-dev/arch-linux2-c-opt/externalpackages/ctetgen/ctetgen.c
>
>  [0] Petsc has generated inconsistent data
> 
> [0] This is wrong
> 
> 
> I am very confused by these strange results. Any explanation for
> these?

This one, I /think/ I've seen before.  I believe that the intel
compiler produces bad code for ctetgen with optimisations on.  I think
this is plausibly a petsc-only problem, try with the same setup but do:

from petsc4py import PETSc
bdy = PETSc.DMPlex().create()
bdy.setDimension(2)
bdy.createCubeBoundary([0, 0, 0], [1, 1, 1], [5, 5, 5])
dm = PETSc.DMPlex().generate(bdy)

I don't have access to the intel compiler stack here, but maybe it's
worth reporting the bug in this form (assuming it shows up) to
petsc-maint.

If you're able to use gmsh to build the appropriate meshes, that is
probably a more robust option.  Alternately you could try (although I
never have) using tetgen (rather than ctetgen).  I think you'll need
to configure PETSc with --with-clanguage=c++ --download-tetgen (rather
than --download-ctetgen).

Cheers,

Lawrence
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJVybRbAAoJECOc1kQ8PEYvvS0IALzJjuMdyjvdn5H4RQtNAuHy
UiMVhPWqE6F9iIeTVBY+Or5YGjlTKFHBXKjZCl5Fs3TgK8GDsn0COuoy+9TWzMR9
Kn/XnxZuN1NYGwuiPlT8plahMGc2jAkI7peiPJsQyAfOfVA6nlBi6mDLiEDHuuvX
7g/9P/ZcWu89D9/9m/mfNTRZq9anF5zcXjIHHJzojdlg8DBWviAFO7gVpqivrD72
Zzr+Q3xaFKQI9deNkjFacjJPJT/OUkBKAf/n4BD5wNAPt6z/TCyTJ4fTdeZ4lY2I
2m6IDyJE4RNlmaPfzqq8D91T/kswy0wbC3IrMwTOGG47GoEYuOXqe45llZ/+M4U=
=HGNY
-----END PGP SIGNATURE-----



More information about the firedrake mailing list