WPS icon indicating copy to clipboard operation
WPS copied to clipboard

New intel llvm compilers for WPS

Open HathewayWill opened this issue 1 year ago • 2 comments

This fixes the issue addressed in #240

HathewayWill avatar Jan 11 '24 19:01 HathewayWill

@islas

I think I did it sucessfully

HathewayWill avatar Mar 18 '24 09:03 HathewayWill

@islas

I think I did it sucessfully

@weiwangncar @islas

Is there a release number for the next version of wps for a git clone?

HathewayWill avatar Mar 20 '24 20:03 HathewayWill

@islas @weiwangncar @mgduda @kkeene44

I think I may have merged somehow. Can you double check? I made the changes islas asked for but I think it merged in without approval.

HathewayWill avatar Apr 03 '24 11:04 HathewayWill

@HathewayWill Everything looks in order. The merge is currently blocked by my review

islas avatar Apr 03 '24 18:04 islas

@islas oh good. When I saw it merged I thought I did sometime

HathewayWill avatar Apr 03 '24 19:04 HathewayWill

Good evening,

From my conversation with Intel about the LLVM

https://community.intel.com/t5/Intel-MPI-Library/Future-of-HPCtoolkit/m-p/1429431#M10028

Hi,

Please use the below commands to resolve your issue:

export CC=icx export CXX=icpx export FC=ifx export F77=ifx export F90=ifx export MPIFC="mpiifort -fc=ifx" export MPIF77="mpiifort -fc=ifx" export MPIF90="mpiifort -fc=ifx" export MPICC="mpiicc -cc=icx" export MPICXX="mpiicpc -cxx=icpx"

Thanks & Regards,

Santosh

On Mon, May 6, 2024 at 8:48 PM Michael Duda @.***> wrote:

@.**** requested changes on this pull request.

Besides the comment on the -f90 option that I've left, I would suggest moving the new stanza just below the "generic" Intel / x86_64 stanza rather than placing it at the end of the configure.defaults file. That way, all of the Intel options would be grouped together.

In arch/configure.defaults https://github.com/wrf-model/WPS/pull/243#discussion_r1591717244:

@@ -798,6 +798,30 @@ CPPFLAGS = -D_UNDERSCORE -DBYTESWAP -DLINUX -DIO_NETCDF -DIO_BINARY - ARFLAGS = CC_TOOLS =

+######################################################################################################################## +#ARCH Linux x86_64, Intel oneAPI compiler with icx # serial serial_NO_GRIB2 dmpar dmpar_NO_GRIB2 +# +COMPRESSION_LIBS = CONFIGURE_COMP_L +COMPRESSION_INC = CONFIGURE_COMP_I +FDEFS = CONFIGURE_FDEFS +SFC = ifx +SCC = icx +DM_FC = mpif90 -f90=$(SFC)

If there's not a good reason for doing so, I think it would be best to not add -f90=$(SFC) (and similarly for -cc=$(SCC)) as an argument, as I'm not sure this is a standard argument that's accepted by all MPI wrappers.

Also, I would propose switching from mpif90 to mpifort.

— Reply to this email directly, view it on GitHub https://github.com/wrf-model/WPS/pull/243#pullrequestreview-2041923012, or unsubscribe https://github.com/notifications/unsubscribe-auth/A4FUT5XF4XOLETUQMVIZ77DZBAXGVAVCNFSM6AAAAABBXAEMPCVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDANBRHEZDGMBRGI . You are receiving this because you were mentioned.Message ID: @.***>

HathewayWill avatar May 08 '24 01:05 HathewayWill

@HathewayWill I don't think using mpiifort is what we're after. My understanding is that mpiifort is the MPI Fortran compiler wrapper for Intel's MPI library, while I believe we're trying to make a oneAPI configuration stanza that uses the Intel oneAPI compilers (ifx, icx, etc.) while using more generic MPI compiler wrappers.

mgduda avatar May 08 '24 01:05 mgduda

If I understand it correctly if you call mpifort with the intel mpi compilers it uses gnu mpifort. I'll have to test

On Tue, May 7, 2024 at 8:59 PM Michael Duda @.***> wrote:

