Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HDF5 problem. #3

Open
paullglebrun opened this issue Jul 5, 2024 · 9 comments
Open

HDF5 problem. #3

paullglebrun opened this issue Jul 5, 2024 · 9 comments

Comments

@paullglebrun
Copy link

Hi Andrew,

I am trying to install Galacticus from source code, such that I can learn from the code a bit of Astrophysics.. I am running on a up to date CentOs9 system. After installing, as root, normal install, using usual yum of dnf, most dependency packkages (except qhull..for some unknown reason, it got re-install in galacticus-master/galacticusInstallWork), the script ran fine, but stop on F90 compiler error, handling the hdf5 package. The relevant part of the log file is:

building Galacticus
--> make -j1 Galacticus.exe
gfortran -c ./work/build/utility.IO.HDF5.p.F90 -o ./work/build/utility.IO.HDF5.o -ffree-line-length-none -frecursive -DBUILDPATH='./work/build' -J./work/build/moduleBuild/ -I./work/build/ -fintrinsic-modules-path /home/lebrun/Galacticus/Tools/finclude -fintrinsic-modules-path /home/lebrun/Galacticus/Tools/include -fintrinsic-modules-path /home/lebrun/Galacticus/Tools/include/gfortran -fintrinsic-modules-path /home/lebrun/Galacticus/Tools/lib/gfortran/modules -fintrinsic-modules-path /usr/local/finclude -fintrinsic-modules-path /usr/local/include/gfortran -fintrinsic-modules-path /usr/local/include -fintrinsic-modules-path /usr/lib/gfortran/modules -fintrinsic-modules-path /usr/include/gfortran -fintrinsic-modules-path /usr/include -fintrinsic-modules-path /usr/finclude -fintrinsic-modules-path /usr/lib64/gfortran/modules -L/home/lebrun/Galacticus/Tools/lib -L/home/lebrun/Galacticus/Tools/lib64 -pthread -Wall -fbacktrace -ffpe-trap=invalid,zero,overflow -fdump-core -O3 -ffinite-math-only -fno-math-errno -fopenmp -g -DPROCPS -DOFDAVAIL -DFFTW3AVAIL -DANNUNAVAIL -DQHULLUNAVAIL -DMATHEVALUNAVAIL 2>&1 | ./scripts/build/postprocess.pl ./work/build/utility.IO.HDF5.p.F90
source/utility.IO.HDF5.F90; line 454 [preprocessed line 543]; code 43

543 | & H5T_NATIVE_DOUBLE, H5T_NATIVE_INT, H5T_NATIVE_INT_8, H5T_STD_I32BE , &
| 1
Error: Symbol ‘h5t_native_int’ referenced at (1) not found in module ‘hdf5’
source/utility.IO.HDF5.F90; line 454 [preprocessed line 543]; code 59

543 | & H5T_NATIVE_DOUBLE, H5T_NATIVE_INT, H5T_NATIVE_INT_8, H5T_STD_I32BE , &
| 1
Error: Symbol ‘h5t_native_int_8’ referenced at (1) not found in module ‘hdf5’
source/utility.IO.HDF5.F90; line 1342 [preprocessed line 1572]; code 90

....

No idea why H5T_NATIVE would cause problems.. The version of hfdf5 is

root@syn-2603-7080-ff01-8658-0000-0000-0000-1b5a lebrun]# yum info hdf5-devel
Last metadata expiration check: 1:51:03 ago on Fri 05 Jul 2024 12:58:41 PM EDT.
Installed Packages
Name : hdf5-devel
Version : 1.12.1
Release : 7.el9.1
Architecture : x86_64
Size : 3.9 M
Source : hdf5-1.12.1-7.el9.1.src.rpm
Repository : @System
From repo : epel
Summary : HDF5 development files
URL : https://portal.hdfgroup.org/display/HDF5/HDF5
License : BSD
Description : HDF5 development headers and libraries.

[root@syn-2603-7080-ff01-8658-0000-0000-0000-1b5a lebrun]#

Thanks

Paul

@abensonca
Copy link
Collaborator

Hi Paul. This is a known problem with v1.12 of HDF5 - I have an issue open to fix this but it hasn't been a high priority unfortunately.

@abensonca
Copy link
Collaborator

abensonca commented Jul 5, 2024

I will probably need to update the installer to avoid using this version and install an older version instead.

@abensonca
Copy link
Collaborator

I won't be able to work on this until next week, but you could try editing line 787 of the installation script:

maxVersion[$iPackage]="9.9.9"

Change that to:

maxVersion[$iPackage]="1.10.99"

and it should try installing an older version from source.

@paullglebrun
Copy link
Author

paullglebrun commented Jul 7, 2024 via email

@abensonca
Copy link
Collaborator

I added a root-install RockyLinux-based (which should be similar to CentOS) build to my CI/CD for this repo. With a few updates this now builds correctly, including HDF5. It may be that on your system you want to get the updated installation script and start the install over to ensure it's getting the correct HDF5 for you - from your description above it sounds like it's still finding the system HDF5.

I'm always happy to receive any help in updating/improving code. A re-write to C++ is unlikely any time soon - I just don't have the funding to support such a major undertaking, and I'd probably want to first assess other possible language options to see what the optimal choice would be.

@paullglebrun
Copy link
Author

paullglebrun commented Jul 10, 2024 via email

@abensonca
Copy link
Collaborator

You can run the script from anywhere. You don't need to download galacticus-master.zip in advance - it will clone a copy of Galacticus using git after installing all of the libraries and tools needed.

You can specify the path for installation of libraries/tools via the --toolPrefix option (which will default to /usr/local/galacticus) and the path to install the Galacticus source via the --galacticusPrefix option to the script (defaults to $HOME/Galacticus/galacticus.

The DONE DONE was some debugging code I accidentally left in place after the last round of updates - I've removed it now.

To help further, can you paste here the exact command line you use to run the script? And, after it runs, there should be a file galacicusInstall.log created in the path where you ran the script. If you could share that I'll be able to see exactly what failed. If the file is too large to paste here you can put it somewhere else online and link to it.

@paullglebrun
Copy link
Author

paullglebrun commented Jul 10, 2024 via email

@abensonca
Copy link
Collaborator

That sounds good! Installing as root is certainly easier - it can make use of the package manager to install most things (and thereby avoid having to build from source).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants