From c59a81c6626a8eaeb260d4fcf76ba6eef085ae58 Mon Sep 17 00:00:00 2001
From: 13513046 <13513046@ld5-01.if.itb.ac.id>
Date: Fri, 12 Feb 2016 18:26:23 +0700
Subject: [PATCH] time count added

---
 bucketsort.c |  31 +++++++++++++++++++++++++------
 bucksort     | Bin 0 -> 13581 bytes
 mpi_hostfile |   9 +++++++++
 3 files changed, 34 insertions(+), 6 deletions(-)
 create mode 100755 bucksort
 create mode 100644 mpi_hostfile

diff --git a/bucketsort.c b/bucketsort.c
index fed7ceb..c2a7bb8 100644
--- a/bucketsort.c
+++ b/bucketsort.c
@@ -9,7 +9,7 @@ int *create_rand_nums(int num_elements) {
 	assert(rand_nums != NULL); 
 	int i; 
 	for (i = 0; i < num_elements; i++) { 
-		rand_nums[i] = rand();
+		rand_nums[i] = rand() % num_elements;
 	} 
 	return rand_nums; 
 } 
@@ -37,6 +37,8 @@ int main(int argc, char** argv) {
 	int bucket[world_size][total_elements];
 	int *rand_nums = NULL;
 
+	double time_start, time_stop;
+
 	if (world_rank == 0) { 
 		rand_nums = create_rand_nums(total_elements); 
 		for (i = 0; i < total_elements; i++) {
@@ -46,6 +48,7 @@ int main(int argc, char** argv) {
 				min = rand_nums[i];
 		}
 		range = (max - min) / world_size + ((max - min) % world_size > 0);
+		time_start = MPI_Wtime();
 		for (i = 0; i < world_size; i++) {
 			k = 0;
 			for (j = 0; j < total_elements; j++) {
@@ -59,8 +62,14 @@ int main(int argc, char** argv) {
 			}
 			rc = MPI_Send(bucket[i], total_elements+1, MPI_INT, i, 1, MPI_COMM_WORLD); 
 		}
-		for (i = 1 ; i < total_elements; i++) {
-			j = i;
+		for (i = 1 ; i < total_elements-1; i++)// {
+			for (j = i; j < total_elements; j++)
+				if (bucket[0][i] > bucket[0][j]) {
+					int temp = bucket[0][i];
+					bucket[0][i] = bucket[0][j];
+					bucket[0][j] = temp;
+			}
+			/*j = i;
 		 
 			while ( j > 0 && bucket[0][j] < bucket[0][j-1]) {
 			  t          = bucket[0][j];
@@ -69,11 +78,18 @@ int main(int argc, char** argv) {
 		 
 			  j--;
 			}
-		}
+		}*/
 	} else {
 		rc = MPI_Recv(inmsg, total_elements+1, MPI_INT, 0, 1, MPI_COMM_WORLD, &Stat); 
 		//Sort
-		for (i = 1 ; i < total_elements; i++) {
+		for (i = 0; i < total_elements-1; i++)
+			for (j = i+1; j < total_elements; j++)
+				if (inmsg[i] > inmsg[j]) {
+					int temp = inmsg[i];
+					inmsg[i] = inmsg[j];
+					inmsg[j] = temp;
+			}
+		/* for (i = 1 ; i < total_elements; i++) {
 			j = i;
 		 
 			while ( j > 0 && inmsg[j] < inmsg[j-1]) {
@@ -83,7 +99,7 @@ int main(int argc, char** argv) {
 		 
 			  j--;
 			}
-		}
+		} */
 		rc = MPI_Send(inmsg, total_elements+1, MPI_INT, 0, 1, MPI_COMM_WORLD);
 	}
 	if (world_rank == 0) { 
@@ -103,9 +119,12 @@ int main(int argc, char** argv) {
 				}
 			}	
 		}
+		time_stop = MPI_Wtime() - time_start;
+
 	}
 	if (world_rank == 0) { 
 		free(rand_nums);
+		printf("%d processes, %d elements, %.2lf seconds", world_size, total_elements, time_stop);
 	} 
 	 
 	MPI_Barrier(MPI_COMM_WORLD); 
diff --git a/bucksort b/bucksort
new file mode 100755
index 0000000000000000000000000000000000000000..b71729d411794a3d0ec9381cb955583b22b93f79
GIT binary patch
literal 13581
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
PYsv}z_F|;S(d+*O&OfMk

literal 0
HcmV?d00001

diff --git a/mpi_hostfile b/mpi_hostfile
new file mode 100644
index 0000000..5cc7fe5
--- /dev/null
+++ b/mpi_hostfile
@@ -0,0 +1,9 @@
+#daftar host
+167.205.35.26
+167.205.35.28
+167.205.35.29
+167.205.35.30
+#167.205.35.31
+#167.205.35.32
+#167.205.35.33
+#167.205.35.34
-- 
GitLab