ML with OpenMPI

Lisandro Dalcin dalcinl at gmail.com
Tue Mar 25 08:21:52 CDT 2008


However, I still do not understand why I never had this problem. Jed,
you built ML yourself, or were you letting PETSc to automatically
download and build it? Or perhaps I did not noticed the problem
because of MPICH2?

On 3/25/08, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
>     I have pushed this fix to petsc-dev
>
>     Thank you for figuring this out,
>
>
>     Barry
>
>
>  On Mar 25, 2008, at 2:38 AM, Jed Brown wrote:
>  > On Sat 2008-03-22 10:19, Lisandro Dalcin wrote:
>  >> Give a try. When using MPICH2, PETSc just passes
>  >> "--with-mpi=PATH_TO_MPI" and ML get it right. Perhaps ML have some
>  >> trouble with OpenMPI, I've never tried. If you built OpenMPI yourself
>  >> and with shared libs, do not forget to define LD_LIBRARY_PATH to
>  >> point
>  >> to the dir with the OpenMPI libs. If not, some configure test of ML
>  >> could fail, and then MPI is assumed to be absent.
>  >
>  > It turns out I was chasing this in entirely the wrong direction.  ML
>  > was
>  > configured just fine and was correctly using MPI, but we had not
>  > defined
>  > HAVE_CONFIG_H so ml_common.h was not setting all the variables that
>  > depend on
>  > ml_config.h.  In particular, ml_config.h sets HAVE_MPI correctly,
>  > but the
>  > following is in ml_config.h:
>  >
>  > #ifdef HAVE_CONFIG_H
>  > ...
>  > #ifdef HAVE_MPI
>  > #ifndef ML_MPI
>  > #define ML_MPI
>  > #endif
>  > #endif
>  > ...
>  > #endif /*ifdef HAVE_CONFIG_H*/
>  >
>  > Indeed, adding -DHAVE_CONFIG_H to CFLAGS in src/ksp/pc/impls/ml/
>  > makefile fixes
>  > the problem (and the manual include of ml_config.h in ml.c becomes
>  > unnecessary).
>  > That is, the patch below makes everything work correctly.
>  >
>  > Jed
>  >
>  >
>  > diff -r 2ae11e456aa7 src/ksp/pc/impls/ml/makefile
>  > --- a/src/ksp/pc/impls/ml/makefile      Fri Mar 21 17:33:24 2008 -0500
>  > +++ b/src/ksp/pc/impls/ml/makefile      Tue Mar 25 08:35:12 2008 +0100
>  > @@ -5,7 +5,7 @@
>  >
>  > ALL: lib
>  >
>  > -CFLAGS   = ${ML_INCLUDE}
>  > +CFLAGS   = ${ML_INCLUDE} -DHAVE_CONFIG_H
>  > FFLAGS   =
>  > SOURCEC  = ml.c
>  > SOURCEF  =
>  > diff -r 2ae11e456aa7 src/ksp/pc/impls/ml/ml.c
>  > --- a/src/ksp/pc/impls/ml/ml.c  Fri Mar 21 17:33:24 2008 -0500
>  > +++ b/src/ksp/pc/impls/ml/ml.c  Tue Mar 25 08:35:12 2008 +0100
>  > @@ -10,7 +10,6 @@
>  >
>  > #include <math.h>
>  > EXTERN_C_BEGIN
>  > -#include "ml_config.h"
>  > #include "ml_include.h"
>  > EXTERN_C_END
>
>


-- 
Lisandro Dalcín
---------------
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594




More information about the petsc-dev mailing list