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