diff --git a/SimpleTests/MatrixTests/MatMult.cpp b/SimpleTests/MatrixTests/MatMult.cpp index 5b51b579f2532aa2c51f7f7c2675cab64ca1ec46..9b1dc8fb162ec8ca965074e7c7542649826e633c 100644 --- a/SimpleTests/MatrixTests/MatMult.cpp +++ b/SimpleTests/MatrixTests/MatMult.cpp @@ -123,6 +123,27 @@ int main(int argc, char *argv[]) unsigned nnz(iA[n]); INFO("\tParameters read: n=%d, nnz=%d", n, nnz); +#ifdef _OPENMP + omp_set_num_threads(n_threads); + unsigned *mat_entries_per_core(new unsigned[n_threads]); + for (unsigned k(0); k<n_threads; k++) { + mat_entries_per_core[k] = 0; + } + + OPENMP_LOOP_TYPE i; + { +#pragma omp parallel for + for (i = 0; i < n; i++) { + mat_entries_per_core[omp_get_thread_num()] += iA[i + 1] - iA[i]; + } + } + + INFO("*** work per core ***"); + for (unsigned k(0); k<n_threads; k++) { + INFO("\t%d\t%d", k, mat_entries_per_core[k]); + } +#endif + #ifdef _OPENMP omp_set_num_threads(n_threads); MathLib::CRSMatrixOpenMP<double, unsigned> mat (n, iA, jA, A);