-
Notifications
You must be signed in to change notification settings - Fork 139
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
No option for Intel LLVM compilers for WRF-Hydro #731
Comments
Having problems building WRF-Hydro with the new Intel LLVM. For reference I used to use the configure method and just change the compiler for classic intel (ifort/icc) and it would work just fine. Now with the new intel llvm there is something that has change. Attached is the build folder with all the cmake logs. The only thing I can think is that there are some flags for the intel llvm that are no longer supported and that is the source of the issue. I ask that someone from NCAR take a look and see if the Intel LLVM can be added to the configuration and macos files. Since Intel Classic is now a paid feature for new users and intel llvm is the way forward for all HPC, according to intel. Thanks, |
Hi Will, My local HPC cluster doesn't have Intel OneAPI 2021 available for testing, but with the 2023.2.1 it builds and runs successfully. You may want to try a newer version and see if you are still having issues. EDIT: I also tried with Intel OneAPI v2024.2.1 and it works for me as well. |
Hi @rcabell Can you tell me the steps you did and commands you issued? Maybe I can reproduce your results. There's a good chance I'm missing a step |
@rcabell reference, I'm using the 2024 version of the compilers |
Hi @HathewayWill -- I noticed the To build, I followed the steps in
Intel OneAPI v2024.2.1, netCDF v4.9.2, MPICH v3.4a2 |
Here's my environment:
The commands i'm using is this:
Am I doing something wrong or issuing the commands in the wrong order? |
@HathewayWill - if you are still using the older
The current |
Does cloning directly from github fix that? If so which method should I use for cloning? |
still failing not sure what i'm doing wrong. I may have to wait till 5.4 comes out |
Good news and bad news. Good news: I found the error with the .tar.gz file. The tagged file cannot recognize the intel llvm compilers. Which is what is causing the issue. When I issue these commands it can see the compiler
Bad news: |
I would try the following with the main branch.
I think the issue with your note: I was able to get this building and running a test case with |
is that because there isn't a configure or macros for ifx? |
Good question, I'm not sure. I would guess because Derecho has both |
intel.llvm.zip Good news again; the commands you gave me seem to get farther along then before but still fails to build. |
Found the solution
|
Intel has archived the Intel Classic Compilers (ifort/icc/icpc) and replaced them with new LLVM compilers (icx/ifx/icpx) along with new mpi intel compilers.
wrf_hydro_nwm_public does not have a compiler option for these new compilers.
Expected Behavior
new option with intel llvm
cd $WRFHYDRO_FOLDER/Downloads
wget -c https://github.com/NCAR/wrf_hydro_nwm_public/archive/refs/tags/v5.2.0.tar.gz -O WRFHYDRO.5.2.tar.gz
tar -xvzf WRFHYDRO.5.2.tar.gz -C $WRFHYDRO_FOLDER/
cd $WRFHYDRO_FOLDER/Downloads
wget -c https://github.com/NCAR/wrf_hydro_nwm_public/archive/refs/tags/v5.2.0.tar.gz -O WRFHYDRO.5.2.tar.gz
tar -xvzf WRFHYDRO.5.2.tar.gz -C $WRFHYDRO_FOLDER/
.IGNORE:
ifeq ($(SPATIAL_SOIL),1)
SPATIAL_SOIL = -DSPATIAL_SOIL
else
SPATIAL_SOIL =
endif
ifeq ($(HYDRO_REALTIME),1)
HYDRO_REALTIME = -DHYDRO_REALTIME
else
HYDRO_REALTIME =
endif
ifeq ($(WRF_HYDRO),1)
WRF_HYDRO = -DWRF_HYDRO $(HYDRO_REALTIME)
else
WRF_HYDRO =
endif
ifeq ($(WRF_HYDRO_RAPID),1)
WRF_HYDRO = -DWRF_HYDRO -DWRF_HYDRO_RAPID $(HYDRO_REALTIME)
endif
ifeq ($(HYDRO_D),1)
HYDRO_D = -DHYDRO_D $(WRF_HYDRO)
else
HYDRO_D = $(WRF_HYDRO)
endif
ifeq ($(WRF_HYDRO_NUDGING),1)
WRF_HYDRO_NUDGING = -DWRF_HYDRO_NUDGING
else
WRF_HYDRO_NUDGING =
endif
ifeq ($(OUTPUT_CHAN_CONN),1)
OUTPUT_CHAN_CONN = -DOUTPUT_CHAN_CONN
else
OUTPUT_CHAN_CONN =
endif
ifeq ($(PRECIP_DOUBLE),1)
PRECIP_DOUBLE = -DPRECIP_DOUBLE
else
PRECIP_DOUBLE =
endif
ifeq ($(NWM_META),1)
NWM_META = -DNWM_META
else
NWM_META =
endif
ifeq ($(NCEP_WCOSS),1)
NCEP_WCOSS = -DNCEP_WCOSS
else
NCEP_WCOSS =
endif
RMD = rm -f$(FORMAT_FREE) $ (BYTESWAPIO)$(HYDRO_D) $ (SPATIAL_SOIL) $(NWM_META) $ (WRF_HYDRO_NUDGING) $(OUTPUT_CHAN_CONN) $ (PRECIP_DOUBLE) $(NCEP_WCOSS)
COMPILER90 = mpiifx
FORMAT_FREE = -FR
BYTESWAPIO = -convert big_endian
F90FLAGS = -O2 -g -w -c -ftz -align all -fno-alias -fp-model precise
MODFLAG = -I./ -I ../../MPP -I ../MPP -I ../mod
LDFLAGS =
CPPINVOKE = -fpp
CPPFLAGS = -DMPP_LAND -I ../Data_Rec
LIBS =
NETCDFINC = $(NETCDF_INC)
NETCDFLIB = -L$(NETCDF_LIB) -lnetcdff -lnetcdf
The text was updated successfully, but these errors were encountered: