segmentation fault in dgemv_n() when using more than a certain number of threads

123 views
Skip to first unread message

Vishal Ahuja

unread,
May 22, 2014, 3:30:37 PM5/22/14
to openbla...@googlegroups.com
Hi,

I compiled OpenBLAS using the flag USE_OPENMP=1.  This is allocated on the heap. Each OpenMP thread performs matrix multiplication for a 50X50 matrix of doubles. The code runs fine upto 7 threads, but when I try with 8, I get the following:

(gdb) run 8
Starting program: /home/vishal/Desktop/filters/CKF_Armadillo/src/CKF 8
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[New Thread 0xb5062b40 (LWP 2924)]
[New Thread 0xb4eb9b40 (LWP 2925)]
[New Thread 0xb4d10b40 (LWP 2926)]
[New Thread 0xb4b67b40 (LWP 2927)]
[New Thread 0xb49beb40 (LWP 2928)]
[New Thread 0xb36a7b40 (LWP 2929)]
[New Thread 0xb34feb40 (LWP 2930)]
BLAS : Program is Terminated. Because you tried to allocate too many memory regions.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb34feb40 (LWP 2930)]
0xb7044898 in dgemv_n () from /usr/lib/libopenblas.so.0
(gdb) bt
#0  0xb7044898 in dgemv_n () from /usr/lib/libopenblas.so.0
#1  0xb788aff4 in ?? () from /usr/lib/libopenblas.so.0
Backtrace stopped: previous frame inner to this frame (corrupt stack?)


Now, if I were to set the number of OpenMP threads to 1, then I can run as many as 512 such programs simultaneously. Can someone please help.

Vishal Ahuja

unread,
May 22, 2014, 4:38:46 PM5/22/14
to openbla...@googlegroups.com
The sentence " This is allocated on the heap" refers to the 50X50 matrix of doubles
Reply all
Reply to author
Forward
0 new messages