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.