From b5580a849393175d37394cd4e88c7ca1b0cc5850 Mon Sep 17 00:00:00 2001 From: MarcoOrlando <13513038@std.stei.itb.ac.id> Date: Fri, 19 Feb 2016 14:49:47 +0700 Subject: [PATCH] FINISH --- bucketsort_tri | Bin 0 -> 16843 bytes bucketsort_tri.c | 154 +++++++++++++++++++++++++++++++++++++++++++++++ laporan.txt | 64 ++++++++++++++++++++ omp_hello.c | 23 +++++++ 4 files changed, 241 insertions(+) create mode 100755 bucketsort_tri create mode 100644 bucketsort_tri.c create mode 100644 laporan.txt create mode 100644 omp_hello.c diff --git a/bucketsort_tri b/bucketsort_tri new file mode 100755 index 0000000000000000000000000000000000000000..afd10b9f16185f8b91e4e9faa0a6f9911f32351f GIT binary patch literal 16843 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 E24zNjyZ`_I literal 0 HcmV?d00001 diff --git a/bucketsort_tri.c b/bucketsort_tri.c new file mode 100644 index 0000000..449539c --- /dev/null +++ b/bucketsort_tri.c @@ -0,0 +1,154 @@ + +#include <omp.h> +#include <stdlib.h> +#include <time.h> +#include <stdio.h> +#include <string.h> + +typedef struct Bucket { + int num; + int* content; + int size; +} Bucket; + +int *intdup(int const * src, size_t len) +{ + int * p = malloc(len * sizeof(int)); + memcpy(p, src, len * sizeof(int)); + return p; +} + +int *createArray (int num_elements) { + int *rand_nums = (int *) malloc(sizeof(int) * num_elements); + int i; + + srand(time(NULL)); + + for (i = 0; i < num_elements; i++ ) { + rand_nums[i] = (rand() % 100); + // printf(":%d ", rand_nums[i]); + } + //printf("\n"); + return rand_nums; +} + +int searchMax (int *array, int size) { + int max = 0; + int i = 0; + for (i = 0; i < size; i++ ) { + if ( array[i] > max ) { + max = array[i]; + } + } + return max; +} + +Bucket* createBucket (int* array, int max_num, int array_size, int process) { + int total_bucket = process; + Bucket *buckets = (Bucket *) malloc(sizeof(Bucket) * total_bucket); + + int content_size = (max_num / total_bucket) + 1; + + int i = 0; + for (i = 0; i < total_bucket; i++) { + int *temp_bucket = (int *) malloc(sizeof(int) * array_size); + int n = 0; + int l = 0; + + for (n = 0; n < array_size; n++) { + if (( array[n] >= i * content_size ) && + ( array[n] < (i * content_size) + content_size )) { + temp_bucket[l] = array[n]; + ++l; + } + } + + buckets[i].num = i; + buckets[i].size = l; + buckets[i].content = intdup(temp_bucket, l); + free(temp_bucket); + } + + return buckets; +} + +int *insertionSort(int *array,int n){ + int d,c,t; + + for (c = 1 ; c <= n - 1; c++) { + d = c; + + while ( d > 0 && array[d] < array[d-1]) { + t = array[d]; + array[d] = array[d-1]; + array[d-1] = t; + + d--; + } + } + + return array; +} + +void printBucket (Bucket b) { + int i = 0; + printf("print: "); + for (i = 0; i < b.size; i++) { + printf("[%d]", b.content[i]); + } +} + +void printArray (int *array, int size) { + int i; + //printf("Array Size : %d",size ); + for (i = 0; i < size; i++) { + printf("[%d]", array[i]); + } + //printf("\n"); +} + +Bucket *buckets =NULL; + +void Hello(int **array,int* size){ + + int world_rank = omp_get_thread_num(); + int *sorted = insertionSort(buckets[world_rank].content, buckets[world_rank].size); + array[world_rank] = sorted; + size[world_rank] = buckets[world_rank].size; + } + + +int main(int argc, char *argv[]) { + clock_t start, end; + + printf("Start"); + start = clock(); + + + int thread_count = strtol(argv[1], NULL, 10); + int world_rank = omp_get_thread_num(); + + int array_size = atoi(argv[2]); + int *array = NULL; + array = createArray(array_size); + + buckets = createBucket(array, searchMax(array,array_size), array_size, thread_count); + //printBucket(buckets[0]); + + int i = 0; + + int *sorted_all[thread_count]; + int sorted_size[thread_count]; + + #pragma omp parallel num_threads(thread_count) + Hello(&(*sorted_all),&sorted_size); + + // for (i = 0; i < thread_count; i++){ + // printArray(sorted_all[i], sorted_size[i]); + //} + + end = clock(); + printf("Ending"); + printf("Execution time : %f mseconds",(double)(end - start) * 1000.0 / CLOCKS_PER_SEC); + return 0; +} diff --git a/laporan.txt b/laporan.txt new file mode 100644 index 0000000..607ebed --- /dev/null +++ b/laporan.txt @@ -0,0 +1,64 @@ +Laporan OpenMP +Tjan Marco Orlando 13513038 +Lie Albert Tri 13513076 + + + +Untuk Nilai N: 50.000 +1 +3560ms +8 +610ms +16 +430ms +32 +370 +64 +430ms +128 +60ms + + +Untuk Nilai N: 100.000 +1 +14400ms +8 +2130ms +16 +1310ms +32 +890ms +64 +980ms +128 +110ms + +Untuk Nilai N: 200.000 +1 +57620ms +8 +7670ms +16 +4350ms +32 +2660ms +64 +1620ms +128 +190ms + + +Untuk Nilai N: 400.000 +1 +232240ms +8 +28620ms +16 +15090ms +32 +9020ms +64 +5630ms +128 +280ms + diff --git a/omp_hello.c b/omp_hello.c new file mode 100644 index 0000000..83228d7 --- /dev/null +++ b/omp_hello.c @@ -0,0 +1,23 @@ +#include <stdio.h> +#include <stdlib.h> +#include <omp.h> + +void Hello(void); /* Thread function */ + + int main(int argc, char *argv[]) { + int thread_count = strtol(argv[1], NULL, 10); + +#pragma omp parallel num_threads(thread_count) +Hello(); + +return 0; +} + +void Hello(void) { + int my_rank = omp_get_thread_num(); + int thread_count = omp_get_num_threads(); + + printf("Hello from thread %d of %d\n", + my_rank, thread_count); +} + -- GitLab