I get this error when I run a code that was compiled with 6.1-5 on an Opteron cluster:
/home/a13890/TEACC_w_Overflow/Run_overflow/overflow_TEACC: /opt/pgi/linux86-64/6.1/lib/libpthread.so.0: version `GLIBC_2.3.3’ not found (required by /lib64/tls/librt.so.1)
What’s the correct way to install glibc 2.3.3? We also have users that are compiling with 5.2
Another user had a similar problem (See HERE), where a ‘libpthread.so’ symlink was added to the PGI lib directory which pointed to ‘libpgthread.so’. On all systems except Red Hat 7.3, ‘libpgthread.so’ is simply a link to ‘/lib[64]/libpthread.so’, which in this case was the wrong pthread library. To correct, the user reset the ‘libpgthread.so’ link to ‘/lib[64]/tls/libpthread.so’
I suspect you have a similar problem where the loader is picking up the non-TLS version of libpthread.so. Besides redirecting the /opt/pgi/linux86-64/6.1/lib/libpgthread.so link as the previous user had done, I think if you set your LD_LIBRARY_PATH to first include “/lib64/tls”, then it should work as well.
I’m having this same problem with shared libraries on a Rocks cluster. The code needs to load the pthread library in /lib64/tls, but it’s getting the one in /opt/pgi/linux86-64/6.1/lib.
62> mpirun -np 10 -machinefile nodes_10 ./ns
/home/a19262/GEMS/RUNS/T2356/./ns: /opt/pgi/linux86-64/6.1/lib/libpthread.so.0: version `GLIBC_2.3.3’ not found (required by /lib64/tls/librt.so.1)
Are the environment variables being set for each node? Typically, you need to set these variables in your default evironment (i.e. “.cshrc” file) or wrap your exe in a script which first sets your environment before invoking the application.