=====================================================================
project: Matrix v1.0
 author: Jean-Michel RICHER
  email: jean-michel.richer@univ-angers.fr
   date: February, 2016 
=====================================================================

This project deals with matrix implementation of sum and product
using C++ valarray class.



---------------------------------------------------------------------
1. Installation
---------------------------------------------------------------------

See the INSTALL file for installation with GNU g++ BLAS, GSL
or with Intel icpc and MKL (Math Kernel Library). 

---------------------------------------------------------------------
2. Results
---------------------------------------------------------------------

Here are some results for the product of square matrices.

 
Execution time in seconds on an Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz
with 4 cores
=======================================================================================
size            mul2   mul2   mul2   mul2    mul3  mul4  mul4  mul4  mul5  mul5   mul5
        mul1     2 T    3 T    4 T    8 T           2 T   3 T   4 T  BLAS  GSL    MKL 4T
1024   4.618   4.467  2.279  1.856  1.738   0.855                                  0.053
2047  18.782  10.752  7.736  6.128  6.817   
2048  78.804  39.901 34.440 33.783 34.462   8.264  4.432 3.120 2.518 8.591 8.719   0.392
2049  19.168
3071  70.125                                                               29.375 
3072 266.813 119.419                              12.625 8.906 6.649       29.888  1.301



Note 1: we can see that some dimensions (1024, 2048, 3072) are source of a problem 
due to cache access for implementation 1 which is the implementation given by the
mathematical formula. This is due to more cahe misses than cache hits (see PERFORMANCE
file).

Note 2: BLAS et GSL BLAS were not compiled with OpenMP.


=====================================================================
3. Tests
=====================================================================

run the script './test_matrix_product.sh' to generate some data that can
be visualized using gnuplot.

