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