[petsc-dev] MPI_Exscan

Mark F. Adams mark.adams at columbia.edu
Thu Jul 28 15:37:20 CDT 2011


I could not fine PETSC_HAVE_MPI_EXSCAN in the tags file.

Am I missing something?

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