I am using MKL functions for various operations and calculating the time taken by each function.
For matrix multiplication using dgemm() function, I have calculated time for different orders of matrix as mentioned below:
1000x1000: 0 sec
2000x2000: 4 sec
3000x3000: 11 sec
4000x4000: 26 sec
5000x5000: 52 sec
6000x6000: 91 sec
Till 6000x6000 order matrix, during operation I have noticed that the CPU usage of the system is almost 50 to 55%.
But from 7000x7000 order matrices, the CPU usage is coming down to max of 20% only, and almost its going down to 10% also.
Because of that, more time is taken by the operation for higher order matrices.
Why its happening like this? Also I have set the priority of the processor and thread to the maximum available priority.
For the matrices of order less than 6000x6000, why the CPU usage is only 50%? How we can make the CPU usage maximum (100%) for the MKL operations?
Why from 7000x7000 order, CPU usage is coming down to 10%?
The time taken for executing from 7000x7000 matrices are also mentioned below. We can see that the time is rapidly got increased from here onwards.
7000x7000: 1401 sec
8000x8000: 3129 sec
9000x9000: 5543 sec
And for 10000x10000 order matrix I am getting application error and the application is getting stopped. I am not able to rum for 10000x10000 order matrix. Is it because of the memory problem.
Note: I am using a system of the below configuration:
Intel P4, 3GHz, 1GB RAM
Please help me in this regard.