@HathewayWill https://github.com/HathewayWill I don't think using mpiifort is what we're after. My understanding is that mpiifort is the MPI Fortran compiler wrapper for Intel's MPI library, while I believe we're trying to make a oneAPI configuration stanza that uses the Intel oneAPI compilers (ifx, icx, etc.) while using more generic MPI compiler wrappers.

— Reply to this email directly, view it on GitHub https://github.com/wrf-model/WPS/pull/243#issuecomment-2099595046, or unsubscribe https://github.com/notifications/unsubscribe-auth/A4FUT5V54MQGQ5FNTTL2LEDZBGBJ5AVCNFSM6AAAAABBXAEMPCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJZGU4TKMBUGY . You are receiving this because you were mentioned.Message ID: @.***>

HathewayWill avatar May 08 '24 02:05 HathewayWill

######################################################################################################################## #ARCH Linux x86_64, Intel oneAPI compiler with icx # serial serial_NO_GRIB2 dmpar dmpar_NO_GRIB2

COMPRESSION_LIBS = CONFIGURE_COMP_L COMPRESSION_INC = CONFIGURE_COMP_I FDEFS = CONFIGURE_FDEFS SFC = ifx SCC = icx DM_FC = mpif90 -f90=$(SFC) DM_CC = mpicc -cc=$(SCC) FC = CONFIGURE_FC CC = CONFIGURE_CC LD = $(FC) FFLAGS = -FR -convert big_endian F77FLAGS = -FI -convert big_endian FCSUFFIX = FNGFLAGS = $(FFLAGS) LDFLAGS = CFLAGS = -w -Wno-implicit-int CPP = /lib/cpp -P -traditional CPPFLAGS = -D_UNDERSCORE -DBYTESWAP -DLINUX -DIO_NETCDF -DIO_BINARY -DIO_GRIB1 -DBIT32 CONFIGURE_MPI ARFLAGS = CC_TOOLS =

HathewayWill avatar May 09 '24 17:05 HathewayWill

@HathewayWill I don't think using mpiifort is what we're after. My understanding is that mpiifort is the MPI Fortran compiler wrapper for Intel's MPI library, while I believe we're trying to make a oneAPI configuration stanza that uses the Intel oneAPI compilers (ifx, icx, etc.) while using more generic MPI compiler wrappers.

@islas @mgduda

Apparently if you make your profile private it closes all pulls.

Do I need to recreate?

HathewayWill avatar May 10 '24 22:05 HathewayWill

########################################################################################################################
#ARCH Linux x86_64, Intel oneAPI compiler with icx # serial serial_NO_GRIB2 dmpar dmpar_NO_GRIB2

COMPRESSION_LIBS = CONFIGURE_COMP_L
COMPRESSION_INC = CONFIGURE_COMP_I
FDEFS = CONFIGURE_FDEFS
SFC = ifx
SCC = icx
DM_FC = mpiifx
DM_CC = mpiicx
FC = CONFIGURE_FC
CC = CONFIGURE_CC
LD = $(FC)
FFLAGS = -FR -convert big_endian
F77FLAGS = -FI -convert big_endian
FCSUFFIX =
FNGFLAGS = $(FFLAGS)
LDFLAGS =
CFLAGS = -w -Wno-implicit-int
CPP = /lib/cpp -P -traditional
CPPFLAGS = -D_UNDERSCORE -DBYTESWAP -DLINUX -DIO_NETCDF -DIO_BINARY -DIO_GRIB1 -DBIT32 CONFIGURE_MPI
ARFLAGS =
CC_TOOLS =

Sucessfully built @islas @mgduda

compile.wps.log configure.log configure.wps.txt

HathewayWill avatar May 12 '24 02:05 HathewayWill

let me know if you need anything else

HathewayWill avatar May 12 '24 02:05 HathewayWill

Sounds good, I'll make a note to change the WRF stanza in the next update to follow suit.

I just got this from the Intel developers. @islas @weiwangncar @mgduda @kkeene44

Screenshot from 2024-05-13 11-19-57

Looks like the old wrappers are going away

HathewayWill avatar May 13 '24 16:05 HathewayWill