Skip to content

Conversation

@sit23
Copy link
Contributor

@sit23 sit23 commented Apr 29, 2025

The University of Exeter's HPC (also called Isca) has recently updated, and many of the older Intel fortran compilers no longer work. This P/R creates a new env file that uses the Intel 2021 compilers to run Isca, and this works well.

Once I'd identified the correct compilers to use, I got the following error:

2025-04-29 12:52:56,407 - isca - INFO - mpicc -Duse_libMPI -Duse_netCDF -Duse_LARGEFILE -DINTERNAL_FILE_NML -DOVERLOAD_C8 -DRRTM_NO_COMPILE -DSOC_NO_COMPILE -I/usr/local/include -D__IFC  -c	/gpfs/ts0/projects/Research_Project-161613/sit204/workdir_isca_intel_2017_2025/codebase/_gpfs_ts0_home_sit204_Isca_/code/src/shared/mpp/affinity.c
2025-04-29 12:52:56,470 - isca - INFO - /gpfs/ts0/projects/Research_Project-161613/sit204/workdir_isca_intel_2017_2025/codebase/_gpfs_ts0_home_sit204_Isca_/code/src/shared/mpp/affinity.c:33:14: error: static declaration of ‘gettid’ follows non-static declaration
2025-04-29 12:52:56,470 - isca - INFO - 33 | static pid_t gettid(void)
2025-04-29 12:52:56,470 - isca - INFO - |              ^~~~~~
2025-04-29 12:52:56,470 - isca - INFO - In file included from /usr/include/unistd.h:1208,
2025-04-29 12:52:56,470 - isca - INFO - from /gpfs/ts0/projects/Research_Project-161613/sit204/workdir_isca_intel_2017_2025/codebase/_gpfs_ts0_home_sit204_Isca_/code/src/shared/mpp/affinity.c:27:
2025-04-29 12:52:56,470 - isca - INFO - /usr/include/bits/unistd_ext.h:34:16: note: previous declaration of ‘gettid’ with type ‘__pid_t(void)’ {aka ‘int(void)’}
2025-04-29 12:52:56,470 - isca - INFO - 34 | extern __pid_t gettid (void) __THROW;
2025-04-29 12:52:56,470 - isca - INFO - |                ^~~~~~
2025-04-29 12:52:56,474 - isca - INFO - make: *** [Makefile:17: affinity.o] Error 1
2025-04-29 12:52:56,475 - isca - INFO - ERROR: mkmf failed for held_suarez.x

This is a well-known problem associated with versions of glibc > 2.30, which the new system now has. The fix is copied from the same fix to MOM5 applied here mom-ocean/MOM5#346.

The third contribution of this P/R is to include in the ci folder a no-compiler yml file, which installs only the components needed for Isca on the assumption that the Fortran compiler, NETCDF-Fortran and MPI are already available. This will be more common for people working in HPC environments than having to install all the compilers, as both the previous yml files have done. I have updated the README to reflect these new options.

@sit23
Copy link
Contributor Author

sit23 commented Apr 29, 2025

I've also noticed that the automated testing is broken, but it seems like this was related to the tests.yml file having some out-dated syntax related to mambaforge. Hopefully these changes will fix it. I'm noticing though some warnings related to commercial anaconda channels. I will try to go back to non-commercial ones.

@sit23 sit23 merged commit 97717d3 into ExeClim:master Apr 30, 2025
1 check passed
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

Successfully merging this pull request may close these issues.

1 participant