[petsc-dev] MPI_Exscan

Satish Balay balay at mcs.anl.gov
Thu Jul 28 16:47:00 CDT 2011


edit BuildSystem/.hg/hgrc and change URL to ssh://petsc@petsc.cs.iit.edu//hg/petsc/BuildSystem

Satish

On Thu, 28 Jul 2011, Mark F. Adams wrote:

> I added protection for MPI_Exscan in matnest.c and my code but I can not push the MPI.py file:
> 
> ~/Codes/petsc-dev/config/BuildSystem>hg push
> pushing to http://petsc.cs.iit.edu/petsc/BuildSystem
> searching for changes
> 1 changesets found
> remote: ssl required
> 
> Mark
> 
> On Jul 28, 2011, at 4:40 PM, Barry Smith wrote:
> 
> > 
> > On Jul 28, 2011, at 3:37 PM, Mark F. Adams wrote:
> > 
> >> I could not fine PETSC_HAVE_MPI_EXSCAN in the tags file.
> >> 
> >> Am I missing something?
> > 
> >   Why would it ever be in the tags file until someone uses it?   Like I said below you need to use it (where needed) and make sure it gets defined by adding code to MPI.py
> > 
> >   Barry
> > 
> >> 
> >> Mark
> >> 
> >> On Jul 28, 2011, at 3:31 PM, Barry Smith wrote:
> >> 
> >>> 
> >>> Ideally code like
> >>> 
> >>> #if defined(PETSC_HAVE_MPI_EXSCAN)
> >>>   cool C code that uses MPI_EXSCAN
> >>> #else 
> >>>   less cool C code that uses something else in MPI that is in MPI 1
> >>> #endif
> >>> 
> >>> less ideal but ok code
> >>> 
> >>> #if defined(PETSC_HAVE_MPI_EXSCAN)
> >>>   cool C code that uses MPI_EXSCAN
> >>> #else 
> >>>   SETERRQ(..., "Sorry but this code requires MPI_EXSCAN that doesn't exist on your machine's version of MPI, install a MPI2 with PETSc to get this functionality")
> >>> #endif
> >>> 
> >>> 
> >>>  Then to make sure PETSC_HAVE_MPI_EXSCAN gets defined when it can add  a test for MPI_Exscan() to bottom of config/BuildSystem/config/packages/MPI.py with the other tests for MPI to functions
> >>> 
> >>>  PETSc only requires MPI 1.1 support so any 2.0 or later stuff used needs this kind of protection.
> >>> 
> >>> Barry
> >>> 
> >>> 
> >>> On Jul 28, 2011, at 2:24 PM, Mark F. Adams wrote:
> >>> 
> >>>> Dumb question: How do you protect it?
> >>>> Mark
> >>>> 
> >>>> On Jul 28, 2011, at 3:05 PM, Barry Smith wrote:
> >>>> 
> >>>>> 
> >>>>> On Jul 28, 2011, at 11:55 AM, Jose E. Roman wrote:
> >>>>> 
> >>>>>> We are getting an undefined reference `MPI_Exscan'. This function is used in src/mat/impls/nest/matnest.c.
> >>>>>> If I am not wrong, MPI_Exscan was introduced in MPI-2 but was not available in the previous standard. Apparently, the machine where we are compiling is very old and has MPI-1 only.
> >>>>>> 
> >>>>>> I guess there should be a PETSC_HAVE_MPI_EXSCAN test in configure.
> >>>>> 
> >>>>> Correct, whoever used that MPI 2 function in PETSc is obligated to protect it.
> >>>>> 
> >>>>> Barry
> >>>>> 
> >>>>> 
> >>>>>> 
> >>>>>> Jose
> >>>>>> 
> >>>>> 
> >>>>> 
> >>>> 
> >>> 
> >>> 
> >> 
> > 
> > 
> 
> 




More information about the petsc-dev mailing list