Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

libmpifort.so incompatible error during compile

Jimmy_C_
Beginner
966 Views

Hi,

I hit link issue when compiling the program, thank you for the help

ld: skipping incompatible /opt/intel/compilers_and_libraries_2017.4.196/linux/mpi/mic/lib/libmpifort.so when searching for -lmpifort
ld: skipping incompatible /opt/intel/compilers_and_libraries_2017.4.196/linux/mpi/mic/lib/libmpifort.a when searching for -lmpifort
ld: cannot find -lmpifort
ld: skipping incompatible /opt/intel/compilers_and_libraries_2017.4.196/linux/mpi/mic/lib/release_mt/libmpi.so when searching for -lmpi
ld: skipping incompatible /opt/intel/compilers_and_libraries_2017.4.196/linux/mpi/mic/lib/release_mt/libmpi.a when searching for -lmpi
ld: skipping incompatible /opt/intel/compilers_and_libraries_2017.4.196/linux/mpi/mic/lib/libmpi.so when searching for -lmpi
ld: skipping incompatible /opt/intel/compilers_and_libraries_2017.4.196/linux/mpi/mic/lib/libmpi.a when searching for -lmpi
ld: cannot find -lmpi
ld: skipping incompatible /opt/intel/compilers_and_libraries_2017.4.196/linux/mpi/mic/lib/libmpigi.a when searching for -lmpigi
ld: cannot find -lmpigi

Environment:

RHEL7.3 + Intel Parallel Studio 2017

# source /opt/intel/compilers_and_libraries_2017.4.196/linux/mpi/mic/bin/mpivars.sh

# mpiexec --version
Intel(R) MPI Library for Linux* OS, Version 2017 Update 3 Build 20170405 (id: 17193)
Copyright (C) 2003-2017, Intel Corporation. All rights reserved.
# mpiicc --version
icc (ICC) 17.0.4 20170411
Copyright (C) 1985-2017 Intel Corporation.  All rights reserved.
# icc --version
icc (ICC) 17.0.4 20170411
Copyright (C) 1985-2017 Intel Corporation.  All rights reserved.

0 Kudos
3 Replies
Kevin_D_Intel
Employee
966 Views

It is not obvious from the details provided whether you are building for IA-32 or Intel 64. The error noted is typical when a version of the library linked is found but does not match the target architecture. Your build has found the Xeon Phi (i.e. "mic") version of libraries and that perhaps relates to sourcing the "mic" of the mpivars.sh.

Is Xeon Phi the architecture you intended to target?     If targeting IA-32 or Intel 64, then you would instead use either of:

/opt/intel/compilers_and_libraries_2017.4.196/linux/mpirt/bin/ia32_lin/mpivars.sh
/opt/intel/compilers_and_libraries_2017.4.196/linux/mpi/intel64/bin/mpivars.sh
 

0 Kudos
Jimmy_C_
Beginner
966 Views

Hi Kevin,

Thank you for the reply, I resolve the issue by excuted the following command.

source /opt/intel/compilers_and_libraries_2017.4.196/linux/mkl/bin/mklvars.sh intel64/ia32

source /opt/intel/compilers_and_libraries_2017.4.196/linux/bin/compilervars.sh intel64/ia32

source /opt/intel/compilers_and_libraries_2017.4.196/linux/mpi/bin64/mpivars.sh intel64/ia32

 

I am using Intel E5 CPU, what's arch should I use? intel64/ia32?

0 Kudos
Kevin_D_Intel
Employee
966 Views

Glad to hear you resolved it. You should use intel64.

0 Kudos
Reply