I'm having trouble getting IPP40 to work with mpich. The programs work fine with IPP30 and mpich, but when I link in IPP40 it simply seg fault in some threading code. As a result I thought the problem may be caused by incompatable threading in IPP40. So, I was trying to turn off the threading in IPP40. However I couldn't figure out how to do this. In the IPP40 release notes it says
Increased Threading control
* The use of the dynamic version of libguide allows users to enable/disable nested threading. It is now possible to disable threading inside of Intel IPP library functions such that threading control is maintained at the application level.
I can find no documentation for how this is done, however.
I found something that suggested setting OMP_NUM_THREADS equal one, but when I do this IPP still spawns threads.
Anyone know how to turn off threading? Or to get IPP40 to work with mpich?
(in any case I don't really want IPP to spawn threads)
below is a backtrace of the segfault I get with IPP40. With IPP30 the program runs fine, and I've seen the same thing with multiple mpi programs that also use IPP.
#0 __pthread_alt_lock (lock=0x402e8460, self=0x0) at spinlock.c:446
#1 0x40335cf6 in __pthread_mutex_lock (mutex=0x402e8450) at mutex.c:120
#2 0x402343c8 in __libc_free (mem=0x805c448) at malloc.c:3152
#3 0x40077f2b in beowulf_init () from /usr/lib/libmpich.so.1
#4 0x4007608b in p4_initenv () from /usr/lib/libmpich.so.1
#5 0x4008e5da in MPID_P4_Init () from /usr/lib/libmpich.so.1
#6 0x4008d52d in MPID_CH_InitMsgPass () from /usr/lib/libmpich.so.1
#7 0x40082b1b in MPID_Init () from /usr/lib/libmpich.so.1
#8 0x4009c9f8 in MPIR_Init () from /usr/lib/libmpich.so.1
#9 0x4009c855 in PMPI_Init () from /usr/lib/libmpich.so.1
#10 0x0804af83 in main (argc=1, argv=0xbffff514) at mpi_ipp_test.cpp:34
#11 0x401cf657 in __libc_start_main (main=0x804af18 , argc=1,
ubp_av=0xbffff514, init=0x804a9e4 _init>, fini=0x80548c4 _fini>,
rtld_fini=0x4000dc94 _dl_fini>, stack_end=0xbffff50c)