Re: [petsc-dev] Install location for MPIUNI mpi.h
Bitbucket keeps saying "Something went wrong while creating your pull request." but you can look at the branch https://bitbucket.org/petsc/petsc/branch/jed/mpiuni-include/maint @balay Can we simply remove the MPIUNI includes from MPI.py or should we remove it later? What --download packages are supported when using MPIUNI? I don't see any examples. "Smith, Barry F." <[email protected]> writes:
On Apr 25, 2018, at 2:47 PM, Balay, Satish <[email protected]> wrote:
On Wed, 25 Apr 2018, Smith, Barry F. wrote:
On Apr 25, 2018, at 2:31 PM, Jed Brown <[email protected]> wrote:
"Smith, Barry F." <[email protected]> writes:
On Apr 25, 2018, at 1:36 PM, Jed Brown <[email protected]> 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)
All approaches have drawbacks. This approach breaks user code. I guess thats easy to work arround [and fix these examples awell]
$ git grep '<mpi\.h>' |grep examples src/dm/examples/tests/ex42.c:#include <mpi.h> src/tao/leastsquares/examples/tutorials/chwirut2.c:#include <mpi.h>
Fix these examples at the same time.
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
I might have diverged from mpi standard to prevent '-i8' affecting petsc+mpiuni code.
Ah, yes
Satish
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
participants (1)
-
Jed Brown