[petsc-dev] Install location for MPIUNI mpi.h

Smith, Barry F. bsmith at mcs.anl.gov
Wed Apr 25 14:34:58 CDT 2018



> On Apr 25, 2018, at 2:31 PM, Jed Brown <jed at jedbrown.org> wrote:
> 
> "Smith, Barry F." <bsmith at mcs.anl.gov> writes:
> 
>>> On Apr 25, 2018, at 1:36 PM, Jed Brown <jed at jedbrown.org> wrote:
>>> 
>>> It is currently installed to include/petsc/mpiuni/mpi.h and petscsys.h
>>> includes it as <mpi.h>, which means that users of MPIUNI need to put
>>> -I/prefix/include/petsc/mpiuni in their command lines.  Matt and I agree
>>> that this is bad.  We disagree on the solution.
>>> 
>>> He wants to install it to /prefix/include/mpi.h as though the user had
>>> written --download-mpich.  This would conflict if a user later installs
>>> a real MPI to that location.
>> 
>>  Jed,
>> 
>>   So you propose in petscsys.h ?
>> 
>> #if defined(PETSC_HAVE_MPIUNI)
>> #include <petsc/mpiuni/mpi.h> 
>> #else
>> #include <mpi.h>
>> #endif
>> 
>>  I don't have a problem with this.
> 
> Yes, and same installation layout as today.

   Ok, this is far better than copying the mpiuni mpi.h file to a public place (Matt's suggestion) and is a bit better than requiring the extra -I flag (Satish's suggestion) 

> 
>> I notice that the Fortran petscsys.h is scattered full of weird MPIUni specific stuff like
>> 
>> #if defined (PETSC_HAVE_MPIUNI)
>> #include "mpiunifdef.h"
>> #endif
>> 
>> #if defined(PETSC_HAVE_MPIUNI)
>> #define MPI_Comm PetscFortranInt
>> #define MPI_Group PetscFortranInt
>> #define PetscMPIInt PetscFortranInt
>> #else
>> #define MPI_Comm integer
>> #define MPI_Group integer
>> #define PetscMPIInt integer
>> #endif
>> 
>> It seems PETSc Fortran does not use the standard mpif.h file? 
> 
> Yuck.

   I don't remember the history of this construct. There must have been a reason years ago that may no longer exist, I don't know.

   Barry




More information about the petsc-dev mailing list