Skip to content
Snippets Groups Projects
run-sparse-matrix-benchmark 27.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/usr/bin/env bash
    
    BASE="ftp://math.nist.gov/pub/MatrixMarket2/Harwell-Boeing/"
                    
    PWD=`pwd`
    IWD="$PWD"
    
    DEBUG="no"
    SPARSE_MATRIX_BENCHMARK="$IWD/sparse-matrix-benchmark"
    SPARSE_MATRIX_BENCHMARK_DBG="$IWD/.libs/sparse-matrix-benchmark-dbg"
    
    #SPARSE_MATRIX_BENCHMARK="$IWD/.libs/sparse-matrix-benchmark-dbg"
    
    STOP_TIME="1"
    
    source ../tnl-env-variables
    
    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"
    source $TNL_SOURCE_DIR/tests/matrix-market
    source $TNL_SOURCE_DIR/tests/florida-matrix-market
    
    export TNL_SPARSE_MATRIX_CHECK_CFG_DESC_FILE="$TNL_SOURCE_DIR/tests/tnl-sparse-matrix-check.cfg.desc"
    
    #MM_MATRICES=""
    #FLORIDA_MM_MATRICES=""
    
    #./tnl-sparse-matrix-check-dbg --input-file matrices/MatrixMarket2/misc/cylshell/s3dkq4m2.mtx
    #exit
    
    
    write_header()
    {
       echo "<html>" > $1
       echo "   <body>" >> $1
       echo "      <table border=1>" >> $1
       echo "          <tr>" >> $1
       echo "             <td rowspan=4 colspan=4 align=center>Matrix</td>" >> $1
       echo "             <td rowspan=4 align=center>CSR</td>" >> $1
       echo "             <td rowspan=4 colspan=2 align=center>Hybrid</td>" >> $1
    
       echo "             <td colspan=48 align=center>Row-Grouped CSR</td>" >> $1   
       echo "             <td colspan=48 align=center>Row-Grouped CSR with rows sorted decreasingly by the number of the nonzeros</td>" >> $1
       echo "             <td colspan=96 align=center>Adaptive Row-Grouped CSR</td>" >> $1   
    
       echo "          </tr>" >> $1
       
       echo "          <tr>" >> $1
    
       echo "             <td colspan=12>Group Size = 16</td>" >> $1       # RgCSR
       echo "             <td colspan=12>Group Size = 32</td>" >> $1
       echo "             <td colspan=12>Group Size = 64</td>" >> $1
       echo "             <td colspan=12>Group Size Variable</td>" >> $1    # RgCSR adaptive group size
       echo "             <td colspan=12>Group Size = 16</td>" >> $1       # RgCSR rows sorted decreasingly
       echo "             <td colspan=12>Group Size = 32</td>" >> $1
       echo "             <td colspan=12>Group Size = 64</td>" >> $1
       echo "             <td colspan=12>Group Size Variable</td>" >> $1      # RgCSR rows sorted decreasingly, adaptive group size
       echo "             <td rowspan=2 colspan=16>Chunk Size = 1</td>" >> $1          # Adaptive RgCSR 
       echo "             <td rowspan=2 colspan=16>Chunk Size = 2</td>" >> $1
       echo "             <td rowspan=2 colspan=16>Chunk Size = 4</td>" >> $1
       echo "             <td rowspan=2 colspan=16>Chunk Size = 8</td>" >> $1
       echo "             <td rowspan=2 colspan=16>Chunk Size = 16</td>" >> $1
       echo "             <td rowspan=2 colspan=16>Chunk Size = 32</td>" >> $1   
    
       echo "          </tr>" >> $1
       
       echo "          <tr>" >> $1
    
       echo "             <td rowspan=2 colspan=2></td>" >> $1                         # RgCSR format with the group size = 16
    
       echo "             <td rowspan=2 colspan=2>CPU</td>" >> $1
       echo "             <td colspan=8>GPU</td>" >> $1
    
       echo "             <td rowspan=2 colspan=2></td>" >> $1                         # RgCSR format with the group size = 32
    
       echo "             <td rowspan=2 colspan=2>CPU</td>" >> $1
       echo "             <td colspan=8>GPU</td>" >> $1   
    
       echo "             <td rowspan=2 colspan=2></td>" >> $1                         # RgCSR format with the group size = 64
    
       echo "             <td rowspan=2 colspan=2>CPU</td>" >> $1
    
       echo "             <td colspan=8>GPU</td>" >> $1
    
       echo "             <td rowspan=2 colspan=2></td>" >> $1                         # RgCSR format with the variable group size 
    
       echo "             <td rowspan=2 colspan=2>CPU</td>" >> $1
       echo "             <td colspan=8>GPU</td>" >> $1
    
       echo "             <td rowspan=2 colspan=2></td>" >> $1                         # RgCSR (sorted rows) format with the group size = 16
    
       echo "             <td rowspan=2 colspan=2>CPU</td>" >> $1
       echo "             <td colspan=8>GPU</td>" >> $1
    
       echo "             <td rowspan=2 colspan=2></td>" >> $1                         # RgCSR (sorted rows) format with the group size = 32
    
       echo "             <td rowspan=2 colspan=2>CPU</td>" >> $1
       echo "             <td colspan=8>GPU</td>" >> $1   
    
       echo "             <td rowspan=2 colspan=2></td>" >> $1                         # RgCSR (sorted rows) format with the group size = 64
    
       echo "             <td rowspan=2 colspan=2>CPU</td>" >> $1
    
       echo "             <td colspan=8>GPU</td>" >> $1
          
    
       echo "             <td rowspan=2 colspan=2></td>" >> $1                         # RgCSR (sorted rows) format with variable group size
    
       echo "             <td rowspan=2 colspan=2>CPU</td>" >> $1
       echo "             <td colspan=8>GPU</td>" >> $1
    
    #   echo "             <td colspan=16>GPU</td>" >> $1                     # Adaptive RgCSR format with the chunk size 1
    #   echo "             <td colspan=16>GPU</td>" >> $1                     # Adaptive RgCSR format with the chunk size 2
    #   echo "             <td colspan=16>GPU</td>" >> $1                     # Adaptive RgCSR format with the chunk size 4
    #   echo "             <td colspan=16>GPU</td>" >> $1                     # Adaptive RgCSR format with the chunk size 8
    #   echo "             <td colspan=16>GPU</td>" >> $1                     # Adaptive RgCSR format with the chunk size 16
    #   echo "             <td colspan=16>GPU</td>" >> $1                     # Adaptive RgCSR format with the chunk size 32
    
       echo "          </tr>" >> $1
       
       echo "          <tr>" >> $1
    
       echo "             <td colspan=2>CUDA Block Size = 32</td>" >> $1        # RgCSR format with the group size = 16
       echo "             <td colspan=2>CUDA Block Size = 64</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 128</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 256</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 32</td>" >> $1        # RgCSR format with the group size = 32
       echo "             <td colspan=2>CUDA Block Size = 64</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 128</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 256</td>" >> $1         
       echo "             <td colspan=2>CUDA Block Size = 32</td>" >> $1        # RgCSR format with the group size = 64
       echo "             <td colspan=2>CUDA Block Size = 64</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 128</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 256</td>" >> $1
       
    
       echo "             <td colspan=2>CUDA Block Size = 32</td>" >> $1        # RgCSR format with the group size cca 16
       echo "             <td colspan=2>CUDA Block Size = 64</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 128</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 256</td>" >> $1
       
       
    
       echo "             <td colspan=2>CUDA Block Size = 32</td>" >> $1        # RgCSR (sorted rows) format with the group size = 16
       echo "             <td colspan=2>CUDA Block Size = 64</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 128</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 256</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 32</td>" >> $1        # RgCSR (sorted rows) format with the group size = 32
       echo "             <td colspan=2>CUDA Block Size = 64</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 128</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 256</td>" >> $1         
       echo "             <td colspan=2>CUDA Block Size = 32</td>" >> $1        # RgCSR (sorted rows) format with the group size = 64
       echo "             <td colspan=2>CUDA Block Size = 64</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 128</td>" >> $1
    
       echo "             <td colspan=2>CUDA Block Size = 256</td>" >> $1
       
       echo "             <td colspan=2>CUDA Block Size = 32</td>" >> $1        # RgCSR (sorted rows) format with the group size >= 16
       echo "             <td colspan=2>CUDA Block Size = 64</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 128</td>" >> $1
       echo "             <td colspan=2>CUDA Block Size = 256</td>" >> $1
    
       echo "             <td colspan=4>CUDA Block Size = 32</td>" >> $1        # Adaptive RgCSR format with the chunk size = 1
       echo "             <td colspan=4>CUDA Block Size = 64</td>" >> $1
       echo "             <td colspan=4>CUDA Block Size = 128</td>" >> $1
       echo "             <td colspan=4>CUDA Block Size = 256</td>" >> $1
       echo "             <td colspan=4>CUDA Block Size = 32</td>" >> $1        # Adaptive RgCSR format with the chunk size = 2
       echo "             <td colspan=4>CUDA Block Size = 64</td>" >> $1
       echo "             <td colspan=4>CUDA Block Size = 128</td>" >> $1
       echo "             <td colspan=4>CUDA Block Size = 256</td>" >> $1         
       echo "             <td colspan=4>CUDA Block Size = 32</td>" >> $1        # Adaptive RgCSR format with the chunk size = 4
       echo "             <td colspan=4>CUDA Block Size = 64</td>" >> $1
       echo "             <td colspan=4>CUDA Block Size = 128</td>" >> $1
       echo "             <td colspan=4>CUDA Block Size = 256</td>" >> $1
       echo "             <td colspan=4>CUDA Block Size = 32</td>" >> $1        # Adaptive RgCSR format with the chunk size = 8
       echo "             <td colspan=4>CUDA Block Size = 64</td>" >> $1
       echo "             <td colspan=4>CUDA Block Size = 128</td>" >> $1
       echo "             <td colspan=4>CUDA Block Size = 256</td>" >> $1  
       echo "             <td colspan=4>CUDA Block Size = 32</td>" >> $1        # Adaptive RgCSR format with the chunk size = 16
       echo "             <td colspan=4>CUDA Block Size = 64</td>" >> $1
       echo "             <td colspan=4>CUDA Block Size = 128</td>" >> $1
       echo "             <td colspan=4>CUDA Block Size = 256</td>" >> $1  
       echo "             <td colspan=4>CUDA Block Size = 32</td>" >> $1        # Adaptive RgCSR format with the chunk size = 32
       echo "             <td colspan=4>CUDA Block Size = 64</td>" >> $1
       echo "             <td colspan=4>CUDA Block Size = 128</td>" >> $1
       echo "             <td colspan=4>CUDA Block Size = 256</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>NonZeros %</td>" >> $1
       echo "             <td>GFlops</td>" >> $1                    # CSR format on CPU
    
       echo "             <td>GFlops</td>" >> $1                    # Hybrid format Bell, Garland on GPU
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1                      # RgCSR format with the group size = 16
       echo "             <td>Artificial Zeros</td>" >> $1      
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1      
    
       echo "             <td>Info</td>" >> $1                      # RgCSR format with the group size = 32
       echo "             <td>Artificial Zeros</td>" >> $1
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1      
    
       echo "             <td>Info</td>" >> $1                      # RgCSR format with the group size = 64   
       echo "             <td>Artificial Zeros</td>" >> $1          
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       
    
       echo "             <td>Info</td>" >> $1                        # RgCSR format with the group size variable
       echo "             <td>Artificial Zeros</td>" >> $1
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1      
       
    
       echo "             <td>Info</td>" >> $1                        # RgCSR (sorted rows) format with the group size = 16
       echo "             <td>Artificial Zeros</td>" >> $1
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1      
    
       echo "             <td>Info</td>" >> $1                        # RgCSR (sorted rows) format with the group size = 32   
       echo "             <td>Artificial Zeros</td>" >> $1
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1      
    
       echo "             <td>Info</td>" >> $1                         # RgCSR (sorted rows) format with the group size = 64   
       echo "             <td>Artificial Zeros</td>" >> $1
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1                          # RgCSR (sorted rows) format with the group size variable
       echo "             <td>Artificial Zeros</td>" >> $1
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1      
    
       echo "             <td>Info</td>" >> $1                         # Adaptive RgCSR format with the chunk size = 1
       echo "             <td>Artificial Zeros</td>" >> $1
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1   
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1   
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1                         # Adaptive RgCSR format with the chunk size = 2   
       echo "             <td>Artificial Zeros</td>" >> $1
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1   
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1   
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1   
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1                        # Adaptive RgCSR format with the chunk size = 4   
       echo "             <td>Artificial Zeros</td>" >> $1
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1   
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1   
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1   
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1                        # Adaptive RgCSR format with the chunk size = 8   
       echo "             <td>Artificial Zeros</td>" >> $1
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1   
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1   
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1   
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1                        # Adaptive RgCSR format with the chunk size = 16   
       echo "             <td>Artificial Zeros</td>" >> $1
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1   
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1   
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1   
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1                        # Adaptive RgCSR format with the chunk size = 32   
       echo "             <td>Artificial Zeros</td>" >> $1
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1   
    
       echo "             <td>GFlops</td>" >> $1
       echo "             <td>Speed-up</td>" >> $1
    
       echo "             <td>Info</td>" >> $1
    
       echo "             <td>Artificial Zeros</td>" >> $1   
    
       echo "             <td>GFlops</td>" >> $1
    
       echo "             <td>Speed-up</td>" >> $1   
    
    }
    
    write_closing()
    {
       echo "      </table>" >> $1
       echo "   </body>" >> $1
       echo "</html>" >> $1
    }
    
    write_header sparse-matrix-benchmark-float.log.html
    write_header sparse-matrix-benchmark-double.log.html
    
    write_header sparse-matrix-benchmark-amd-float.log.html
    write_header sparse-matrix-benchmark-amd-double.log.html
    
    
    for link in $MM_MATRICES;
    do
       echo "###############################################################################################"
       matrix=matrices`echo $link | sed 's/ftp:\/\/math.nist.gov\/pub//'`
       unzipped_matrix=`echo $matrix | sed 's/.gz//'`
       if test ! -e $matrix;
       then
          echo "Matrix $matrix is missing !!! Run the script 'get-matrices' first."
          #echo "Matrix $matrix is missing !!! Run the script 'get-matrices' first." >> sparse-matrix-benchmark.log            
       else
          if test ! -e $unzipped_matrix.float.bin.bz2;
          then
             echo "Missing $unzipped_matrix.float.bin.bz2 !!! Run the script 'convert-matrices'."
             #echo "Missing $unzipped_matrix.float.bin.bz2 !!! Run the script 'convert-matrices'."  >> sparse-matrix-benchmark.log
          else
             gunzip -f $matrix
             echo "Checking with the matrix $unzipped_matrix in single precision ..."
             export CUDA_PROFILE_LOG=$unzipped_matrix.float.log
    
             if test x$DEBUG = xyes;
             then
                 rm -f .gdbinit
                 echo "file $SPARSE_MATRIX_BENCHMARK_DBG" > .gdbinit
                 echo "" >> .gdbinit
                 echo -n "run --input-file $unzipped_matrix.float.bin.bz2 --input-mtx-file $unzipped_matrix --log-file sparse-matrix-benchmark-float.log.html --stop-time $STOP_TIME --verbose 1" >> .gdbinit
                 gdb
             else
    
                $SPARSE_MATRIX_BENCHMARK --input-file $unzipped_matrix.float.bin.bz2 --input-mtx-file $unzipped_matrix --pdf-file $unzipped_matrix.pdf --log-file sparse-matrix-benchmark-float.log.html --stop-time $STOP_TIME --verbose 1
    
             perl $PROCESS_CUDA_PROFILE $unzipped_matrix.float.log sparse-matrix-profiling-float.log
             gzip $unzipped_matrix
          fi
          if test ! -e $unzipped_matrix.double.bin.bz2;
          then
             echo "Missing $unzipped_matrix.double.bin.bz2 !!! Run the script 'convert-matrices'."
             #echo "Missing $unzipped_matrix.double.bin.bz2 !!! Run the script 'convert-matrices'."  >> sparse-matrix-benchmark.log
          else
             gunzip -f $matrix
             echo "Checking with the matrix $unzipped_matrix in double precison ..."
             export CUDA_PROFILE_LOG=$unzipped_matrix.double.log 
    
             $SPARSE_MATRIX_BENCHMARK --input-file $unzipped_matrix.double.bin.bz2 --input-mtx-file $unzipped_matrix --pdf-file $unzipped_matrix.pdf --log-file sparse-matrix-benchmark-double.log.html --stop-time $STOP_TIME --verbose 1
    
          #######
          ## AMD ordering
          ###  
          if test ! -e $unzipped_matrix.amd.float.bin.bz2;
          then
             echo "Missing $unzipped_matrix.amd.float.bin.bz2 !!! Run the script 'convert-matrices'."
          else
             echo "Checking with the matrix $unzipped_matrix.amd in single precision ..."
             export CUDA_PROFILE_LOG=$unzipped_matrix.amd.float.log
    
             $SPARSE_MATRIX_BENCHMARK --input-file $unzipped_matrix.amd.float.bin.bz2 --input-mtx-file $unzipped_matrix.amd --pdf-file $unzipped_matrix.amd.pdf --log-file sparse-matrix-benchmark-amd-float.log.html --stop-time $STOP_TIME --verbose 1
    
          fi
          if test ! -e $unzipped_matrix.amd.double.bin.bz2;
          then
             echo "Missing $unzipped_matrix.amd.double.bin.bz2 !!! Run the script 'convert-matrices'."
          else
             echo "Checking with the matrix $unzipped_matrix.amd in double precison ..."
             export CUDA_PROFILE_LOG=$unzipped_matrix.amd.double.log 
    
             $SPARSE_MATRIX_BENCHMARK --input-file $unzipped_matrix.amd.double.bin.bz2 --input-mtx-file $unzipped_matrix.amd --pdf-file $unzipped_matrix.amd.pdf --log-file sparse-matrix-benchmark-amd-double.log.html --stop-time $STOP_TIME --verbose 1
    
          fi
              
       fi
    done
    
    for link in $FLORIDA_MM_MATRICES;
    do
       matrix=matrices`echo $link | sed 's/http:\/\/www.cise.ufl.edu\/research\/sparse//'`
       if test ! -e $matrix;
       then      
          echo "Matrix $matrix is missing !!! Run the script 'get-matrices' first."
          #echo "Matrix $matrix is missing !!! Run the script 'get-matrices' first." >> sparse-matrix-benchmark.log
       else
         DIRNAME=`dirname $matrix`
         FILENAME=`basename $matrix`
         cd $DIRNAME
         tar zxvf $FILENAME
         cd $IWD
         SUBDIRNAME=`echo $FILENAME | sed 's/.tar.gz//'`
         rm -f $DIRNAME/$SUBDIRNAME/*_b.mtx # these are usualy in array format
         for file in $DIRNAME/$SUBDIRNAME/*.mtx;
         do
             echo "###############################################################################################"
             if test ! -e $file.float.bin.bz2;
             then
                echo "Missing $file.float.bin.bz2 !!! Run the script 'convert-matrices'."
             else   
                echo "Checking with the matrix $file ..."
    
                $SPARSE_MATRIX_BENCHMARK --input-file $file.float.bin.bz2 --input-mtx-file $file --pdf-file $file.pdf --log-file sparse-matrix-benchmark-float.log.html --stop-time $STOP_TIME --verbose 1                        
    
             fi
             if test ! -e $file.double.bin.bz2;
             then
                echo "Missing $file.double.bin.bz2 !!! Run the script 'convert-matrices'."
             else   
                echo "Checking with the matrix $file ..."
    
                $SPARSE_MATRIX_BENCHMARK --input-file $file.double.bin.bz2 --input-mtx-file $file --pdf-file $file.pdf --log-file sparse-matrix-benchmark-double.log.html --stop-time $STOP_TIME --verbose 1                        
    
             #######
             ## AMD ordering
             ###  
             if test ! -e $file.amd.float.bin.bz2;
             then
                echo "Missing $file.amd.float.bin.bz2 !!! Run the script 'convert-matrices'."
             else   
                echo "Checking with the matrix $file.amd ..."
    
                $SPARSE_MATRIX_BENCHMARK --input-file $file.amd.float.bin.bz2 --input-mtx-file $file.amd --pdf-file $file.amd.pdf --log-file sparse-matrix-benchmark-amd-float.log.html --stop-time $STOP_TIME --verbose 1                        
    
             fi
             if test ! -e $file.amd.double.bin.bz2;
             then
                echo "Missing $file.amd.double.bin.bz2 !!! Run the script 'convert-matrices'."
             else   
                echo "Checking with the matrix $file ..."
    
                $SPARSE_MATRIX_BENCHMARK --input-file $file.amd.double.bin.bz2 --input-mtx-file $file.amd --pdf-file $file.amd.pdf --log-file sparse-matrix-benchmark-amd-double.log.html --stop-time $STOP_TIME --verbose 1                        
    
       
       write_closing sparse-matrix-benchmark-float.log.html.html
       write_closing sparse-matrix-benchmark-double.log.html.html