Skip to content

Numerical issues caused by unsafe IntelLLVM flags #52

@kvrigor

Description

@kvrigor

Background: Since Stages/2023 the MPI compiler backend defaults to IntelLLVM. Classic Intel compilers are still accessible by passing the appropriate option to the MPI compiler:

module load IntelMPI
export CC='mpiicc -cc=icc'
export FC='mpiifort -f90=ifort'
export CXX='mpiicpc -cxx=icpc'

@AGonzalezNicolas ran tests comparing CLM5 and eCLM. Results show non-zero differences for IntelLLVM-compiled eCLM, yet absolute zero errors when classic Intel was used. This brings to question the correctness of the compile flags being passed to IntelLLVM.

While we could get away with sticking with classic Intel compilers, the doomsday warning below urges us to migrate to IntelLLVM soon:

$ mpicc -cc=icc --version
icc: remark #10441: The Intel(R) C++ Compiler Classic (ICC) is deprecated
and will be removed from product release in the second half of 2023. The
Intel(R) oneAPI DPC++/C++ Compiler (ICX) is the recommended compiler
moving forward. Please transition to use this compiler. Use '-diag-disable=10441'
to disable this message.

icc (ICC) 2021.10.0 20230609
Copyright (C) 1985-2023 Intel Corporation.  All rights reserved.

Metadata

Metadata

Assignees

No one assigned

    Labels

    build-issueBuild errors and other compiler-related issues.runtime-issueRunning eCLM results to something unexpected (e.g. error, hang-up, incorrect outputs)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions