diff --git a/tests/benchmarks/share/run-matrix-solvers-benchmark b/tests/benchmarks/share/run-matrix-solvers-benchmark
index e72e1f07681acefd255aa59120afb270f563b109..d734ee125036d08621abc3b96e254a5c494fc3cb 100755
--- a/tests/benchmarks/share/run-matrix-solvers-benchmark
+++ b/tests/benchmarks/share/run-matrix-solvers-benchmark
@@ -5,10 +5,13 @@ BASE="ftp://math.nist.gov/pub/MatrixMarket2/Harwell-Boeing/"
 MATRIX_SOLVERS_BENCHMARK="tnl-matrix-solvers-benchmark-dbg"
 STOP_TIME="1"
 
-SOLVERS="gmres sor"
+SOLVERS="sor cg bicgstab gmres"
+#SOLVERS="cg"
 SOR_OMEGAS="0.4 0.8 1.2 1.6 2.0"
 GMRES_RESTARTINGS="8 16 32 64 128 256"
 
+LOG_FILE="matrix-solvers-benchmark.html"
+
 export CUDA_PROFILE=0
 export CUDA_PROFILE_CONFIG="$TNL_SOURCE_DIR/tests/cuda-profiler.conf"
 PROCESS_CUDA_PROFILE="$TNL_SOURCE_DIR/tests/process-cuda-profile.pl"
@@ -24,11 +27,36 @@ export TNL_SPARSE_MATRIX_CHECK_CFG_DESC_FILE="$TNL_SOURCE_DIR/tests/tnl-sparse-m
 benchmark_matrix()
 # $1 input file
 # $2 input mtx file
-# $3 verbose
+# $3 complete log file
+# $4 verbose
 {
+   echo "          <tr>" >> $3
+   echo "             <td>$2</td>" >> $3
+   $MATRIX_SOLVERS_BENCHMARK --input-file $1 \
+                             --input-mtx-file $2 \
+                             --solver-name none\
+                             --matrix-stats-file matrix-stats.html \
+                             --verbose $4
+   cat matrix-stats.html >> $3
    for solver in $SOLVERS;
    do     
       echo "Testing with $solver solver." 
+      if [ x$solver == xcg ] || [ x$solver == xbicgstab ];
+      then
+         logfile="$2.results.$solver.log"
+         if test ! -e $logfile;
+         then
+            $MATRIX_SOLVERS_BENCHMARK --input-file $1 \
+                                      --input-mtx-file $2 \
+                                      --solver-name $solver \
+                                      --log-file $logfile \
+                                      --verbose $4
+            echo ""
+         else
+            echo "Test has already passed."
+         fi
+         cat $logfile >> $3
+      fi
       if test x$solver == xsor;
       then
          for omega in $SOR_OMEGAS;
@@ -42,11 +70,12 @@ benchmark_matrix()
                                          --solver-name $solver \
                                          --sor-omega $omega \
                                          --log-file $logfile \
-                                         --verbose $3
+                                         --verbose $4
                echo ""
             else
                echo "Test has already passed."
             fi
+            cat $logfile >> $3
          done
       fi
       if test x$solver == xgmres;
@@ -62,14 +91,16 @@ benchmark_matrix()
                                          --solver-name $solver \
                                          --gmres-restarting $gmres_restarting \
                                          --log-file $logfile \
-                                         --verbose $3
+                                         --verbose $4
                echo ""
             else
                echo "Test has already passed."
             fi
+            cat $logfile >> $3
          done
       fi
    done
+   echo "          </tr>" >> $3
 }
 
 write_log_header()
@@ -79,20 +110,24 @@ write_log_header()
    echo "   <body>" >> $1
    echo "      <table border=1>" >> $1
    echo "          <tr>" >> $1
