From 18e844356b0ae33cf62256114ee9db6788a0b7b9 Mon Sep 17 00:00:00 2001 From: 13513043 <13513043@ld5-01.if.itb.ac.id> Date: Fri, 12 Feb 2016 17:41:57 +0700 Subject: [PATCH] Moved from Miftah --- a.out | Bin 0 -> 14536 bytes bucket-sort | Bin 0 -> 13899 bytes bucket.c | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++ mpi_hostfile | 10 +++ performance | 1 + 5 files changed, 188 insertions(+) create mode 100755 a.out create mode 100755 bucket-sort create mode 100644 bucket.c create mode 100644 mpi_hostfile create mode 100644 performance diff --git a/a.out b/a.out new file mode 100755 index 0000000000000000000000000000000000000000..6ca538a12828e0c0aff855e41c2a5537dd20ea24 GIT binary patch literal 14536 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 Uo1V{n<(F3&_DgaenB4OJ2O9FhZvX%Q literal 0 HcmV?d00001 diff --git a/bucket-sort b/bucket-sort new file mode 100755 index 0000000000000000000000000000000000000000..1d8380a78c46d92a12372eee7333ec7643aa54e0 GIT binary patch literal 13899 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 literal 0 HcmV?d00001 diff --git a/bucket.c b/bucket.c new file mode 100644 index 0000000..bdfcbd8 --- /dev/null +++ b/bucket.c @@ -0,0 +1,177 @@ +#include <string.h> +#include <stdio.h> +#include <stdlib.h> +#include <time.h> +#include <mpi.h> +#include <assert.h> + +#define ERR_NO_NUM -1; +#define ERR_NO_MEM -2; +#define MAX_PROCESS 1000 + +int get_unique_rand_num(int max) { + int i, n; + static int numNums = 0; + static int *numArr = NULL; + + if (max >= 0) { + if (numArr != NULL) + free(numArr); + if((numArr = malloc (sizeof(int) * max)) == NULL) + return ERR_NO_MEM; + for (i = 0; i < max; i++) + numArr[i] = i; + numNums = max; + } + + if (max == 0) + return ERR_NO_NUM; + + n = (rand() % numNums); + i = numArr[n]; + + numArr[n] = numArr[numNums - 1]; + numNums--; + if (numNums == 0) { + free (numArr); + numArr = 0; + } + + return i; +} + +int *create_rand_nums(int num_elements) { + int *rand_nums = (int *)malloc(sizeof(int) * num_elements); + assert(rand_nums != NULL); + + int first = get_unique_rand_num(num_elements); + rand_nums[0] = first; + + for (int i = 1; i < num_elements; i++) { + rand_nums[i] = get_unique_rand_num(-1); + } + + return rand_nums; +} + + + +int main(int argc, char** argv) { + if (argc != 2) { + fprintf(stderr, "Usage: avg num_elements_per_proc\n"); + exit(1); + } + int NbElmts = atoi(argv[1]); //ukuran array utama + + double total_times = 0.0; + + MPI_Init(NULL, NULL); + + int world_rank; + MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); + int world_size; + MPI_Comm_size(MPI_COMM_WORLD, &world_size); + int bucket_size = NbElmts / world_size; + + //ARRAY UTAMA + int *rand_nums = NULL; + int *rand_all = NULL; + + + if (world_rank == 0) { + srand(time(NULL)); + rand_nums = create_rand_nums(NbElmts); + + int sub_rand_nums_all[world_size][bucket_size]; + + //used to save last sub_rand_nums_all[] index + int last_idx_all[world_size]; + + for(int i=0; i<world_size; i++) { + last_idx_all[i] = 0; + } + + //mengelompokkan rand_nums pada sub_rand_nums_all[][] + for(int i = 0; i < NbElmts; i++) { + for (int j = 0; j < world_size; j++) { + if (rand_nums[i] < (j + 1) * bucket_size) { + sub_rand_nums_all[j][last_idx_all[j]] = rand_nums[i]; + last_idx_all[j] ++; + break; + } + } + } + + rand_all = malloc(NbElmts * sizeof(int)); + for(int i=0;i<world_size;i++) { + memcpy(rand_all + (i * bucket_size), &sub_rand_nums_all[i], sizeof(int) * bucket_size); + } + } + + int *sub_rand_nums = malloc(sizeof(int) * bucket_size); + + double total_time = 0.0; + + MPI_Barrier(MPI_COMM_WORLD); + + /* Start timer */ + total_time -= MPI_Wtime(); + MPI_Scatter(rand_all, bucket_size, MPI_INT, sub_rand_nums, + bucket_size, MPI_INT, 0, MPI_COMM_WORLD); + + + int swap; + + // Buble Sort + for (int c = 0 ; c < ( bucket_size - 1 ); c++) + { + for (int d = 0 ; d < bucket_size - c - 1; d++) + { + if (sub_rand_nums[d] > sub_rand_nums[d+1]) /* For decreasing order use < */ + { + swap = sub_rand_nums[d]; + sub_rand_nums[d] = sub_rand_nums[d+1]; + sub_rand_nums[d+1] = swap; + } + } + } + + total_time += MPI_Wtime(); + total_times += total_time; + /* End timer */ + + int *all_new = NULL; + + if (world_rank == 0){ + all_new = malloc(sizeof(int) * NbElmts); + } + MPI_Gather(sub_rand_nums, bucket_size, MPI_INT, all_new, bucket_size, MPI_INT, 0, MPI_COMM_WORLD); + + if (world_rank == 0) { + assert(all_new != NULL); + printf("Old Array : \n"); + for(int i=0;i<NbElmts;i++) { + printf("%d, ",rand_nums[i]); + } + + printf("\n\n"); + printf("Sorted Array : \n"); + for(int i=0;i<NbElmts;i++) { + printf("%d, ",all_new[i]); + } + printf("\n\n"); + } + + MPI_Barrier(MPI_COMM_WORLD); + + if (world_rank == 0) { + free(all_new); + free(rand_nums); + } + + free(sub_rand_nums); + + + MPI_Finalize(); + return 0; +} diff --git a/mpi_hostfile b/mpi_hostfile new file mode 100644 index 0000000..7fda33e --- /dev/null +++ b/mpi_hostfile @@ -0,0 +1,10 @@ +#daftar host +localhost +167.205.35.25 +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 diff --git a/performance b/performance new file mode 100644 index 0000000..b81adfd --- /dev/null +++ b/performance @@ -0,0 +1 @@ +0 = 0.060081 ms -- GitLab