Hi, There was some discussion of HDF5 and c++ recently on this list (See: http://lists.einsteintoolkit.org/pipermail/users/2010-September/000515.html ). And also on the trac list in October. In relation to these, our group has been having several problems related to HDF5 and c++ recently. On many of the production environments where we run, there is no hdf5 build available which includes cpp support. In particular a build failed when searching for libhdf5_hl_cpp. We worked around this by removing these libraries from the list in ExternalLibraries/HDF5/HDF5.sh. This seemed to work, but required our hacking the repository version of the code and presumably could cause a failure with any thorns needing HDF5 C++ support. At the same time (actually going back to the first ETK release) I have had difficulty compiling on MacOS, (the macports hdf5-18 doesn't support fortran or c++ with openmpi). I don't generally need hdf5 when I'm doing development on my laptop, but it would be good to have it working. I recently tried using the HDF5=BUILD option on Mac, but this seemed to lead to the same problem in different form. The HDF5 configuration failed with a complaint that --enable-cxx was incompatible with MPI compilers. Getting to the point now, I have some questions:
1. Is there a good reason why HDF5 needs the C++ libraries in Cactus? 2. Does hdf5 1.8.5 even support the c++ interface? 3. What should we be doing differently to work around these issues?
Thanks. John.
On Thu, Dec 09, 2010 at 12:04:23PM -0500, John Baker wrote:
- Is there a good reason why HDF5 needs the C++ libraries in Cactus?
Out of convenience for people building c++ tools against it. I don't know of any thorn actually using the c++ bindings.
- Does hdf5 1.8.5 even support the c++ interface?
Yes, I frequently build it. However, as you already stated, c++ bindings and parallel hdf5 support are not supported together.
- What should we be doing differently to work around these issues?
I the light of discussions on hdf5 lists which describe the c++ bindings as buggy and not maintained, we should probably not use them in any code - and also not build them within Cactus.
This of course leaves the users of tools in the cold which still use the c++ API. At the moment only the Carpet Visit plugin comes to my mind though - which should be possible to be build against the hdf5 library within visit itself. Who else uses the c++ hdf5 interface?
Frank
On Thursday, December 09, 2010 09:15:19 am Frank Loeffler wrote:
On Thu, Dec 09, 2010 at 12:04:23PM -0500, John Baker wrote:
- Is there a good reason why HDF5 needs the C++ libraries in Cactus?
Out of convenience for people building c++ tools against it. I don't know of any thorn actually using the c++ bindings.
- Does hdf5 1.8.5 even support the c++ interface?
Yes, I frequently build it. However, as you already stated, c++ bindings and parallel hdf5 support are not supported together.
- What should we be doing differently to work around these issues?
I the light of discussions on hdf5 lists which describe the c++ bindings as buggy and not maintained, we should probably not use them in any code - and also not build them within Cactus.
This of course leaves the users of tools in the cold which still use the c++ API. At the moment only the Carpet Visit plugin comes to my mind though - which should be possible to be build against the hdf5 library within visit itself. Who else uses the c++ hdf5 interface?
Given the bad support of the C++ API of HDF5, and all associated incompatibilities, I wanted to switch back to the C version in the VisIt plugin and the upcoming Nirvana file format. Other than that, I am currently not aware of any other C++ HDF5 calls within Cactus.
cheers, Christian
On Thu, Dec 9, 2010 at 5:04 PM, John Baker john.g.baker@nasa.gov wrote:
Hi, There was some discussion of HDF5 and c++ recently on this list (See: http://lists.einsteintoolkit.org/pipermail/users/2010-September/000515.html ). And also on the trac list in October. In relation to these, our group has been having several problems related to HDF5 and c++ recently. On many of the production environments where we run, there is no hdf5 build available which includes cpp support. In particular a build failed when searching for libhdf5_hl_cpp. We worked around this by removing these libraries from the list in ExternalLibraries/HDF5/HDF5.sh. This seemed to work, but required our hacking the repository version of the code and presumably could cause a failure with any thorns needing HDF5 C++ support. At the same time (actually going back to the first ETK release) I have had difficulty compiling on MacOS, (the macports hdf5-18 doesn't support fortran or c++ with openmpi). I don't generally need hdf5 when I'm doing development on my laptop, but it would be good to have it working. I recently tried using the HDF5=BUILD option on Mac, but this seemed to lead to the same problem in different form. The HDF5 configuration failed with a complaint that --enable-cxx was incompatible with MPI compilers. Getting to the point now, I have some questions:
- Is there a good reason why HDF5 needs the C++ libraries in Cactus?
- Does hdf5 1.8.5 even support the c++ interface?
- What should we be doing differently to work around these issues?
John
Yes, we have source code that calls HDF5 from C++, and also code that calls HDF5 from Fortran. We therefore use HDF5 with both C++ and Fortran interfaces enabled. At the same time we build only the serial version, because the parallel version does not support the C++ interface (for whatever reason).
If the system HDF5 library is not good enough, then this should be auto-detected, and Cactus should build HDF5 on its own. You can also specify this manually with HDF5=BUILD. This should work -- this is our catch-all fallback solution and is supposed to be very robust (except on systems where the HDF5 configure-make-make install steps don't work).
Your problems read as if you tried to build a parallel version of HDF5. This should not happen on its own. Did you enable that yourself?
-erik
Hi Erik.
Both John and I are compiling with HDF5_DIR=BUILD. We're using the latest available macports version of openmpi. This is exactly what gives the "incompatible --enable-cxx" error message John mentioned in his report.
Bernard
On 12/9/10 12:16 PM, "Erik Schnetter" schnetter@cct.lsu.edu wrote:
On Thu, Dec 9, 2010 at 5:04 PM, John Baker john.g.baker@nasa.gov wrote:
Hi, There was some discussion of HDF5 and c++ recently on this list (See:
http://lists.einsteintoolkit.org/pipermail/users/2010-September/000515.ht ml ). And also on the trac list in October. In relation to these, our group has been having several problems related to HDF5 and c++ recently. On many of the production environments where we run, there is no hdf5 build available which includes cpp support. In particular a build failed when searching for libhdf5_hl_cpp. We worked around this by removing these libraries from the list in ExternalLibraries/HDF5/HDF5.sh. This seemed to work, but required our hacking the repository version of the code and presumably could cause a failure with any thorns needing HDF5 C++ support. At the same time (actually going back to the first ETK release) I have had difficulty compiling on MacOS, (the macports hdf5-18 doesn't support fortran or c++ with openmpi). I don't generally need hdf5 when I'm doing development on my laptop, but it would be good to have it working. I recently tried using the HDF5=BUILD option on Mac, but this seemed to lead to the same problem in different form. The HDF5 configuration failed with a complaint that --enable-cxx was incompatible with MPI compilers. Getting to the point now, I have some questions:
- Is there a good reason why HDF5 needs the C++ libraries in Cactus?
- Does hdf5 1.8.5 even support the c++ interface?
- What should we be doing differently to work around these issues?
John
Yes, we have source code that calls HDF5 from C++, and also code that calls HDF5 from Fortran. We therefore use HDF5 with both C++ and Fortran interfaces enabled. At the same time we build only the serial version, because the parallel version does not support the C++ interface (for whatever reason).
If the system HDF5 library is not good enough, then this should be auto-detected, and Cactus should build HDF5 on its own. You can also specify this manually with HDF5=BUILD. This should work -- this is our catch-all fallback solution and is supposed to be very robust (except on systems where the HDF5 configure-make-make install steps don't work).
Your problems read as if you tried to build a parallel version of HDF5. This should not happen on its own. Did you enable that yourself?
-erik
-- Erik Schnetter schnetter@cct.lsu.edu http://www.cct.lsu.edu/~eschnett/ _______________________________________________ Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
Can you open a full bug report on http://trac.einsteintoolkit.org, including the options you use for configuring Cactus, thorn list, etc.?
-erik
On Thu, Dec 9, 2010 at 5:23 PM, Kelly, Bernard J. (GSFC-660.0)[UNIVERSITY OF MARYLAND BALTIMORE COUNTY] bernard.j.kelly@nasa.gov wrote:
Hi Erik.
Both John and I are compiling with HDF5_DIR=BUILD. We're using the latest available macports version of openmpi. This is exactly what gives the "incompatible --enable-cxx" error message John mentioned in his report.
Bernard
On 12/9/10 12:16 PM, "Erik Schnetter" schnetter@cct.lsu.edu wrote:
On Thu, Dec 9, 2010 at 5:04 PM, John Baker john.g.baker@nasa.gov wrote:
Hi, There was some discussion of HDF5 and c++ recently on this list (See:
http://lists.einsteintoolkit.org/pipermail/users/2010-September/000515.ht ml ). And also on the trac list in October. In relation to these, our group has been having several problems related to HDF5 and c++ recently. On many of the production environments where we run, there is no hdf5 build available which includes cpp support. In particular a build failed when searching for libhdf5_hl_cpp. We worked around this by removing these libraries from the list in ExternalLibraries/HDF5/HDF5.sh. This seemed to work, but required our hacking the repository version of the code and presumably could cause a failure with any thorns needing HDF5 C++ support. At the same time (actually going back to the first ETK release) I have had difficulty compiling on MacOS, (the macports hdf5-18 doesn't support fortran or c++ with openmpi). I don't generally need hdf5 when I'm doing development on my laptop, but it would be good to have it working. I recently tried using the HDF5=BUILD option on Mac, but this seemed to lead to the same problem in different form. The HDF5 configuration failed with a complaint that --enable-cxx was incompatible with MPI compilers. Getting to the point now, I have some questions:
- Is there a good reason why HDF5 needs the C++ libraries in Cactus?
- Does hdf5 1.8.5 even support the c++ interface?
- What should we be doing differently to work around these issues?
John
Yes, we have source code that calls HDF5 from C++, and also code that calls HDF5 from Fortran. We therefore use HDF5 with both C++ and Fortran interfaces enabled. At the same time we build only the serial version, because the parallel version does not support the C++ interface (for whatever reason).
If the system HDF5 library is not good enough, then this should be auto-detected, and Cactus should build HDF5 on its own. You can also specify this manually with HDF5=BUILD. This should work -- this is our catch-all fallback solution and is supposed to be very robust (except on systems where the HDF5 configure-make-make install steps don't work).
Your problems read as if you tried to build a parallel version of HDF5. This should not happen on its own. Did you enable that yourself?
-erik
-- Erik Schnetter schnetter@cct.lsu.edu http://www.cct.lsu.edu/~eschnett/ _______________________________________________ Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
Done: it's at: https://trac.einsteintoolkit.org/ticket/143
Thanks, Erik.
B
On 12/9/10 12:26 PM, "Erik Schnetter" schnetter@cct.lsu.edu wrote:
Can you open a full bug report on http://trac.einsteintoolkit.org, including the options you use for configuring Cactus, thorn list, etc.?
-erik
On Thu, Dec 9, 2010 at 5:23 PM, Kelly, Bernard J. (GSFC-660.0)[UNIVERSITY OF MARYLAND BALTIMORE COUNTY] bernard.j.kelly@nasa.gov wrote:
Hi Erik.
Both John and I are compiling with HDF5_DIR=BUILD. We're using the latest available macports version of openmpi. This is exactly what gives the "incompatible --enable-cxx" error message John mentioned in his report.
Bernard
On 12/9/10 12:16 PM, "Erik Schnetter" schnetter@cct.lsu.edu wrote:
On Thu, Dec 9, 2010 at 5:04 PM, John Baker john.g.baker@nasa.gov wrote:
Hi, There was some discussion of HDF5 and c++ recently on this list (See:
http://lists.einsteintoolkit.org/pipermail/users/2010-September/000515. ht ml ). And also on the trac list in October. In relation to these, our group has been having several problems related to HDF5 and c++ recently. On many of the production environments where we run, there is no hdf5 build available which includes cpp support. In particular a build failed when searching for libhdf5_hl_cpp. We worked around this by removing these libraries from the list in ExternalLibraries/HDF5/HDF5.sh. This seemed to work, but required our hacking the repository version of the code and presumably could cause a failure with any thorns needing HDF5 C++ support. At the same time (actually going back to the first ETK release) I have had difficulty compiling on MacOS, (the macports hdf5-18 doesn't support fortran or c++ with openmpi). I don't generally need hdf5 when I'm doing development on my laptop, but it would be good to have it working. I recently tried using the HDF5=BUILD option on Mac, but this seemed to lead to the same problem in different form. The HDF5 configuration failed with a complaint that --enable-cxx was incompatible with MPI compilers. Getting to the point now, I have some questions:
- Is there a good reason why HDF5 needs the C++ libraries in Cactus?
- Does hdf5 1.8.5 even support the c++ interface?
- What should we be doing differently to work around these issues?
John
Yes, we have source code that calls HDF5 from C++, and also code that calls HDF5 from Fortran. We therefore use HDF5 with both C++ and Fortran interfaces enabled. At the same time we build only the serial version, because the parallel version does not support the C++ interface (for whatever reason).
If the system HDF5 library is not good enough, then this should be auto-detected, and Cactus should build HDF5 on its own. You can also specify this manually with HDF5=BUILD. This should work -- this is our catch-all fallback solution and is supposed to be very robust (except on systems where the HDF5 configure-make-make install steps don't work).
Your problems read as if you tried to build a parallel version of HDF5. This should not happen on its own. Did you enable that yourself?
-erik
-- Erik Schnetter schnetter@cct.lsu.edu http://www.cct.lsu.edu/~eschnett/ _______________________________________________ Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
-- Erik Schnetter schnetter@cct.lsu.edu http://www.cct.lsu.edu/~eschnett/
users@lists.einsteintoolkit.org