From 04b87174001f1ae16615502628d51f8dcae0efbd Mon Sep 17 00:00:00 2001 From: Tim <13517087@std.stei.itb.ac.id> Date: Sat, 29 Feb 2020 11:12:58 +0700 Subject: [PATCH] openMP process paralleled --- output/paralel_3000.txt | 9 ++--- output/paralel_other.txt | 6 ++++ src/djikstra_paralel | Bin 23976 -> 24152 bytes src/djikstra_paralel.c | 69 ++++++++++++++++++++++++++------------- 4 files changed, 58 insertions(+), 26 deletions(-) create mode 100644 output/paralel_other.txt diff --git a/output/paralel_3000.txt b/output/paralel_3000.txt index 5ee3756..6c0ca50 100644 --- a/output/paralel_3000.txt +++ b/output/paralel_3000.txt @@ -1,5 +1,6 @@ -0 4 1 3 -4 0 3 1 -1 3 0 2 -3 1 2 0 +0 2 1 2 1 +2 0 3 2 1 +1 3 0 3 2 +2 2 3 0 1 +1 1 2 1 0 diff --git a/output/paralel_other.txt b/output/paralel_other.txt new file mode 100644 index 0000000..6c0ca50 --- /dev/null +++ b/output/paralel_other.txt @@ -0,0 +1,6 @@ + +0 2 1 2 1 +2 0 3 2 1 +1 3 0 3 2 +2 2 3 0 1 +1 1 2 1 0 diff --git a/src/djikstra_paralel b/src/djikstra_paralel index 225168379c4939150686da271b3e25fc964d79f3..43e73dbf217db82995522d5e69bc3a361c091e6e 100755 GIT binary patch delta 8432 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 WgpabE#iR67`2B~FT*{{ArT!m+m>-h> delta 7914 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 IyPuo<|EcvR_W%F@ diff --git a/src/djikstra_paralel.c b/src/djikstra_paralel.c index 7684352..ff51b43 100644 --- a/src/djikstra_paralel.c +++ b/src/djikstra_paralel.c @@ -74,12 +74,14 @@ void printArray(unsigned long long *arr, int V){ else if(V == 1000){ fp = fopen("../output/paralel_1000.txt", "w+"); } - else { + else if(V == 3000){ fp = fopen("../output/paralel_3000.txt", "w+"); } + else { + fp = fopen("../output/paralel_other.txt", "w+"); + } for(int i = 0; i < V*V; i++){ - // printf("%d", i); if(i % V == 0){ fprintf(fp, "\n"); // printf("\n"); @@ -92,6 +94,16 @@ void printArray(unsigned long long *arr, int V){ fclose(fp); } +void printArrayTerminal(unsigned long long *arr, int V){ + for(int i = 0; i < V*V; i++){ + if(i % V == 0){ + printf("\n"); + } + printf("%lld ", arr[i]); + } + printf("\n"); +} + int minDistance(unsigned long long dist[], bool sptSet[], int V){ int min = INT_MAX, min_index; @@ -139,14 +151,27 @@ int main(int argc, char** argv) { } generateRandomArray(arr, num_of_node); + + unsigned long long **listTempArray; + listTempArray = (unsigned long long **)malloc(num_of_node*sizeof(unsigned long long*)); + for(int j=0;j<num_of_node;j++){ + listTempArray[j]=(unsigned long long*)malloc(num_of_node*sizeof(unsigned long long)); + } + int process_per_host; process_per_host = num_of_node / num_of_processors; unsigned long long* recv_data; recv_data = (unsigned long long *)malloc(((num_of_node*process_per_host*num_of_processors)+num_of_processors)*sizeof(unsigned long long)); - unsigned long long* resultArray; - resultArray = (unsigned long long *)malloc(((process_per_host*num_of_node)+1)*sizeof(unsigned long long)); + // unsigned long long* resultArray; + // resultArray = (unsigned long long *)malloc(((process_per_host*num_of_node)+1)*sizeof(unsigned long long)); + + unsigned long long **listResultArray; + listResultArray = (unsigned long long **)malloc(num_of_processors*sizeof(unsigned long long*)); + for(int j=0;j<num_of_node;j++){ + listResultArray[j]=(unsigned long long*)malloc((num_of_node*process_per_host+1)*sizeof(unsigned long long)); + } #pragma omp parallel num_threads(num_of_processors) { @@ -171,28 +196,28 @@ int main(int argc, char** argv) { unsigned long long* tempArray; tempArray = (unsigned long long *)malloc(num_of_node*sizeof(unsigned long long)); - // free(tempArray); - // INSERT FLAG + + // #pragma omp barrier + int count = 0; + for (int source=process_per_host*world_rank ; source < (process_per_host*world_rank + process_per_host) ; source++){ + // printf("\nprocess, rank %d %d\n", process_per_host, world_rank); + dijkstra(arr, source, num_of_node, listTempArray[source]); + for(int y=0; y<num_of_node;y++){ + // resultArray[(count*num_of_node) + y] = listTempArray[source][y]; + listResultArray[world_rank][(count*num_of_node) + y] = listTempArray[source][y]; + } + count++; + } // resultArray[num_of_node * process_per_host] = world_rank; - // } + listResultArray[world_rank][num_of_node * process_per_host] = world_rank; #pragma omp barrier #pragma omp critical { printf("%d critical\n",world_rank); - - int count = 0; - for (int source=process_per_host*world_rank ; source < (process_per_host*world_rank + process_per_host) ; source++){ - // printf("\nprocess, rank %d %d\n", process_per_host, world_rank); - dijkstra(arr, source, num_of_node, tempArray); - for(int y=0; y<num_of_node;y++){ - resultArray[(count*num_of_node) + y] = tempArray[y]; - } - count++; - } - resultArray[num_of_node * process_per_host] = world_rank; - for(int i=0;i<process_per_host * num_of_node + 1;i++){ - recv_data[world_rank*(1+process_per_host*num_of_node) +i] = resultArray[i]; + // recv_data[world_rank*(1+process_per_host*num_of_node) +i] = resultArray[i]; + recv_data[world_rank*(1+process_per_host*num_of_node) +i] = listResultArray[world_rank][i]; + } // Flag @@ -238,7 +263,7 @@ int main(int argc, char** argv) { int sisa_source; sisa_source = num_of_node % (process_per_host * num_of_processors); - printf("sisa : %d\n",sisa_source); + printf("\nsisa : %d\n",sisa_source); if(num_of_node % num_of_processors != 0){ unsigned long long* tempArray; tempArray = (unsigned long long *)malloc((num_of_node)*sizeof(unsigned long long)); @@ -272,7 +297,7 @@ int main(int argc, char** argv) { // if(world_rank == 0){ // printf("Time taken %f microsecond\n", dijkstra_time) * 1000000; - printArray(hasilAkhir, num_of_node); + printArrayTerminal(hasilAkhir, num_of_node); // } // FREE -- GitLab