From 86ef4a7596309310f67b8b2a7599499b6928f8c7 Mon Sep 17 00:00:00 2001
From: 13513096 <13513096@ld5-01.if.itb.ac.id>
Date: Fri, 12 Feb 2016 11:21:22 +0700
Subject: [PATCH] basic scatter and gather - unfinished

---
 a     | Bin 13634 -> 13684 bytes
 tes.c |  26 ++++++++++++++++++--------
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/a b/a
index 530e3c15ceeaea09bb140e8f812cefd9353a441b..a922c98cb31e14d2f4705a7d60fb03b1c99e14c8 100755
GIT binary patch
delta 3157
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

delta 3024
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
O*kFBvj~)1us{9X0GGqV%

diff --git a/tes.c b/tes.c
index d1f860b..036c8bd 100644
--- a/tes.c
+++ b/tes.c
@@ -16,7 +16,7 @@ float *create_rand_nums(int num_elements) {
 
 // n adalah jumlah element
 float *insertion_sort(float array[], int n) {
-	float tarray[n];
+	float *tarray = (float *)malloc(sizeof(float) * n);
         int d,c,t;
 	for (c = 1 ; c <= n - 1; c++) {
 		d = c;
@@ -29,6 +29,7 @@ float *insertion_sort(float array[], int n) {
 			d--;
 		}
 	}
+
 	int i;
 	for (i = 0 ; i < n; i++) {
 		tarray[i] = array[i];
@@ -52,12 +53,13 @@ int main(int argc, char** argv) {
 	int world_size; 
 	MPI_Comm_size(MPI_COMM_WORLD, &world_size); 
 	
-	int num_elements_per_proc = world_size;
-
+	int num_elements_per_proc = num_elements / world_size;
+	printf("%d\n",world_size);
 	float *rand_nums = NULL; 
 	if (world_rank == 0) { 
 		rand_nums = create_rand_nums(num_elements); 
 	}
+
 	int i;	
 	for (i = 0; i < num_elements; i++) {
 		printf("BBB %f \n", rand_nums[i]);
@@ -66,9 +68,19 @@ int main(int argc, char** argv) {
 	float *sub_rand_nums = (float *)malloc(sizeof(float) * num_elements_per_proc);
 	assert(sub_rand_nums != NULL);
 	
-	MPI_Scatter(rand_nums, num_elements_per_proc, MPI_FLOAT, sub_rand_nums, num_elements_per_proc, MPI_FLOAT, 0, MPI_COMM_WORLD);
+	MPI_Scatter(rand_nums, num_elements, MPI_FLOAT, sub_rand_nums, num_elements_per_proc, MPI_FLOAT, 0, MPI_COMM_WORLD);
+	
+	for (i = 0; i < num_elements; i++) {
+		printf("CCC %f\n",sub_rand_nums[i]);
+	}
+
+	printf("AADADADAD\n");
 	
-	float *sub_rand_numss = insertion_sort(sub_rand_nums, num_elements_per_proc); 
+	float *sub_rand_numss = insertion_sort(sub_rand_nums, num_elements_per_proc);
+	for (i = 0; i < 3; i++) { 
+		printf("AAAA %f\n",sub_rand_numss[i]); 
+	} 
+
  
 	float *sub_avgs = NULL; 
 	if (world_rank == 0) { 
@@ -76,9 +88,7 @@ int main(int argc, char** argv) {
 		assert(sub_avgs != NULL);
 	}
 
-	for (i = 0; i < 3; i++) { 
-		printf("AAAA %f\n",sub_rand_numss[i]); 
-	} 
+
 	//MPI_Gather(&sub_avg, 1, MPI_FLOAT, sub_avgs, 1, MPI_FLOAT, 0,  MPI_COMM_WORLD); 
 	
 	//Concat
-- 
GitLab