- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm trying to compile the test.f90 file included in the intel MPI distribution. I'm receiving the fllowing error:
837 fischega@susedev1[~/tmp/impi_test]> mpiifort -o myprog test.f90
/tools/intel/impi/4.1.0.024/intel64/lib/libmpi.so: file not recognized: File format not recognized
This is an x86_64 system:
839 fischega@susedev1[~/tmp/impi_test]> uname -a
Linux susedev1 2.6.16.60-0.21-smp #1 SMP Tue May 6 12:41:02 UTC 2008 x86_64 x86_64 x86_64 GNU/Linux
Here is the mpiifort -V output:
840 fischega@susedev1[~/tmp/impi_test]> mpiifort -V
Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 13.0.1.117 Build 20121010
Copyright (C) 1985-2012 Intel Corporation. All rights reserved.
I am sourcing the following files in my .bashrc:
export I_MPI_F90=ifort
export I_MPI_CC=icc
. /tools/intel/impi/4.1.0.024/bin64/mpivars.sh
. /tools/intel/icsxe/2013.0.028/bin/ictvars.sh intel64
. /tools/intel/composerxe/bin/compilervars.sh intel64
Does anyone know why I am encountering this error and how to fix it?
Thanks,
Greg
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hey Greg,
Can you do a quick "ls -l ./tools/intel/icsxe/2013.0.028"? I wonder if the PATHs are being mixed up somehow.
There's also no need for you to source all of these scripts. The ictvars.sh script already does the MPI and the Compose XE scripts for you. Unless you have a newer version of either component installed, I'd recommend just leaving the ictvars.sh and deleting the other two.
Regards,
~Gergana
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Gergana,
I changed my .bashrc to only source the ictvars.sh script, but it did not solve the problem. Here is the result of the "ls -l /tools/intel/icsxe/2013.0.028" command:
1004 fischega@susedev1[~/tmp/impi_test]> ls -l /tools/intel/icsxe/2013.0.028
total 84
lrwxrwxrwx 1 root root 29 2013-01-18 15:53 advisor_xe -> /tools/intel/advisor_xe_2013/
drwxr-xr-x 2 root root 83 2013-07-23 11:24 bin
lrwxrwxrwx 1 root root 36 2013-01-18 15:53 composer_xe -> /tools/intel/composer_xe_2013.1.117/
drwxr-xr-x 4 root root 4096 2013-01-18 15:53 doc
-rw-r--r-- 1 root root 1010 2012-10-19 07:35 icsxesupport.txt
-rwxr-xr-x 1 root root 3045 2013-01-18 15:53 ictvars.csh
-rwxr-xr-x 1 root root 2928 2013-07-23 11:24 ictvars.sh
lrwxrwxrwx 1 root root 23 2013-01-18 15:53 imb -> /tools/intel/imb/3.2.4/
lrwxrwxrwx 1 root root 31 2013-01-18 15:53 inspector_xe -> /tools/intel/inspector_xe_2013/
lrwxrwxrwx 1 root root 28 2013-01-18 15:53 itac -> /tools/intel/itac/8.1.0.024/
lrwxrwxrwx 1 root root 28 2013-01-18 15:53 mpi -> /tools/intel/impi/4.1.0.024/
drwxr-xr-x 2 root root 38 2013-01-18 15:53 release_notes
-rwxr-xr-x 1 root root 68416 2012-10-19 07:35 uninstall.sh
lrwxrwxrwx 1 root root 37 2013-01-18 15:53 vtune_amplifier_xe -> /tools/intel/vtune_amplifier_xe_2013/
Greg
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks, Greg. I'm not seeing anything wrong here. The error is indicative of some sort of 32bit vs. 64bit incompatibility although all of your commands seems fine.
Just in case, can you do: "file /tools/intel/impi/4.1.0.024/intel64/lib/libmpi.so"? It might tell you it's a symlink so do the "file" command on the symlink pointer as well.
Also, try your compile command with -show at the end:
$ mpiifort -o myprog test.f90 -show
That'll tell me exactly what libs are being linked in. Can you also compile a non-MPI program using ifort?
Just trying to isolate whether the issue is with the compiler or the MPI library.
Thanks,
~Gergana
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Here is the result of "file /tools/intel/impi/4.1.0.024/intel64/lib/libmpi.so":
/tools/intel/impi/4.1.0.024/intel64/lib/libmpi.so: symbolic link to `libmpi.so.4.1'
When I use the "show" flag, I see the following:
ifort -ldl -o myprog test.f90 -I/tools/intel/impi/4.1.0.024/intel64/include -I/tools/intel/impi/4.1.0.024/intel64/include -L/tools/intel/impi/4.1.0.024/intel64/lib -Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker /tools/intel/impi/4.1.0.024/intel64/lib -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/4.1 -lmpi -lmpigf -lmpigi -lrt -lpthread
The "/opt/intel/mpi-rt/4.1" is suspicous, since that location does not exist on the filesystem.
Yes, non-MPI programs can be compiled without problems.
Thanks,
Greg
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I think you have a version of the compiler which didn't respect MPI paths (not even Intel MPI) if you set the compiler path afterwards. More recent compilers are intended not to put the co-array support library on LD_LIBRARY_PATH when Intel MPI is already set up; of course, you can over-rule the co-array support by setting up MPI paths afterwards.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I tried adding the following paths to the beginning of my LD_LIBRARY_PATH, but the problem still persists:
/tools/intel/composer_xe_2013.1.117/compiler/lib/intel64
/tools/intel/composer_xe_2013.1.117/mkl/lib/intel64
/tools/intel/composer_xe_2013.1.117/tbb/lib/intel64
/tools/intel/composer_xe_2013.1.117/compiler/lib/mic
The LD_LIBRARY_PATH appears to contain a number of paths that do not exist:
/opt/intel/mic/coi/host-linux-release/lib
/opt/intel/mic/myo/lib
Are these components that need to be installed? If so, what instructions should I give to my system administrator?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If you're trying to run on the MIC coprocessor, you must install the MPSS (linux for coprocessor), but I would advise you not to use such an old compiler with MPI and MIC; anyway, I don't think that version supports co-arrays on MIC. If you want to run full MPI rather than the ifort co-array support, you must install MPI separately. By default, the script to set Intel MPI paths would install in /opt/intel/impi/<version>/bin64/mpivars.
You would not expect the sysadmin to set your paths for you unless it is done by installing module http://linux.die.net/man/1/module when you would still need to run the module command with your desired option.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm not trying to run on the MIC coprocessor, so it sounds like the libraries ("mic/coi" and "mic/myo") are not applicable to my situation. Does your instruction of installing MPI separately only to use of the MPI with the MIC coprocessor? My understanding is that I should be able to link against Intel MPI "out of the box".
Is there anything else I can try to resolve the "/tools/intel/impi/4.1.0.024/intel64/lib/libmpi.so: file not recognized: File format not recognized" error?
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page