-   echo "             <td rowspan=4 colspan=3 align=center>Matrix</td>" >> $1
-   echo "             <td rowspan=4 colspan=15 align=center>SOR</td>" >> $1
-   echo "             <td rowspan=4 colspan=18 align=center>GMRES</td>" >> $1
+   echo "             <td rowspan=1 colspan=3 align=center>Matrix</td>" >> $1
+   echo "             <td rowspan=1 colspan=15 align=center>SOR</td>" >> $1
+   echo "             <td rowspan=2 colspan=3 align=center>CG</td>" >> $1
+   echo "             <td rowspan=2 colspan=3 align=center>BICGStab</td>" >> $1
+   echo "             <td rowspan=1 colspan=18 align=center>GMRES</td>" >> $1
    echo "          </tr>" >> $1
          
    echo "          <tr>" >> $1
-   echo "             <td>Name</td>" >> $1                      # Matrix description
-   echo "             <td>Size</td>" >> $1
-   echo "             <td>NonZeros No.</td>" >> $1
+   echo "             <td rowspan=2>Name</td>" >> $1                      # Matrix description
+   echo "             <td rowspan=2>Size</td>" >> $1
+   echo "             <td rowspan=2>NonZeros No.</td>" >> $1
    echo "             <td colspan=3>0.4</td>" >> $1                      # SOR Omegas
    echo "             <td colspan=3>0.8</td>" >> $1                      # SOR Omegas
    echo "             <td colspan=3>1.2</td>" >> $1                      # SOR Omegas
    echo "             <td colspan=3>1.6</td>" >> $1                      # SOR Omegas
    echo "             <td colspan=3>2.0</td>" >> $1                      # SOR Omegas
+#   echo "             <td colspan=3></td>" >> $1                         # CG
+#   echo "             <td colspan=3></td>" >> $1                         # BICGStab
    echo "             <td colspan=3>8</td>" >> $1                        # GMRES restartings
    echo "             <td colspan=3>16</td>" >> $1                       # GMRES restartings
    echo "             <td colspan=3>32</td>" >> $1                       # GMRES restartings
@@ -117,6 +152,12 @@ write_log_header()
    echo "             <td>Residue</td>" >> $1                           # SOR Results omega = 2.0
    echo "             <td>Iterations</td>" >> $1
    echo "             <td>CPU</td>" >> $1
+   echo "             <td>Residue</td>" >> $1                           # CG
+   echo "             <td>Iterations</td>" >> $1
+   echo "             <td>CPU</td>" >> $1
+   echo "             <td>Residue</td>" >> $1                           # BICGStab
+   echo "             <td>Iterations</td>" >> $1
+   echo "             <td>CPU</td>" >> $1
    echo "             <td>Residue</td>" >> $1                           # GMRES Results restarting 8
    echo "             <td>Iterations</td>" >> $1
    echo "             <td>CPU</td>" >> $1
@@ -146,7 +187,7 @@ close_log()
    echo "</html>" >> $1
 }
 
-write_log_header matrix-solvers-benchmark.log
+write_log_header $LOG_FILE
 
 for link in $MM_MATRICES;
 do
@@ -166,7 +207,7 @@ do
          gunzip -f $matrix
          echo "Checking with the matrix $unzipped_matrix in double precison ..."
          export CUDA_PROFILE_LOG=$unzipped_matrix.double.log 
-         benchmark_matrix $unzipped_matrix.double.bin.bz2 $unzipped_matrix 1
+         benchmark_matrix $unzipped_matrix.double.bin.bz2 $unzipped_matrix $LOG_FILE 1
          gzip $unzipped_matrix
       fi          
    fi
@@ -195,7 +236,7 @@ do
             echo "Missing $file.double.bin.bz2 !!! Run the script 'convert-matrices'."
          else   
             echo "Checking with the matrix $file ..."
-            benchmark_matrix $file.double.bin.bz2 $file 1                        
+            benchmark_matrix $file.double.bin.bz2 $file $LOG_FILE 1                        
          fi                           
          rm $file         
       done