Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

disabiling threading

jeige
Beginner
430 Views
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)

Thanks.

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)
at ../sysdeps/generic/libc-start.c:129
0 Kudos
1 Reply
Vladimir_Dudnik
Employee
430 Views
Hi,
Thanks for interesting question. Our answer is - IPP doesn't support MPI, and for now doesn't consider the usage MPI(OMP).

Recommendation is to use static. Possible problem, libguide itself is not switched off even evn var is set. The initialization code of libguide is executed in any case.

Regards,
Vladimir

0 Kudos
Reply