From acf17e0099c28c838fd42d57a8c54275462346a6 Mon Sep 17 00:00:00 2001 From: Joseph John Date: Mon, 11 Dec 2023 11:52:31 +1100 Subject: [PATCH] Tasks used --- src/exercise5_solution.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/exercise5_solution.c b/src/exercise5_solution.c index f2b5484..c254edb 100644 --- a/src/exercise5_solution.c +++ b/src/exercise5_solution.c @@ -232,6 +232,7 @@ void block_triangular_solve(const size_t m, const size_t n, const double *a, for (size_t i = 0; i < m; i++) { b[i * ldb + k] = tmp * b[i * ldb + k]; } + for (size_t j = k + 1; j < n; j++) { if (a[j * lda + k] != 0.0) { double tmp = a[j * lda + k]; @@ -258,11 +259,13 @@ void block_symmetric_rank_k_update(const size_t n, const size_t k, const size_t ldc) { #pragma omp parallel for for (size_t j = 0; j < n; j++) { - #pragma omp parallel for - for (size_t l = 0; l < k; l++) { - double tmp = a[j * lda + l]; - for (size_t i = j; i < n; i++) { - c[i * ldc + j] -= tmp * a[i * lda + l]; + #pragma omp task + { + for (size_t l = 0; l < k; l++) { + double tmp = a[j * lda + l]; + for (size_t i = j; i < n; i++) { + c[i * ldc + j] -= tmp * a[i * lda + l]; + } } } } @@ -286,10 +289,12 @@ void block_sub_matrix_mul(const size_t m, const size_t n, const size_t k, const size_t ldb, double *c, const size_t ldc) { #pragma omp parallel for for (size_t i = 0; i < m; i++) { - #pragma omp parallel for - for (size_t j = 0; j < n; j++) - for (size_t l = 0; l < k; l++) - c[i * ldc + j] = c[i * ldc + j] - a[i * lda + l] * b[j * ldb + l]; + #pragma omp task + { + for (size_t j = 0; j < n; j++) + for (size_t l = 0; l < k; l++) + c[i * ldc + j] = c[i * ldc + j] - a[i * lda + l] * b[j * ldb + l]; + } } }