Toby,
PETSc's MPI-uni has an include file with the MPI names but it attempts to map them all immediately to private PETSc names; the intention is that MPI Uni won't have public MPI symbols in the libraries that can clash with other package's private MPI-uni-like symbols. We may have missed some, of course, that need to be fixed. The idea behind MPI-uni is to live harmoniously and orthogonally with everyone else's MPI-uni. Barry > On Apr 16, 2021, at 3:36 PM, Isaac, Tobin G <[email protected]> wrote: > > Understandable, p4est has its own minimal pseudo-mpi interface, I'll work > with Satish and the other p4est devs to a simple way to keep the MPIUNI / > MPIP4EST from colliding. > > ________________________________________ > From: Barry Smith <[email protected]> > Sent: Friday, April 16, 2021 16:10 > To: Isaac, Tobin G > Cc: petsc-dev > Subject: Re: [petsc-dev] p4est w/o MPI > > > Toby, > > It was never our intention that MPIUNI support any other packages besides > PETSc/SLEPc as an "mpi substitute". There are just so many fragile aspects to > it. I think it is is best if p4est maintains its own non-MPI version (if it > wants to have such as thing) and does not have it involve MPIUNI. > > Barry > > > > On Apr 16, 2021, at 12:53 PM, Isaac, Tobin G > <[email protected]<mailto:[email protected]>> wrote: > > Hmm. So if petsc always compiles mpiuni if --with-mpi=0, then it makes me > think it should be possible to drop requires(MPI) from p4est, while still > passing `--enable-mpi` to p4est. > > Maybe: if mpiuni doesn't provide some esoteric part of MPI that p4est uses, > it will break. > > Toby Isaac, Assistant Professor, GTCSE > > ________________________________ > From: Satish Balay <[email protected]<mailto:[email protected]>> > Sent: Friday, April 16, 2021 1:03:55 PM > To: Isaac, Tobin G <[email protected]<mailto:[email protected]>> > Cc: petsc-dev <[email protected]<mailto:[email protected]>> > Subject: Re: [petsc-dev] p4est w/o MPI > > Thanks! Another issue: > > mpiuni provides mpi.h. And I get the following errors when building PETSc. > > /home/balay/petsc/arch-linux-c-debug/include/sc.h:87:2: error: #error "mpi.h > is included. Use --enable-mpi." > 87 | #error "mpi.h is included. Use --enable-mpi." > | ^~~~~ > > etc.. > > Satish > > > On Fri, 16 Apr 2021, Isaac, Tobin G wrote: > >> Yes, `--disable-mpi` should be accepted by p4est. >> >> ________________________________________ >> From: Satish Balay <[email protected]<mailto:[email protected]>> >> Sent: Friday, April 16, 2021 11:47 >> To: Satish Balay via petsc-dev >> Cc: Isaac, Tobin G >> Subject: Re: [petsc-dev] p4est w/o MPI >> >> BTW: Is there no --disable-mpi option? >> >> Satish >> >> On Fri, 16 Apr 2021, Satish Balay via petsc-dev wrote: >> >>> MPI pacakge is a bit weird compared to others [as it does this funny thing >>> with MPIUNI]. >>> >>> For regular packages - I guess I would use 'if package.found' >>> >>> I guess I should create an MR with this diff. >>> >>> Satish >>> >>> ---- >>> >>> diff --git a/config/BuildSystem/config/packages/p4est.py >>> b/config/BuildSystem/config/packages/p4est.py >>> index e7108b0ab8..40d6797f02 100644 >>> --- a/config/BuildSystem/config/packages/p4est.py >>> +++ b/config/BuildSystem/config/packages/p4est.py >>> @@ -24,14 +24,16 @@ class Configure(config.package.GNUPackage): >>> self.blasLapack = framework.require('config.packages.BlasLapack',self) >>> self.zlib = framework.require('config.packages.zlib',self) >>> self.memalign = framework.argDB['with-memalign'] >>> - self.deps = [self.mpi,self.blasLapack,self.zlib] >>> + self.deps = [self.blasLapack,self.zlib] >>> + self.odeps = [self.mpi] >>> return >>> >>> def formGNUConfigureArgs(self): >>> args = config.package.GNUPackage.formGNUConfigureArgs(self) >>> if self.argDB['with-p4est-debugging']: >>> args.append('--enable-debug') >>> - args.append('--enable-mpi') >>> + if not self.mpi.usingMPIUni: >>> + args.append('--enable-mpi') >>> >>> args.append('CPPFLAGS="'+self.headers.toStringNoDupes(self.dinclude)+'"') >>> args.append('LIBS="'+self.libraries.toString(self.dlib)+'"') >>> args.append('--enable-memalign='+self.memalign) >>> >>> On Fri, 16 Apr 2021, Isaac, Tobin G wrote: >>> >>>> Matt, this is the configure logic I would like, but I don't know how to do >>>> it: >>>> - configure p4est after MPI, but do not require MPI >>>> - if MPI is present, add the '--enable-mpi' flack in >>>> formGNUConfigureArgs(), otherwise omit it. >>>> >>>> ________________________________________ >>>> From: Isaac, Tobin G <[email protected]<mailto:[email protected]>> >>>> Sent: Friday, April 16, 2021 11:03 >>>> To: Mark Adams; For users of the development version of PETSc >>>> Subject: Re: [petsc-dev] p4est w/o MPI >>>> >>>> p4est has a mode where it can compile without MPI, I don't know if PETSc >>>> is using it, will check. >>>> >>>> ________________________________________ >>>> From: petsc-dev >>>> <[email protected]<mailto:[email protected]>> on >>>> behalf of Mark Adams <[email protected]<mailto:[email protected]>> >>>> Sent: Friday, April 16, 2021 10:23 >>>> To: For users of the development version of PETSc >>>> Subject: [petsc-dev] p4est w/o MPI >>>> >>>> I don't have MPI (Fugaku w/ gcc) and p4est seems to need it. Is there a >>>> work around? >>>> Thanks, >>>> Mark >>>> >>> >> > >
