<meta http-equiv="Content-Type" content="text/html; charset=utf-8">Erik:<div><br></div><div><span></span>MPICH ABI is standardized so just parse the header once and forget about it.<div><br></div><div>Jeff <br><br>On Thursday, April 14, 2016, Erik Schnetter <<a href="mailto:schnetter@gmail.com">schnetter@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Rajeev<br>
<br>
Apologies; I sent an identical request to the OpenMPI developers as<br>
well. I meant the MPICH library here.<br>
<br>
In Julia, it is straightforward to call a function in a shared<br>
library, but it is not possible to access constants that are defined<br>
in a C header file, as this would require parsing C code. It would<br>
thus be convenient to access these constant in a different manner,<br>
e.g. by looking at the value of a global variable or constant.<br>
<br>
-erik<br>
<br>
On Thu, Apr 14, 2016 at 1:50 PM, Thakur, Rajeev <<a href="javascript:;" onclick="_e(event, 'cvml', 'thakur@mcs.anl.gov')">thakur@mcs.anl.gov</a>> wrote:<br>
>> Could you add similar constants to the OpenMPI shared library?<br>
><br>
> This list is for MPICH. Open MPI has a different mailing list.<br>
><br>
> In MPICH, these constants are defined in the mpi.h header file.<br>
><br>
> Rajeev<br>
><br>
><br>
>> On Apr 14, 2016, at 9:04 AM, Erik Schnetter <<a href="javascript:;" onclick="_e(event, 'cvml', 'schnetter@gmail.com')">schnetter@gmail.com</a>> wrote:<br>
>><br>
>> I am one of the maintainers of the MPI wrapper package for Julia<br>
>> <<a href="https://github.com/JuliaParallel/MPI.jl" target="_blank">https://github.com/JuliaParallel/MPI.jl</a>>. This package provides Julia<br>
>> language bindings for MPI, essentially wrapping various MPI functions,<br>
>> comparable to what mpi4py <<a href="http://pythonhosted.org/mpi4py/" target="_blank">http://pythonhosted.org/mpi4py/</a>> does for<br>
>> Python.<br>
>><br>
>> It is in Julia straightforward to call C functions in a shared<br>
>> library. The MPI API is standardized, so that part is straightforward.<br>
>> What is not standardized are the values of various constants, such as<br>
>> e.g. MPI_INT, MPI_MAX, or MPI_ANY_TAG.<br>
>><br>
>> We currently use a cmake function that builds and runs a small<br>
>> executable that outputs the (implementation-specific) values of these<br>
>> constants, and auto-generates Julia code that defines these constants.<br>
>> We do this when the Julia MPI package is installed or updated. This<br>
>> works fine, but I think there could be a better way.<br>
>><br>
>> The HDF5 library <<a href="https://www.hdfgroup.org/HDF5/" target="_blank">https://www.hdfgroup.org/HDF5/</a>> puts global<br>
>> constants into the data section of their library, with names derived<br>
>> from the preprocessor constants (with a _g suffix, I believe). This<br>
>> makes it straightforward to access the values of these constants at<br>
>> run time. For example, there exists a constant H5T_NATIVE_INT_g.<br>
>><br>
>> Could you add similar constants to the OpenMPI shared library? This<br>
>> would simplify wrapping the library.<br>
>><br>
>> Thanks,<br>
>> -erik<br>
>><br>
>> --<br>
>> Erik Schnetter <<a href="javascript:;" onclick="_e(event, 'cvml', 'schnetter@gmail.com')">schnetter@gmail.com</a>><br>
>> <a href="http://www.perimeterinstitute.ca/personal/eschnetter/" target="_blank">http://www.perimeterinstitute.ca/personal/eschnetter/</a><br>
>> _______________________________________________<br>
>> discuss mailing list     <a href="javascript:;" onclick="_e(event, 'cvml', 'discuss@mpich.org')">discuss@mpich.org</a><br>
>> To manage subscription options or unsubscribe:<br>
>> <a href="https://lists.mpich.org/mailman/listinfo/discuss" target="_blank">https://lists.mpich.org/mailman/listinfo/discuss</a><br>
><br>
> _______________________________________________<br>
> discuss mailing list     <a href="javascript:;" onclick="_e(event, 'cvml', 'discuss@mpich.org')">discuss@mpich.org</a><br>
> To manage subscription options or unsubscribe:<br>
> <a href="https://lists.mpich.org/mailman/listinfo/discuss" target="_blank">https://lists.mpich.org/mailman/listinfo/discuss</a><br>
<br>
<br>
<br>
--<br>
Erik Schnetter <<a href="javascript:;" onclick="_e(event, 'cvml', 'schnetter@gmail.com')">schnetter@gmail.com</a>><br>
<a href="http://www.perimeterinstitute.ca/personal/eschnetter/" target="_blank">http://www.perimeterinstitute.ca/personal/eschnetter/</a><br>
_______________________________________________<br>
discuss mailing list     <a href="javascript:;" onclick="_e(event, 'cvml', 'discuss@mpich.org')">discuss@mpich.org</a><br>
To manage subscription options or unsubscribe:<br>
<a href="https://lists.mpich.org/mailman/listinfo/discuss" target="_blank">https://lists.mpich.org/mailman/listinfo/discuss</a><br>
</blockquote></div></div><br><br>-- <br>Jeff Hammond<br><a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br><a href="http://jeffhammond.github.io/" target="_blank">http://jeffhammond.github.io/</a><br>