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

Can not build MPI-applications with oneAPI 2025.0 #1090

Open
aradi opened this issue Nov 8, 2024 · 5 comments
Open

Can not build MPI-applications with oneAPI 2025.0 #1090

aradi opened this issue Nov 8, 2024 · 5 comments
Labels
bug Something isn't working

Comments

@aradi
Copy link
Member

aradi commented Nov 8, 2024

Description

Build of any arbitrary project with MPI-dependency fails when using oneAPI 2025.0.

Executing

fpm new test
cd test
echo -e "[dependencies]\nmpi =\"*\"" >> fpm.toml
FPM_FC=ifx fpm build

results in

<ERROR> *cmd_build* Model error: local INTEL MPI library does not support -v
STOP 1

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

@aradi aradi added the bug Something isn't working label Nov 8, 2024
@perazz
Copy link
Contributor

perazz commented Nov 10, 2024

@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

@aradi
Copy link
Member Author

aradi commented Nov 11, 2024

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.

@MatthAlex
Copy link

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__'

@perazz
Copy link
Contributor

perazz commented Nov 18, 2024

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

@MatthAlex
Copy link

MatthAlex commented Nov 18, 2024

For 2. I think I'll open an issue on spack as well. It might be on their end.

Edit:
spack issue here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants