- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I installed intel MPI Library 4.1.0.024 and tried compiling a MPI program. If I compile it without -mmic, there's no problem. But when I add -mmic, here's the error message:
/usr/bin/ld: skipping incompatible /opt/intel/impi/4.1.0.024/mic/lib/libmpigc4.so when searching for -lmpigc4
/usr/bin/ld: skipping incompatible /opt/intel/impi/4.1.0.024/mic/lib/libmpigc4.a when searching for -lmpigc4
/usr/bin/ld: cannot find -lmpigc4
I can find the file of libmpigc4.so and libmpigc4.a in the directory of /opt/intel/impi/4.1.0.024/mic/lib. And the PATH in .bashrc is:
source /opt/intel/impi/4.1.0.024/intel64/bin/mpivars.sh
Even I change it to: source /opt/intel/impi/4.1.0.024/mic/bin/mpivars.sh, it gives me the same error.
I need your help. Thank you much
Zhao
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Anyone?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I don't think anyone can answer without more specific information from you; if not a reproducer case, at least a statement of the compile and link commands and reported errors.
The wrappers mpiifort, mpiicc, mpiicpc should select working MPI libraries at link time. If you want wrappers such as mpif90, mpiCC, mpicc to act as aliases for the supported Intel compiler wrappers, you must take action to make it so in your installation. Although there is a rudimentary gcc for MIC supplied with MPSS, I don't think it accepts -mmic nor would I count on it working with any supplied MPI libraries.
I doubt if anyone currently uses the 4.1.0.024 version.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for your reply and I am sorry for the lack of enough specific information. Recently, I installed the new version of intel mpi 4.1.1.036.
If I compile my program with the options: mpicxx -o3 -m64 -fopenmp -funroll-loops -Wno-deprecated, there is no problem, and the executable can run rightly on Xeon. However, I want to use MIC to speed up my program and use the MIC native model, so I need to add the compile option:-mmic.
When I compile the program with the options: mpicxx -o3 -m64 -mmic -fopenmp -funroll-loops -Wno-deprecated, it will give the same error messages. In this situation, compiler will use the lib file from ~/mic/lib, not ~/intel64/lib, that's where the problems occur. Many people said that this error is related to 32 or 64 bits, may be that's true, but I can't find lib64 under ~/mic directory. If I link the libmpigc4.so under ~/mic/lib to the libmpigc4.so under ~/intel64/lib, it can work, However, the executable can't run on MIC because the libmpigc4.s0 we used is for Xeon, not Xeon Phi.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
So you are looking to build with a g++ cross compiler for MIC? I haven't heard of anyone doing that. The MIC installation doesn't provide an acceptable g++ .
You seem to confirm that you are among those who build with gnu compilers and Intel MPI for host and are looking for a way to run on MIC without changing Makefile accordingly. The only successful method I've heard of, as I hinted above, is to choose one of the methods to replace mpicxx -mmic by mpiicpc -mmic, for example by copying mpiicpc.py to mpicxx.py

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page