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