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

Multicore IPP use

garcas
Beginner
470 Views
Hi

I need to develop a signal processing algorithm in a multicore Intel processor so I have decided to test IPP to simplify development because I am not very familiar with multicore programming

I guess I must be doing something wrong because when I run my programm I see that it is only using 1 core, instead of the 8 possible cores

The code calls several IPP functions for matrix operation (transpose, multiplication, inversion, multiplication) to process this vector (code attached). I have tested the code with different input vector sizes with same results. When I run the code the system monitor only shows an increase in the activity of 1 of the cores

I have tried both static and dynamic linking models, with and without calling ippSetNumThreads functions with same results

My development environment is a HP workstation model Z6000 with 2 x Xeon X5550 Quad Core processor running Linux (RedHat) 64 bits

Any ideas on why my programm is only ussing 1 core?

Thank you very much !
0 Kudos
2 Replies
Vladimir_Dudnik
Employee
470 Views
Hello,

not all function in IPP library are threaded. There are many cases when threading inside of primitive function can't be implemented efficiently. I would recommend you to check ThreadedFunctionsList.txt (which is available in Documentation folder of IPP installation) to see if the particular functions you use threaded or not. If they are not threaded then you may want to consider implementing threading on top of IPP.

Regards,
Vladimir
0 Kudos
Chao_Y_Intel
Moderator
470 Views

Hi,

Moreover, in the attached code, it tests the matrix computation. Please note, IPP matrix function are designed for small matrix computation (like, 3x3, 4x4 etc) for some graphics application. If you want to compute large matrix, you can use Intel MKL libraries.

Thanks,
Chao

0 Kudos
Reply