Open aradi opened 2 weeks ago
@aradi what is failing is the check that the Intel MPI wrapper works. Does mpiifort -v
still return wrapper information?
From this discussion it seems like there is a chance that for ifx
the new wrappers will be mpiifx
etc, in which case fpm needs an update
Funny enough, both wrappers exist:
❯ mpiifx -v
mpiifx for the Intel(R) MPI Library 2021.14 for Linux*
Copyright Intel Corporation.
ifx version 2025.0.0
and also
❯ mpiifort -v
mpiifx for the Intel(R) MPI Library 2021.14 for Linux*
Copyright Intel Corporation.
/opt/intel/oneapi/mpi/2021.14/bin/mpiifx: line 715: ifort: command not found
Latter returns with a non-zero exit code (although delivering the necessary information. As ifort
had been removed from oneAPI package, fpm should check probably first mpiifx
, indeed.
Related, but oneAPI 2024.1 instead, where ifort
still exists:
On Spack, Intel installed version 2024.1.0
and Intel MPI version 2021.12.1
(the 2024.1.0
equivalent that is).
$ fpm build --compiler mpiifort
<ERROR> *cmd_build* Model error: local INTEL MPI library does not support -v
STOP 1
$ fpm build --compiler mpiifx
<ERROR> *cmd_build* Model error: local INTEL MPI library does not support -v
STOP 1
$ fpm build --compiler mpif90
[100%] Project compiled successfully.
On their own:
$ mpiifort -v
mpiifx for the Intel(R) MPI Library @IMPI_OFFICIALVERSION@ for Linux*
Copyright Intel Corporation.
ifort: remark #10448: Intel(R) Fortran Compiler Classic (ifort) is now deprecated and will be discontinued late 2024. Intel recommends that customers transition now to using the LLVM-based Intel(R) Fortran Compiler (ifx) for continued Windows* and Linux* support, new language support, new language features, and optimizations. Use '-diag-disable=10448' to disable this message.
ifort version 2021.12.0
ld /lib/../lib64/crt1.o /lib/../lib64/crti.o [links all paths]
ld: /share/apps/rocky9/spack/apps/linux-rocky9-x86_64_v4/gcc-12.2.0/intel-oneapi-compilers/2024.1.0-bdqsx5f/compiler/2024.1/bin/../lib/for_main.o: in function `main':
for_main.c:(.text+0x19): undefined reference to `MAIN__'
$ mpiifx -v
mpiifx for the Intel(R) MPI Library @IMPI_OFFICIALVERSION@ for Linux*
Copyright Intel Corporation.
ifx version 2024.1.0
ld /lib/../lib64/crt1.o /lib/../lib64/crti.o [links all paths]
ld: /share/apps/rocky9/spack/apps/linux-rocky9-x86_64_v4/gcc-12.2.0/intel-oneapi-compilers/2024.1.0-bdqsx5f/compiler/2024.1/lib/for_main.o: in function `main':
for_main.c:(.text+0x19): undefined reference to `MAIN__'
Thanks, so it looks like there are two things:
1) new ifx-based wrappers need be implemented anyways
2) the most recent Intel wrappers (both mpiifort/mpiifx) have some internal issues/crashes (undefined reference to 'MAIN__'
etc.). This makes their execution return a non-zero exit code, that fpm
catches as an error ("command not supported")
So I would guess that updating fpm alone with the new ifx
wrappers would not solve this issue
For 2. I think I'll open an issue on spack
as well. It might be on their end.
Edit:
spack
issue here.
Description
Build of any arbitrary project with MPI-dependency fails when using oneAPI 2025.0.
Executing
results in
Note: oneAPI 2024.2 seems to work.
Expected Behaviour
Building the project as expected without error message.
Version of fpm
0.10.1
Platform and Architecture
Linux/x86_64
Additional Information
No response