From 92a0d508bb60b7436b3dcb4bbc753c1e3a960b40 Mon Sep 17 00:00:00 2001 From: 13513096 <13513096@hpc.if.itb.ac.id> Date: Fri, 19 Feb 2016 15:09:24 +0700 Subject: [PATCH] Complete Task --- Laporan Praktikum 3 Sistem Terdistribusi.doc | Bin 0 -> 58880 bytes omp_bucketsort.c | 128 +++++++++++++++++++ test | Bin 0 -> 13230 bytes 3 files changed, 128 insertions(+) create mode 100644 Laporan Praktikum 3 Sistem Terdistribusi.doc create mode 100644 omp_bucketsort.c create mode 100755 test diff --git a/Laporan Praktikum 3 Sistem Terdistribusi.doc b/Laporan Praktikum 3 Sistem Terdistribusi.doc new file mode 100644 index 0000000000000000000000000000000000000000..926ec1672d863fe8741dfd999057dd02db253e73 GIT binary patch literal 58880 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 literal 0 HcmV?d00001 diff --git a/omp_bucketsort.c b/omp_bucketsort.c new file mode 100644 index 0000000..a9154c1 --- /dev/null +++ b/omp_bucketsort.c @@ -0,0 +1,128 @@ +#include <stdio.h> +#include <stdlib.h> +#include <omp.h> +#include <assert.h> +#include <unistd.h> +#include <time.h> + +int* create_random(int num) { + int* ret = (int*) malloc(sizeof(int) * num); + int i; + for(i = 0; i < num; i++) { + ret[i] = rand() % 100000; + } + return ret; +} + +int sum_cumm(int* a, int n) { + int i; + int sum = 0; + for (i = 0; i < n; ++i) + { + sum += a[i]; + } + return sum; +} + +void quick_sort(int *a,int low,int high) +{ + int pivot,j,temp,i; + if(low<high) { + pivot = low; + i = low; + j = high; + + while(i<j) { + while((a[i]<=a[pivot])&&(i<high)) { + i++; + } + + while(a[j]>a[pivot]) { + j--; + } + + if(i<j) { + temp=a[i]; + a[i]=a[j]; + a[j]=temp; + } + } + + temp=a[pivot]; + a[pivot]=a[j]; + a[j]=temp; + quick_sort(a,low,j-1); + quick_sort(a,j+1,high); + } +} + +void sort(int* a, int k, int l) { + int i, j, t; + for(i = k; i < l; i++) { + for(j = i + 1; j < l; j++) { + if(a[i] > a[j]) { + t = a[i]; + a[i] = a[j]; + a[j] = t; + } + } + } +} + +int main(int argc, char** argv) { + if(argc != 3) { + fprintf(stderr, "Usage: thread_count num_elements"); + return 0; + } + + int thread_count = atoi(argv[1]); + int n = atoi(argv[2]); + + int* num_bucket = (int*) malloc(sizeof(int) * thread_count); + int i, j; + + int* a = create_random(n); + printf("Done randomized\n"); + + int mn = 2000000000; + int mk = -2000000000; + for(i = 0; i < n; i++) { + if(a[i] > mk) mk = a[i]; + if(a[i] < mn) mn = a[i]; + } + int range = mk - mn; + int leap = range / thread_count + 1; + int* this = (int*) malloc(sizeof(int) * n); + int* cur = (int*) malloc(sizeof(int) * n); + + for(i = 0; i < thread_count; i++) num_bucket[i] = 0; + int cur_pos = 0; + for(j = 0; j < thread_count; j++) { + for(i = 0; i < n; i++) { + if(mn + j*leap <= a[i] && a[i] < mn + (j + 1)*leap) { + cur[num_bucket[j]+cur_pos] = a[i]; + num_bucket[j]++; + } + } + cur_pos += num_bucket[j]; + } + + clock_t begin = clock(); + +# pragma omp parallel for num_threads(thread_count) + for (i = 0; i <= thread_count; i++) + { + if (i == 0) + { + quick_sort(cur,0,num_bucket[i]-1); + } + else { + quick_sort(cur,sum_cumm(num_bucket,i-1),sum_cumm(num_bucket,i)-1); + } + } + clock_t end = clock(); + printf("Running time (ms) : %lf\n", (double)(end - begin) *1000 / CLOCKS_PER_SEC); + return 0; +} + + diff --git a/test b/test new file mode 100755 index 0000000000000000000000000000000000000000..361a143f84659da8af9815cba0ded465a84abfe9 GIT binary patch literal 13230 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 literal 0 HcmV?d00001 -- GitLab