From 088d6bac69216b3f4071a81262f6739d3f0a2a45 Mon Sep 17 00:00:00 2001
From: Nicolas Fley <nicolas.fley@student.ecp.fr>
Date: Fri, 3 Mar 2017 22:59:59 +0100
Subject: [PATCH] prod_mat_vec done

---
 prod_mat_vec/bin/Debug/prod_mat_vec.exe | Bin 0 -> 68072 bytes
 prod_mat_vec/main.c                     | 110 ++++++++++++++++++++++--
 prod_mat_vec/main.c.save-failed         |  43 +++++++++
 prod_mat_vec/obj/Debug/main.o           | Bin 0 -> 6213 bytes
 prod_mat_vec/prod_mat_vec.depend        |   7 ++
 5 files changed, 152 insertions(+), 8 deletions(-)
 create mode 100644 prod_mat_vec/bin/Debug/prod_mat_vec.exe
 create mode 100644 prod_mat_vec/main.c.save-failed
 create mode 100644 prod_mat_vec/obj/Debug/main.o
 create mode 100644 prod_mat_vec/prod_mat_vec.depend

diff --git a/prod_mat_vec/bin/Debug/prod_mat_vec.exe b/prod_mat_vec/bin/Debug/prod_mat_vec.exe
new file mode 100644
index 0000000000000000000000000000000000000000..7d4224c794774bd4bb59b11f23ddb626c5e0b9d2
GIT binary patch
literal 68072
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
S`3Na|!GVCYxB<&TXHNl=;k?KI

literal 0
HcmV?d00001

diff --git a/prod_mat_vec/main.c b/prod_mat_vec/main.c
index e8fd89d..d2bf2f1 100644
--- a/prod_mat_vec/main.c
+++ b/prod_mat_vec/main.c
@@ -1,5 +1,7 @@
 #include <stdio.h>
+#include <stdlib.h>
 #include <mpi.h>
+#include <time.h>
 
 /*
 Commands :
@@ -8,8 +10,9 @@ C:\MPICH2\bin\mpiexec.exe -localonly 10
 */
 
 /*
-*   The reference book says we should use all_gather and all_gatherv to make all the processor
-*   access the x vector. BUT, x isn't going to be modified in the process. Moreover
+*   The reference book says we should use all_gather and all_gatherv to make all the processors
+*   access the x vector.
+*   BUT, what fonction should we use to get the entire . Moreover
 *   the website http://mpitutorial.com say that MPI_Allgather should be used "only"
 *   if all the processes contains a part of the data and EACH ONE want the entire data
 *   dispatched through the processes.
@@ -21,23 +24,114 @@ C:\MPICH2\bin\mpiexec.exe -localonly 10
 *   Moreover, it is said that we should use allgatherv to get the final matrix but, if we consider
 *   this stackoverflow answer :
 *   http://stackoverflow.com/questions/15049190/difference-between-mpi-allgather-and-mpi-alltoall-functions#answer-34113431
-*   We see that using all gatherv will, more than duplicate the data through each processor.
+*   We see that using all gatherv will duplicate the data through each processor.
 *   Using gather seems more appropriated.
 */
 
+void printMatrix(int width, int height, float **matrix){
+    for(int i=0; i!=height; i++){
+        for(int j=0; j!=width; j++){
+            printf("%5.1f, ",matrix[i][j]);
+        }
+        printf("\n");
+    }
+}
+void printVector(int height, float *vector){
+    for(int i=0; i!=height; i++){
+        printf("%5.2f\n",vector[i]);
+    }
+}
+
+void initProb(int width, int height, float **matrix, float *vector, int rank){
+    srand(time(NULL)+rank);
+    for(int i=0; i!=height; i++){
+        for(int j=0; j!=width; j++){
+            matrix[i][j]=(float)(rand()%20);
+        }
+        vector[i]=(float)(rand()%10);
+    }
+}
+
+void prod_mat_vec(int width, int height, float * vector_res, float ** matrix, float * vector_tot){
+    for(int i=0; i!=height; i++){
+        vector_res[i]=0;
+        for(int j=0; j!=width; j++){
+            vector_res[i]+=matrix[i][j]*vector_tot[j];
+        }
+    }
+}
+
 int main (int argc, char *argv[]) {
-    int rank, size;
-    MPI_Status status;
+    int rank, size, size_prob, w_prob, h_prob, h_base;
+    float * vector;
+    float * vector_tot;
+    float * vector_res;
+    float * vector_res_tot;
+    float ** matrix=0;
 
-    int test=0;
+    MPI_Status status;
 
     MPI_Init (&argc, &argv); /* starts MPI */
 
     MPI_Comm_rank(MPI_COMM_WORLD, &rank); /* get current process id */
     MPI_Comm_size(MPI_COMM_WORLD, &size); /* get number of processes */
 
-    MPI_Send(&test,1,MPI_DOUBLE,0,10,MPI_COMM_WORLD);
-    MPI_Recv(&test,1,MPI_DOUBLE,0,10,MPI_COMM_WORLD,&status);
+
+    printf("proc %d :\n",rank);
+
+    size_prob=8;
+
+    h_base=(size_prob/size)+1; //
+    if(size_prob%size==0){
+        h_prob=size_prob/size;
+        h_base=h_prob;
+    }else{
+        if(rank!=size-1)
+            h_prob=(size_prob/size)+1;
+        else{
+            h_prob=size_prob%size;
+        }
+    }
+    w_prob=size_prob;
+    printf("height %d : %d\n",rank,h_prob);
+
+    vector=malloc(sizeof(float)*h_base);
+    vector_tot=malloc(sizeof(float)*size_prob);
+    vector_res=malloc(sizeof(float)*h_base);
+    vector_res_tot=malloc(sizeof(float)*size_prob);
+
+    matrix = (int **)malloc(w_prob * sizeof(float*));
+    for(int i=0;i<h_base;i++){
+        matrix[i]=malloc(sizeof(float)*w_prob);
+    }
+    initProb(w_prob,h_prob,matrix,vector,rank);
+
+    printMatrix(w_prob,h_prob,matrix);
+    printVector(h_prob,vector);
+
+    MPI_Allgather(vector,h_prob,MPI_FLOAT,vector_tot,h_base,MPI_FLOAT, MPI_COMM_WORLD);
+    printf("Vector total %d : \n",rank);
+    printVector(size_prob,vector_tot);
+
+    prod_mat_vec(w_prob,h_prob,vector_res,matrix,vector_tot);
+
+    printf("Vector res %d : \n",rank);
+    printVector(h_prob,vector_res);
+
+    MPI_Allgather(vector_res,h_prob,MPI_FLOAT,vector_res_tot,h_base,MPI_FLOAT, MPI_COMM_WORLD);
+
+    if(rank==0){
+        printf("prod_vec_matrice = \n");
+        printVector(size_prob,vector_res_tot);
+    }
+
+    /*MPI_Send(&test,1,MPI_DOUBLE,0,10,MPI_COMM_WORLD);
+    MPI_Recv(&test,1,MPI_DOUBLE,0,10,MPI_COMM_WORLD,&status);*/
+
+    free(vector);
+    for(int i=0;i<h_prob;i++){
+        free(matrix[i]);
+    }
 
     MPI_Finalize();
 }
diff --git a/prod_mat_vec/main.c.save-failed b/prod_mat_vec/main.c.save-failed
new file mode 100644
index 0000000..826a07f
--- /dev/null
+++ b/prod_mat_vec/main.c.save-failed
@@ -0,0 +1,43 @@
+#include <stdio.h>
+#include <mpi.h>
+
+/*
+Commands :
+cd 'B:\Mes Documents\progra\calcInt\'
+C:\MPICH2\bin\mpiexec.exe -localonly 10
+*/
+
+/*
+*   The reference book says we should use all_gather and all_gatherv to make all the processor
+*   access the x vector. BUT, x isn't going to be modified in the process. Moreover
+*   the website http://mpitutorial.com say that MPI_Allgather should be used "only"
+*   if all the processes contains a part of the data and EACH ONE want the entire data
+*   dispatched through the processes.
+*   This image :http://mpitutorial.com/tutorials/mpi-scatter-gather-and-allgather/allgather.png
+*   Show this point.
+*   More over according to the problematic given MPI_Scatter and MPI_Gather seems to be
+*   more usable in this specific context of a dense matrix vector product.
+*
+*   Moreover, it is said that we should use allgatherv to get the final matrix but, if we consider
+*   this stackoverflow answer :
+*   http://stackoverflow.com/questions/15049190/difference-between-mpi-allgather-and-mpi-alltoall-functions#answer-34113431
+*   We see that using all gatherv will duplicate the data through each processor.
+*   Using gather seems more appropriated.
+*/
+
+int main (int argc, char *argv[]) {
+    int rank, size;
+    MPI_Status status;
+
+    int test=0;
+
+    MPI_Init (&argc, &argv); /* starts MPI */
+
+    MPI_Comm_rank(MPI_COMM_WORLD, &rank); /* get current process id */
+    MPI_Comm_size(MPI_COMM_WORLD, &size); /* get number of processes */
+
+    MPI_Send(&test,1,MPI_DOUBLE,0,10,MPI_COMM_WORLD);
+    MPI_Recv(&test,1,MPI_DOUBLE,0,10,MPI_COMM_WORLD,&status);
+
+    MPI_Finalize();
+}
diff --git a/prod_mat_vec/obj/Debug/main.o b/prod_mat_vec/obj/Debug/main.o
new file mode 100644
index 0000000000000000000000000000000000000000..4cd9353604a54bfa8653c73455f2280b0073cb72
GIT binary patch
literal 6213
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
H>NWrXl5VH0

literal 0
HcmV?d00001

diff --git a/prod_mat_vec/prod_mat_vec.depend b/prod_mat_vec/prod_mat_vec.depend
new file mode 100644
index 0000000..7b8e971
--- /dev/null
+++ b/prod_mat_vec/prod_mat_vec.depend
@@ -0,0 +1,7 @@
+# depslib dependency file v1.0
+1488577259 source:b:\mes documents\progra\calcint\prod_mat_vec\main.c
+	<stdio.h>
+	<stdlib.h>
+	<mpi.h>
+	<time.h>
+
-- 
GitLab