From b4ab8cfd2eb89f96493b59f3eed4a44e3fee32ba Mon Sep 17 00:00:00 2001 From: 13513063 <13513063@hpc.if.itb.ac.id> Date: Fri, 19 Feb 2016 15:41:34 +0700 Subject: [PATCH] Program + laporan --- laporan.txt | 78 +++++++++++++++++++++++++++++++++++++++++ omp_bucketsort | Bin 0 -> 17058 bytes omp_bucketsort.c | 88 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 166 insertions(+) create mode 100644 laporan.txt create mode 100755 omp_bucketsort create mode 100644 omp_bucketsort.c diff --git a/laporan.txt b/laporan.txt new file mode 100644 index 0000000..d439a94 --- /dev/null +++ b/laporan.txt @@ -0,0 +1,78 @@ +perbandingan waktu kinerja program + +1) +N = 50.000, M = 1 +t = 2240 ms + +N = 50.000, M = 8 +t = 580 ms + +N = 50.000, M = 16 +t = 450 ms + +N = 50.000, M = 32 +t = 460 ms + +N = 50.000, M = 64 +t = 780 ms + +N = 50.000, M = 128 +t = 140 ms + +2) +N = 100.000, M = 1 +t = 8630 ms + +N = 100.000, M = 8 +t = 1440 ms + +N = 100.000, M = 16 +t = 1080 ms + +N = 100.000, M = 32 +t = 1130 ms + +N = 100.000, M = 64 +t = 1190 ms + +N = 100.000, M = 128 +t = 360 ms + +3) +N = 200.000, M = 1 +t = 32500 ms + +N = 200.000, M = 8 +t = 5160 ms + +N = 200.000, M = 16 +t = 3140 ms + +N = 200.000, M = 32 +t = 2410 ms + +N = 200.000, M = 64 +t = 2330 ms + +N = 200.000, M = 128 +t = 840 ms + +4) +N = 400.000, M = 1 +t = 132480 ms + +N = 400.000, M = 8 +t = 18430 ms + +N = 400.000, M = 16 +t = 10020 ms + +N = 400.000, M = 32 +t = 8060 ms + +N = 400.000, M = 64 +t = 6720 ms + +N = 400.000, M = 128 +t = 3450 ms + diff --git a/omp_bucketsort b/omp_bucketsort new file mode 100755 index 0000000000000000000000000000000000000000..3283b4940a935f5759e9c704190e085f2d24b541 GIT binary patch literal 17058 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 Q_d|YkA=|20E6&FL8+k(Pr~m)} literal 0 HcmV?d00001 diff --git a/omp_bucketsort.c b/omp_bucketsort.c new file mode 100644 index 0000000..307ef2b --- /dev/null +++ b/omp_bucketsort.c @@ -0,0 +1,88 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <math.h> +#include <omp.h> +#include <assert.h> + +int *create_rand_nums(int num_elements) { + int *rand_nums = (int *)malloc(sizeof(int) * (num_elements)); + assert(rand_nums != NULL); + int i; + for (i = 0; i < num_elements; i++) { + rand_nums[i] = (abs((int)rand()) % num_elements); + } + return rand_nums; +} + +void insertionSort(int *arr, int indeksAwal, int indeksAkhir){ + int i,j; + int value; + for(i=indeksAwal+1;i<=indeksAkhir;i++) + { + value=arr[i]; + j=i-1; + while(j>=indeksAwal && value<arr[j]) + { + arr[j+1]=arr[j]; + j=j-1; + } + arr[j+1]=value; + } +} + +int main(int argc, char** argv){ + if(argc != 3){ + fprintf(stderr, "Usage: avg num_elements\n"); + exit(1); + } + + int i; + srand(time(NULL)); + int thread_count = atoi(argv[1]); + int num_elements = atoi(argv[2]); + + int *rand_nums = create_rand_nums(num_elements); + time_t start_t; + start_t = clock(); + int *bucket = (int*)malloc(sizeof(int) * num_elements); // bucket utama yang berisi bucket-bucket dibagi setiap elemen + int *indeks = (int*)malloc(sizeof(int) * thread_count); // menandakan indeks awal setiap bucket pada bucket utama + int range = (num_elements + thread_count) / thread_count; + int* jumlahElemenBucket = NULL; // jumlah elemen setiap bucket + jumlahElemenBucket = (int *)malloc(sizeof(int) * thread_count); + memset(jumlahElemenBucket,0,sizeof(int) * thread_count); + for(i = 0; i < num_elements; ++i){ + jumlahElemenBucket[rand_nums[i]/range]++; + } + for(i = 0; i < thread_count; ++i){ + if(i == 0){ + indeks[i] = 0; + } else { + indeks[i] = indeks[i-1] + jumlahElemenBucket[i-1]; + } + } + memset(jumlahElemenBucket,0,sizeof(int) * thread_count); + for(i = 0; i < num_elements; ++i){ + int indeksBucket = rand_nums[i]/range; + bucket[indeks[indeksBucket] + (jumlahElemenBucket[indeksBucket]++)] = rand_nums[i]; + } + #pragma omp parallel for num_threads(thread_count) + for(i = 0; i < thread_count; ++i){ + if(jumlahElemenBucket[i] != 0){ + insertionSort(bucket,indeks[i],indeks[i]+jumlahElemenBucket[i]-1); + } + } + printf("\n"); + for(i = 0; i < num_elements; ++i){ + printf("%d\n",bucket[i]); + } + time_t finish_t = clock(); + printf("Waktu eksekusi %d data : %d thread : %.5f ms\n", num_elements, thread_count, (double)(finish_t-start_t)*1000/CLOCKS_PER_SEC); + + free(rand_nums); + free(bucket); + free(indeks); + free(jumlahElemenBucket); + return 0; +} -- GitLab