From 282d82e35d0a25c1242fda61d729d3ee71fed4e8 Mon Sep 17 00:00:00 2001 From: Fauzan Rifqy <fauzanrifqy@localhost.localdomain> Date: Fri, 19 Feb 2016 03:13:03 -0500 Subject: [PATCH] Estimated time --- bucket.c | 23 ++++++++++++----------- omp_bucket | Bin 17152 -> 17256 bytes 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/bucket.c b/bucket.c index 8573e9e..b932214 100644 --- a/bucket.c +++ b/bucket.c @@ -2,6 +2,7 @@ #include <stdlib.h> #include <stdbool.h> #include <omp.h> +#include <time.h> void sorting(int* array, int n){ for (int c = 1 ; c <= n - 1; c++) { @@ -55,6 +56,7 @@ int random_number(int min_num, int max_num) int main(int argc, char* argv[]){ int nthreads, tid, st, en; + clock_t startTime, endTime, totalTime; if(argc<3){ printf("You need input 3 arguments\n"); @@ -68,12 +70,15 @@ int main(int argc, char* argv[]){ for(int i=0; i < n; i++){ elements[i] = rand_interval(n); - printf("%d - ", elements[i]); + //printf("%d - ", elements[i]); } printf("\n"); //bagi ke beberapa embercd //foreach element in elements + + startTime = clock(); + #pragma omp parallel num_threads(thread_count) shared(counter) private(nthreads, tid, orderedElements, st, en) { for(int i=0; i < n; i++){ @@ -81,6 +86,7 @@ int main(int argc, char* argv[]){ } tid = omp_get_thread_num(); int ii = 0; + for(int i=0; i<n; i++){ if(mine(tid, elements[i], thread_count, max)){ orderedElements[ii++] = elements[i]; @@ -102,7 +108,7 @@ int main(int argc, char* argv[]){ { printf("ID %d = %d\n", tid, counter[tid]); for(int i = 0; i < jj; i++){ - printf("%d - ", myElements[i]); + //printf("%d - ", myElements[i]); } printf("\n"); } @@ -124,18 +130,13 @@ int main(int argc, char* argv[]){ } #pragma omp barrier + } - if(tid == 0){ - for (int i = 0; i < n; ++i) - { - printf("%d\n", elements[i]); - } - - } - + endTime = clock(); + totalTime = endTime - startTime; + printf("Total waktu : %fs\n", (double) totalTime/CLOCKS_PER_SEC); - } //if mine(who, element) //myElement.push(element) //shorting diff --git a/omp_bucket b/omp_bucket index c455819f5f647f98110681287c88bf8637a50c36..f0676c082a6de947ffa69444b2698c484cd86587 100755 GIT binary patch delta 6099 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 EAInZD>;M1& delta 5912 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 -- GitLab