[petsc-dev] OpenMPI && petsc-2.3.3-p15

Barry Smith bsmith at mcs.anl.gov
Wed Jan 6 14:58:02 CST 2010


    OK, I have added it to petsc-3.0.0 and added the comment that they  
can include mpicxx.h directly if they want to access the C++ MPI  
bindings.

    Barry

On Jan 6, 2010, at 2:45 PM, Satish Balay wrote:

> There was also a need to not include 'stdio.h' before mpi.h [for c++]
> - and we can't control this usage in user code. MPICH_SKIP_MPICXX has
> prevented this issue form coming up.
>
> [Perhaps newer versions of mpich/openmpi workarround this - but some
> users might still be using some older versions - or derivatives of
> mpich - where this issue would come up.]
>
> So I prefer keeping this flag - and perhaps have the rule: the few
> c++/mpi users should include 'mpi.h' and/or 'mpicxx.h' directly from
> their code - before including petsc.h.
>
> Satish
>
> On Wed, 6 Jan 2010, Barry Smith wrote:
>
>>
>>   Eric,
>>
>>    Could you describe, preferably with error messages printed by  
>> compilers
>> etc, why this is necessary? I read the comment in petsc.h
>>
>>
>>   PETSc does not use the C++ binding of MPI at ALL. The following  
>> flag
>>   makes sure the C++ bindings are not included. The C++ bindings  
>> REQUIRE
>>   putting mpi.h before ANY C++ include files, we cannot control this
>>   with all PETSc users.
>> */
>>
>> but could not reproduce the problem (I put C++ include files before  
>> mpi.h
>> without that flag and everything compiled and ran fine for both  
>> MPICH and
>> OpenMPI on my Apple).
>>
>> Do we really need the flags. I have no problem putting in the  
>> OpenMPI also,
>> but it does mean that PETSc users cannot use the C++ bindings of  
>> MPI (which
>> some may want to). So I would like to avoid both flags unless they  
>> are really
>> needed.
>>
>>  Thanks
>>
>>   Barry
>>
>>
>> On Jan 6, 2010, at 8:21 AM, Eric Chamberland wrote:
>>
>>> Hi,
>>>
>>> we have compile petsc-2.3.3-p15 with openMPI 1.3.4.  To have it  
>>> working
>>> with our C++ code, I did a "#define OMPI_SKIP_MPICXX".
>>>
>>> In petsc.h, this is already done but for MPICH, on line #137:
>>>
>>> #define MPICH_SKIP_MPICXX 1
>>>
>>> It would be nice to also have a:
>>>
>>> #define OMPI_SKIP_MPICXX" 1
>>>
>>> But I don't know if it would be necessery also in petsc release 3.
>>>
>>> Thank you!
>>>
>>> Eric
>>
>




More information about the petsc-dev mailing list