1 thread and 1 cpu : 5.8731 Gflops
4 thread and 4 cpu : 15.101 Gflops
8 thread and 8 cpu : 15.107 Gflops
16 thread and 16 cpu : 12.471 Gflops
I am not to trace what could be the problem?
At only 1000 rows and columns, the workload is likely too small to sustain good speedup for 16 threads (just over 60 rows per thread). System and threading overheads are likely taking a relatively larger fraction of time to the work being done, which reduces Gflops.
What kind of speeds do you get for larger values of n (e.g., 5000, 10000, 20000)?