mpicc -mmic - skipping libmpigf.so when searching for -lmpigf

mpicc -mmic - skipping libmpigf.so when searching for -lmpigf

Dear all,

I have a system with two Intel Xeon Phi. I've successfully configured them following your manuals and now I'm about to try to compile a simple example of mpi code in order to check if everything actually works.

On the sytem I've installed the following Intel tools: l_ccompxe_2013.2.146, l_fcompxe_2013.2.146, l_mpi_p_4.1.0.030

Then I've set

source /opt/intel/composer_xe_2013.2.146/bin/compilervars.sh intel64

source /opt/intel/impi/4.1.0.030/mic/bin/mpivars.sh 

So I tried to compile my mpi example as follows to run on the Phi cards:

./mpicc -mmic /opt/hello.c -o /opt/hello.mic

but it returned this error:

/usr/bin/ld: skipping incompatible /opt/intel/impi/4.1.0.030/mic/lib/libmpigf.so when searching for -lmpigf
/usr/bin/ld: skipping incompatible /opt/intel/impi/4.1.0.030/mic/lib/libmpigf.a when searching for -lmpigf
/usr/bin/ld: cannot find -lmpigf
collect2: ld returned 1 exit status

How can I solve this problem? 

I got that error also compiling the script without the -mmic flag and using the mpicc under /opt/intel/impi/4.1.0.030/intel64/ with -mmic

Here's the output of my $PATH and $LD_LIBRARY_PATH

echo $PATH
/opt/intel/impi/4.1.0.030/mic/bin:/opt/intel/composer_xe_2013.2.146/bin/intel64:/opt/intel/composer_xe_2013.2.146/mpirt/bin/intel64:/opt/intel/composer_xe_2013.2.146/bin/intel64:/opt/intel/composer_xe_2013.2.146/bin/intel64_mic:/opt/intel/composer_xe_2013.2.146/debugger/gui/intel64:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/ofed1541/bin:/opt/ofed1541/sbin:/root/bin

echo $LD_LIBRARY_PATH
/opt/intel/impi/4.1.0.030/mic/lib:/opt/intel/composer_xe_2013.2.146/compiler/lib/intel64:/opt/intel/mic/coi/host-linux-release/lib:/opt/intel/mic/myo/lib:/opt/intel/composer_xe_2013.2.146/mpirt/lib/intel64:/opt/intel/composer_xe_2013.2.146/ipp/../compiler/lib/intel64:/opt/intel/composer_xe_2013.2.146/ipp/lib/intel64:/opt/intel/composer_xe_2013.2.146/compiler/lib/intel64:/opt/intel/composer_xe_2013.2.146/mkl/lib/intel64:/opt/intel/composer_xe_2013.2.146/tbb/lib/intel64

Thank you very much in advance for your support!

Francesca

3 posts / novo 0
Último post
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.

As far as I know, no one has set up gfortran to support MIC, while the mpicc, mpif77 and mpif90  refer to gcc/gfortran, as they would with Intel MPI for host, even though there isn't satisfactory support for these on MIC. gcc for MIC is rudimentary, with no vectorization.

So you must use mpiicc when compiling with icc -mmic.  Several customers have complained about this; it can be worked around by setting up so that users who wish it can have mpicc as an alias for mpiicc (similarly with mpif90, ...).

Many applications on host can take advantage of interworking between icc and gcc (but not between ifort and gfortran); this isn't practical on MIC.

Dear Tim, 

thank you very much for your quick response!

As you said, using mpiicc -mmic I have no problem at all.

Thanks also for your explanation, it's actually very useful.

Best Regards

Deixar um comentário

Faça login para adicionar um comentário. Não é membro? Inscreva-se hoje mesmo!