From 9c766df040810b9dd8289eea20549eff9291f934 Mon Sep 17 00:00:00 2001
From: omarcelh <13513056@hpc.if.itb.ac.id>
Date: Fri, 19 Feb 2016 11:36:12 +0700
Subject: [PATCH] not done

---
 omp_buckle.c |  88 ++++++++++++++++++++++++++++++++++++++++++++++++
 omp_hello    | Bin 0 -> 10087 bytes
 omp_hello.c  |  23 +++++++++++++
 omp_sort     | Bin 0 -> 15348 bytes
 omp_sort.c   |  92 +++++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 203 insertions(+)
 create mode 100644 omp_buckle.c
 create mode 100755 omp_hello
 create mode 100644 omp_hello.c
 create mode 100755 omp_sort
 create mode 100644 omp_sort.c

diff --git a/omp_buckle.c b/omp_buckle.c
new file mode 100644
index 0000000..7c02730
--- /dev/null
+++ b/omp_buckle.c
@@ -0,0 +1,88 @@
+#include <stdio.h>
+#include <omp.h>
+#include <stdlib.h>
+
+int main(int argc, char** argv){
+	int numtasks, rank, dest, source, rc, count, tag=1;
+	
+	numtasks = strtol(argv[1], NULL, 10);
+
+	int bucketNEff;
+	int bucketsNEff[numtasks];
+	int i;
+	int n;
+	int *arr;
+	int *input;
+	double sendtime=0.0 , sorttime=0.0;
+	int min,max;
+
+		srand(time(NULL));
+                printf("Input number of element");
+                n = strtol(argv[2], NULL, 10);
+                input=(int*)malloc(sizeof(int)*n);
+                printf("%d number of elements\n", n);
+
+                int c;
+                for (c = 0; c < n; c++) {
+                        input[c] = abs(rand() % 1000000);
+                        printf("%d. %d\n", c, input[c]);
+                }
+
+                min = input[0];
+                max = input[0];
+                for (c = 0; c < n; c++) {
+                        if(input[c] < min) {
+                                min = input[c];
+                        }
+                        if(input[c] > max) {
+                                max = input[c];
+                        }
+                }
+	}
+		
+		printf("numtasks: %d\n", numtasks);
+		
+		
+		int j;
+		for(j=1; j<numtasks; j++){
+			bucketsNEff[j] = 0;
+		}
+		
+		for(i=0; i<n; i++){
+			int inc = max/(numtasks-1);
+			int iteration = 1;
+			int k;
+			int p = 0; //false
+			for(k=inc; k<=max; k+=inc){
+				if(input[i] <= k){
+					bucketsNEff[iteration]++;
+					p = 1;
+					break;
+				}
+				iteration++;
+			}
+			if(!p){ 
+				bucketsNEff[iteration-1]++;
+			}
+		}
+		
+		#pragma omp parallel for num_threads(numtasks)
+		for(i=0; i<numtasks; i++){
+			int c, d, t;
+	                for (c = 1 ; c <= n; c++) {
+        	                d = c;
+                	        while ( d > 0 && input[d] < input[d-1]) {
+                        	        t          = input[d];
+                                	input[d]   = input[d-1];
+                                	input[d-1] = t;
+                                	d--;
+                        	}
+                	}
+		}
+	
+		printf("\nAvg send time = %lf\n", sendtime / numtasks); 
+    	printf("Avg sort time = %lf\n", sorttime / numtasks);
+	}
+	
+	return 0;
+}
diff --git a/omp_hello b/omp_hello
new file mode 100755
index 0000000000000000000000000000000000000000..447837691ff1fd501bab86be97920ee2e83cf16a
GIT binary patch
literal 10087
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
WcNV?uQgTrSWu#`JTPw1o#J>PNHnn8{

literal 0
HcmV?d00001

