#!/usr/bin/env bash
                
DEBUG="no"
STOP_TIME="1"
export CUDA_PROFILE=0

PWD=`pwd`
IWD="$PWD"
BASE="ftp://math.nist.gov/pub/MatrixMarket2/Harwell-Boeing/"
BENCHMARK="tnl-benchmark-spmv"
BENCHMARK_DBG="tnl-benchmark-spmv-dbg"

export CUDA_PROFILE_CONFIG="$IWD/cuda-profiler.conf"
PROCESS_CUDA_PROFILE="$IWD/process-cuda-profile.pl"
#source matrix-market
source florida-matrix-market

# !!!Matrices in MatrixMarket2 don't load properly, formatting issues with every file. MatrixReader fails. 
#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
#      gunzip -c ${matrix} > ${unzipped_matrix}      
#      echo "Benchmarking with the matrix $unzipped_matrix ..."
#      export CUDA_PROFILE_LOG=$unzipped_matrix.float.log
#      if test x$DEBUG = xyes;
#      then
#         gdb --args ${BENCHMARK_DBG} --input-file $unzipped_matrix --log-file sparse-matrix-benchmark.log --verbose 1
#      else
#         $BENCHMARK --input-file $unzipped_matrix --log-file sparse-matrix-benchmark.log --verbose 1
#      fi
#      #perl $PROCESS_CUDA_PROFILE $unzipped_matrix.float.log sparse-matrix-profiling-float.log          
#   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
     if [ ! -d "log-files" ];
	 then
	     mkdir log-files
	 fi
     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 "======================================================================================================"
         echo "Benchmarking with the matrix $file ..."
	 mtx_file_name=`basename $file`
	 mtx_file_name=${mtx_file_name%.mtx}	 
         if test x$DEBUG = xyes;
         then
            gdb --args $BENCHMARK --input-file $file --log-file log-files/sparse-matrix-benchmark.log --output-mode append --verbose 1
         else
            $BENCHMARK --input-file $file --log-file log-files/sparse-matrix-benchmark.log --output-mode append --verbose 1
         fi
     done
   fi
done

