Intel has generously given me access to the Manycore Testing Lab to benchmark some C++11 algorithms for non-blocking shared memory read/write I developed, but unfortunately I cannot get my software to work therein (everything works just fine on my home PC using gcc 4.7.2).
I use the following C++11 features: std::function, thread, mutex, sleep_for, atomics. The source code is the one you can see at NB_ARSS_1_Check.cpp. Code compilation is OK with Parallel Studio XE 2016 (Red Hat 4.1.2 OS) using:
icpc -D_GLIBCXX_USE_NANOSLEEP -Iinclude -std=c++11 -pthread test/main.cpp -o ART
but when I try to run the resulting executable I obtain the following error:
/usr/lib64/libstdc++.so.6 : version 'GLIBCXX_3.4.11' not found
The g++ version I'm using is 4.4.3.
Am I missing some options/parameters or is it a standard lib problem and thus I should ask the MTL team for an upgrade? Thank you.
[originally posted at the Moderncode for Parallel Architectures forum]
Tim P. wrote:
Does look like a shared library path problem. Since you had to change path to g++, look for corresponding change to ld_library_path
(As I said in the other thread reply) How could I not have thought about that?! I'm sorry this was actually a very stupid issue. Maybe I was just confused by the fact that I was not working on my machine. Many thanks for your kind help, it solved the problem.