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
