I tried to compile LAMMPS on our group cluster which consist of CPUs and Coprocessors. However, I got an error message which cannot be figured out. Any suggestion and help will be highly appreciated.
x86_64-k1om-linux-ld: relocation error: /usr/lib64/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference
make: *** [../lmp_intel_phi] Error 127
make: Leaving directory `/home/xxxgroup/Shared/xxx/LAMMPS_xxx/lammps-16Feb16/src/Obj_intel_phi'
make: *** [intel_phi] Error 2
Following is the basic system info. If you need extra ones, please let me know.
1. CentOS Linux release 7.0.1406 (Core)
2. Linux version:3.10.0-123.el7.x86_64
3. Intel XEON Romley E5-2630 CPU
4. Intel XEON Phi Coprocessor 5110P
5. Four nodes each of which has 24 cores and 2 Coprocessors.
6. Intel compiler.
7. LAMMPS will be installed in the Shared directory to use these four nodes.
I don't know if either of these may help.
There's a similar report here. The resolution for that case it not entirely clear but it may have occurred related to not having one's environment setup properly to use the compiler.
You may have already see this too. There is a code recipe in the article LAMMPS* for Intel® Xeon Phi™ Coprocessor.
Thank you for your message. I did try that solution before I posted this topic. It did not work. Anyway, I appreciate your message and links.
Linker should not be using /usr/lib64. Should have been /usr/linux-k1om-4.7/linux-k1om/lib64
which means your env is not set up correctly. What is your MIC_LIBRARY_PATH set to.
You may be right. This cluster was set by somebody else. I tried to compile LAMMPS which can use CPU + Coprocessor. Below is the MIC library path. Any suggestion will be highly appreciated.
My recommendation would be to source the compilervar.sh from where the compiler is installed.
eg: source /opt/intel/compilers_and_libraries_xxxx/linux/bin/compilervars.sh intel64
You can confirm after source that MIC_LIBRARY_PATH is set correctly. If you have your own libraries used in the app add its location to MIC_LIBRARY_PATH
Actually, I don't understand this error at all. Any further information or website to recommend?
The error you got is during linking phase of the Xeon Phi code. The libraries on the host aka /usr/lib64 are not binary compatible with Xeon Phi binaries.Should be using the libraries that came with the MPSS package. MIC_LIBRARY_PATH provides the location of the Xeon Phi libraries which will be during linking of Phi binary.
Thank you for your solutions. I have following two questions:
Please forgive my ignorance.
1. What is the difference between path of /usr/linux-k1om-4.7/linux-k1om/lib64 and /opt/intel/compilers_and_libraries_xxxx/linux/bin/...?
You mentioned the linux-k1om in your first answer, while you give me another path in your second answer. I did a trial for your second answer and get the same error message. However, I do not know how to set MIC_LIBRARY_PATH using linux-k1om.
2. For the linker, what should I do please?
I highly appreciate your time.
In order to compile a program for phi you need the MPSS and the compiler
MPSS provides the system and gcc libraries.
The MPSS libraries are install in /usr/linux-k1om-4.7/linux-k1om/lib64 and the compiler package in /opt/intel/compilers_and_libraries_xxxx/linux/
assuming you are using the default installation. If you installed in different location then you have to use that location.
When you source the compilervars.sh in /opt/intel/compilers_and_libraries_xxxx/Linux/bin/compilervars.sh all the env variables like MIC_LIBRARY_PATH are set up by the script, again I am assuming they are installed in the default location.
to be a little more precise:
you don't need the full MPSS stack installed and running to build code for the Xeon Phi (v1). What is needed are the RPM packages intel-composerxe-compat-k1om and mpss-sdk-k1om which come with the MPSS software.
you seem to be using a real old version of the Intel compiler (2013_sp1.2) , which does not support the mm512_sincos macros. The easiest solution is to upgrade to a more recent version of the Intel compiler suite.
As an alternative you could download an older version of the lammps code (e.g. from 2013) to see how they handled the Xeon Phi stuff back then.
Thank you so much! You are right. Actually, I downloaded the new version compiler. Unfortunately, I cannot compile the new version LAMMPS because our operating system also need to upgrade. I highly appreciate your time. I am working on it to figure it out.