diff --git a/omp_hello.c b/omp_hello.c
new file mode 100644
index 0000000..1f5dec6
--- /dev/null
+++ b/omp_hello.c
@@ -0,0 +1,23 @@
+#include <stdio.h> 
+#include <stdlib.h> 
+#include <omp.h> 
+ 
+void Hello(void); /* Thread function */ 
+ 
+int main(int argc, char *argv[]) { 
+	int thread_count = strtol(argv[1], NULL, 10); 
+ 	
+	#pragma omp parallel num_threads(thread_count) 
+	Hello(); 
+ 
+	return 0; 
+} 
+ 
+void Hello(void) { 
+	int my_rank = omp_get_thread_num(); 
+	int thread_count = omp_get_num_threads(); 
+ 
+	printf("Hello from thread %d of %d\n", 
+	my_rank, thread_count); 
+} 
+
diff --git a/omp_sort b/omp_sort
new file mode 100755
index 0000000000000000000000000000000000000000..0dcae59f540ae44b6478a15ca22907d764da33b0
GIT binary patch
literal 15348
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

literal 0
HcmV?d00001

diff --git a/omp_sort.c b/omp_sort.c
new file mode 100644
index 0000000..ab404e5
--- /dev/null
+++ b/omp_sort.c
@@ -0,0 +1,92 @@
+#include <stdio.h>
+#include <omp.h>
+#include <stdlib.h>
+
+void insertionSort(int* arr, int size, int** sortedArr);
+void bucketSort(int* arr, int size, int** sortedArr);
+
+int main(int argc, char** argv){
+	int bucketNEff;
+	int thread_count = strtol(argv[1], NULL, 10);
+	int bucketsNEff[thread_count];
+	
+	int* arr_final;
+	int* input;
+	//double sendtime=0.0 , sorttime=0.0;
+	//int min,max;
+
+	srand(time(NULL));
+        int n = strtol(argv[2], NULL, 10);
+        input = (int*) malloc (sizeof(int)*n);
+        printf("%d number of elements\n", n);
+
+        int c;
+        for (c = 0; c < n; c++) {
+   		input[c] = abs(rand() % 1000000);
+                printf("%d. %d\n", c, input[c]);
+        }
+
+	#  pragma omp parallel num_threads(thread_count)
+	bucketSort(input, n, &arr_final);
+	
+	for(c=0; c<n; c++){
+		printf("%d ", arr_final[c]);
+	}
+
+	/*
+        min = input[0];
+        max = input[0];
+        for (c = 0; c < n; c++) {
+	        if(input[c] < min) {
+        	        min = input[c];
+                }
+                if(input[c] > max) {
+                        max = input[c];
+                }
+        }*/
+	return 0;
+}
+
+void insertionSort(int* arr, int size, int** sortedArr){
+	int c, d, t;
+	*sortedArr = (int*) malloc (sizeof(int) * size);
+
+	for(c=0; c<size; c++){
+		*sortedArr[c] = arr[c];
+	}
+
+	for (c = 1 ; c <= size - 1; c++) {
+		d = c;
+ 
+    		while ( d > 0 && arr[d] < arr[d-1]) {
+      			t          = *sortedArr[d];
+      			*sortedArr[d]   = *sortedArr[d-1];
+      			*sortedArr[d-1] = t;
+ 
+      			d--;
+    		}
+  	}
+}
+
+void bucketSort(int* arr, int size, int** sortedArr){
+	int c;
+	*sortedArr = (int*) malloc (sizeof(int) * size);
+
+	for(c=0; c<size; c++){
+		sortedArr[c] = arr[c];
+	}
+
+	int my_rank = omp_get_thread_num();
+	int thread_count = omp_get_num_threads();
+	
+	double range = size/thread_count;
+	int i_awal, i_akhir;
+	i_awal = my_rank * range;
+	i_akhir = i_awal + range;
+	
+	int temp[range];
+	int i;
+	for(i=0; i<range; i++){
+		temp[i] = arr[
+	}	
+}
-- 
GitLab