[petsc-dev] dealing with MPIUNi

Barry Smith bsmith at mcs.anl.gov
Fri Feb 26 15:40:52 CST 2010


On Feb 26, 2010, at 3:32 PM, Lisandro Dalcin wrote:

> On 26 February 2010 18:05, Barry Smith <bsmith at mcs.anl.gov> wrote:
>>
>>  Ok, it is still a mess as a special case but I don't see a way  
>> around it if
>> we want users to be able to use the mpi.h and mpif.h directly. So  
>> it is back
>> to adding the -Iinclude/mpiuni to the search directories. But there  
>> is never
>> a libmpiuni.a
>>
>
> I still think that we should have an autogenerated "petscmpi.h" in
> $PETSC_DIR/$PETSC_ARCH/include ... If third party code are using all
> the niceties PETSc's Makefile infrastructure and moreover want to use
> the PETSc-provided fake MPI without ever bothering for managing
> include dirs, libraries and library dirs, I think it is reasonable to
> ask these codes to change "mpi.h" -> "petscmpi.h" ... However, I
> understand this could not work at all for Fortran 90 modules
>

    I tried this and had it working but got resistence, here is the  
problem.

    Say a user has and application that depends on two sets of  
libraries both using MPI, say liba uses PETSc and is built using  
PETSc's makefile infrastructure. Meanwhile libb has nothing to do with  
PETSc and has no explicit support for compiling without MPI.  People  
want to build the entire application without MPI. Say also libb is  
used in other applications that have nothing to do with PETSc.

1) Your solution. Go into non-PETSc code and hardwire in petscmpi.h  
instead of mpi.h, but since libb is used in other apps without PETSc  
they need to ifdef when to use petscmpi.h instead of mpi.h

2) The previous PETSc mpiuni model. User does not change libb source  
code at all, instead they just compile against -Iinclude/mpiuni when  
they want to use it with PETSc and no MPI.

   Unfortunately MPIUNI seems to require a series of compromises for  
different persons needs and hence is a bit of a hodge-podge, I don't  
see a way around this to be completely clean and make everyone happy,

   Barry

>
> -- 
> Lisandro Dalcin
> ---------------
> 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