mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-11-27 07:30:33 +08:00
95 lines
2.2 KiB
Bash
Executable File
95 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# This shell runs a bunch of benchmarks on some specific files
|
|
# available at Unidata. If you want to run this shell, you need these
|
|
# data files.
|
|
|
|
# This script gets and benchmarks against some AR4 data.
|
|
|
|
# $Id: run_bm_ar4.sh,v 1.4 2010/01/11 19:27:11 ed Exp $
|
|
|
|
set -e
|
|
echo ""
|
|
#file_list="pr_A1.20C3M_8.CCSM.atmm.1870-01_cat_1999-12.nc tauu_A1.20C3M_8.CCSM.atmm.1870-01_cat_1999-12.nc thetao_O1.SRESA1B_2.CCSM.ocnm.2000-01_cat_2099-12.nc usi_O1.20C3M_8.CCSM.icem.1870-01_cat_1999-12.nc"
|
|
#file_list="pr_A1.20C3M_8.CCSM.atmm.1870-01_cat_1999-12.nc tauu_A1.20C3M_8.CCSM.atmm.1870-01_cat_1999-12.nc usi_O1.20C3M_8.CCSM.icem.1870-01_cat_1999-12.nc"
|
|
file_list="pr_A1.20C3M_8.CCSM.atmm.1870-01_cat_1999-12.nc"
|
|
echo " *** Getting sample AR4 files $file_list"
|
|
|
|
# Get the files.
|
|
for f1 in $file_list
|
|
do
|
|
if ! test -f $f1; then
|
|
wget ftp://ftp.unidata.ucar.edu/pub/netcdf/sample_data/ar4/$f1.gz
|
|
gunzip $f1.gz
|
|
fi
|
|
done
|
|
|
|
echo "SUCCESS!!!"
|
|
|
|
out='run_bm_ar4_pr_out.csv'
|
|
rm -rf $out
|
|
echo " *** Benchmarking pr_A1 file with various chunksizes (output to ${out})..."
|
|
|
|
# Create netCDF-4 versions of the file, with different chunksizes.
|
|
h=-h
|
|
s=0
|
|
pr_ar4_sample="pr_A1.20C3M_8.CCSM.atmm.1870-01_cat_1999-12.nc"
|
|
|
|
file_num=0
|
|
for d in -1
|
|
do
|
|
for c0 in 4 8 16 32 64
|
|
do
|
|
for c1 in 64
|
|
do
|
|
for c2 in 128
|
|
do
|
|
if test $d == -1; then
|
|
file_out="pr_A1_${c0}_${c1}_${c2}.nc"
|
|
else
|
|
file_out="pr_A1_z${d}_${c0}_${c1}_${c2}.nc"
|
|
fi
|
|
out_files="$out_files $file_out"
|
|
|
|
# If the output file does not yet exist, create it.
|
|
if test -f $file_out; then
|
|
echo "found existing $file_out"
|
|
else
|
|
cmd="./bm_file $h -f 3 -c 6:${d}:${s}:${c0}:${c1}:${c2} -o ${file_out} ${pr_ar4_sample}"
|
|
echo "cmd=$cmd"
|
|
bash ./clear_cache.sh
|
|
if ! ($cmd >> $out); then
|
|
exit 1;
|
|
fi
|
|
fi
|
|
|
|
# Turn off header next time around.
|
|
h=
|
|
done
|
|
done
|
|
done
|
|
done
|
|
|
|
echo $out_files
|
|
|
|
# Do the horizonatal runs.
|
|
bash ./clear_cache.sh
|
|
./tst_ar4 -h $pr_ar4_sample
|
|
for f1 in $out_files
|
|
do
|
|
bash ./clear_cache.sh
|
|
./tst_ar4 ${f1}
|
|
done
|
|
|
|
# Do the timeseries runs.
|
|
bash ./clear_cache.sh
|
|
./tst_ar4 -t -h $pr_ar4_sample
|
|
for f1 in $out_files
|
|
do
|
|
bash ./clear_cache.sh
|
|
./tst_ar4 -t ${f1}
|
|
done
|
|
|
|
echo "SUCCESS!!!"
|
|
exit 0
|