From d4b76b0ff21b2191c6b960167f6a8b1f2fe30ac9 Mon Sep 17 00:00:00 2001 From: 13518104 Kevin Austin Stefano <13518104@std.stei.itb.ac.id> Date: Fri, 5 Mar 2021 21:11:47 +0700 Subject: [PATCH] openmp done --- src/MST_OpenMP.c | 25 ++++++++++++------------- src/a | Bin 18096 -> 18280 bytes 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/MST_OpenMP.c b/src/MST_OpenMP.c index 7cd7644..74b2206 100644 --- a/src/MST_OpenMP.c +++ b/src/MST_OpenMP.c @@ -85,8 +85,10 @@ void QuickSortSrc(Edge T[], int i, int j) if (i < j) { PartisiSrc(T, i, j, &k); - QuickSortSrc(T, k + 1, j); - QuickSortSrc(T, i, k); + #pragma omp task + {QuickSortSrc(T, k + 1, j);} + #pragma omp task + {QuickSortSrc(T, i, k);} } } @@ -132,9 +134,6 @@ void QuickSortWeight(Edge T[], int i, int j) {QuickSortWeight(T, k + 1, j);} #pragma omp task {QuickSortWeight(T, i, k);} - - - } } @@ -301,17 +300,11 @@ void KruskalMST(Graph *graph, Edge result[], int *e) while (((*e) < V - 1) && (i < graph->E)) { // Pick the smallest edge of the graph - // #pragma omp parallel - // #pragma omp single - // #pragma omp critical { int x, y; Edge next_edge = graph->edge[i++]; - // #pragma omp task {x = find(subsets, next_edge.src);} - // #pragma omp task {y = find(subsets, next_edge.dest);} - // #pragma omp taskwait if (x != y) { @@ -326,8 +319,14 @@ void KruskalMST(Graph *graph, Edge result[], int *e) } - - QuickSortSrc(result, 1, (*e)); + #pragma omp parallel num_threads(thread_count) + { + #pragma omp single + { + QuickSortSrc(result, 1, (*e)); + } + } + // bubbleSort(result, (*e), 2); return; // qsort(result, e, sizeof(result[0]), compare_src); diff --git a/src/a b/src/a index a78b7e4c61f167209313777f1162fb78f239ce74..44c26ba5e00adf3ca46e14785ac4b0fa9aff0377 100755 GIT binary patch delta 5415 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 LE?%S737P)`9KS4^ delta 4916 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 M&`zAeFO??zA7FCYQvd(} -- GitLab