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