Which pthreads library to link with?

My application was compiled with nvc++ 20-9.0 and it is segfaulting in
/usr/lib64/libpthread.so. I wonder if it should really be linked against an
nvc++ library. There is a libpthread.ipl in nvidia/hpc_sdk/Linux_x86_64/20.9/compilers/lib, but it has an “ipl” extension and I don’t know what that is.

My OS is Linux 3.10.0. Thanks for any help.

“ipl” files are used by the compiler’s IPA optimization when doing whole program analysis. This is separate and district from the library itself, they just store information about the library.

As for the pthread library, that would need to come from the OS and not something we’d ship with the compilers.

For the segv, I’m not sure. Can you please provide more details?

Thanks,
Mat

Mat,

Thanks for the response. I don’t have much to go on other than the error
message. I am using MPICH 4.0a2 also compiled with npc++ and the error
is occurring inside MPICH, in libmpi.so. Can you suggest a means for finding more about the error? The error message is:

backtrace for error: backtrace after receiving signal SIGSEGV:
./NeedlesMpiMM() [0x47c921]
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/…/…/…/…/lib64/libpthread.so.0(+0xf370) [0x7f6c572ef370]
/home/kmccall/mpich-install-4.0a2/lib/libmpi.so.0(MPIR_Typerep_create_struct+0x1b3) [0x7f6c590f37d3]

Hard to tell what’s wrong without analysis such as compiling with “-g” (debug) and running the code through a debugger. It could be a problem with your MPI build, or an application issue where it’s passing bad data to MPI.

You could try building with a different MPI, such as the OpenMPI we ship with the compilers. If the segv still occurs, it’s likely a problem with your application, if not, likely a problem with your MPICH build.