From f2e916ca2ce099d75293dd38f7844da386068898 Mon Sep 17 00:00:00 2001 From: cs293-ahilkhancse Date: Wed, 23 Oct 2024 02:12:09 +0530 Subject: [PATCH] removed locks which cause unneccesary wait --- LU_factorisation | Bin 0 -> 17000 bytes src/LU_factorisation.cpp | 8 -------- 2 files changed, 8 deletions(-) create mode 100755 LU_factorisation diff --git a/LU_factorisation b/LU_factorisation new file mode 100755 index 0000000000000000000000000000000000000000..ae74d48e17a1b53cf967068e8f7753275789e3f9 GIT binary patch literal 17000 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 Nn=Fl`E&~@U{tFvrsmA~S literal 0 HcmV?d00001 diff --git a/src/LU_factorisation.cpp b/src/LU_factorisation.cpp index 3e9be3a..a501ebb 100644 --- a/src/LU_factorisation.cpp +++ b/src/LU_factorisation.cpp @@ -8,9 +8,6 @@ using namespace std; // LU Decomposition function void l_u_d(float** a, float** l, float** u, int size) { - // Initialize a simple lock for parallel region - omp_lock_t lock; - omp_init_lock(&lock); // Initialize L and U matrices for (int i = 0; i < size; i++) { @@ -35,29 +32,24 @@ void l_u_d(float** a, float** l, float** u, int size) // Update U matrix #pragma omp for schedule(static) for (int j = k; j < size; j++) { - omp_set_lock(&lock); u[k][j] = a[k][j]; for (int s = 0; s < k; s++) { u[k][j] -= l[k][s] * u[s][j]; } - omp_unset_lock(&lock); } // Update L matrix #pragma omp for schedule(static) for (int i = k + 1; i < size; i++) { - omp_set_lock(&lock); l[i][k] = a[i][k]; for (int s = 0; s < k; s++) { l[i][k] -= l[i][s] * u[s][k]; } l[i][k] /= u[k][k]; - omp_unset_lock(&lock); } } } - omp_destroy_lock(&lock); } int main(int argc, char *argv[]) { int size = 2;