blob: 691b8eb12343da49f6610139cf92548131a0a1f2 [file] [log] [blame]
#!/bin/sh
#
# Copyright (c) 2003-2004 Silicon Graphics, Inc. All Rights Reserved.
#
help() {
cat <<END
Measure scaling of multiple cpus readin the same set of files.
(NASA testcase).
Usage: $0 [-b <bytes>] [-f <files>] [-s] [-B] [-v] cpus ...
or
$0 -i [-b <bytes>] [-f <files>]
-b file size in bytes
-f number of files
-s keep processes synchronized when reading files
-B use bcfree to free buffer cache pages before each run
END
exit 1
}
err () {
echo "ERROR - $*"
exit 1
}
BYTES=8192
FILES=10
SYNC=""
VERBOSE=""
STRIDED=""
BCFREE=0
INIT=0
OPTS="f:b:vsiSBH"
while getopts "$OPTS" c ; do
case $c in
H) help;;
f) FILES=${OPTARG};;
b) BYTES=${OPTARG};;
i) INIT=1;;
B) BCFREE=1;;
S) STRIDED="-S";;
s) SYNC="-s";;
v) VERBOSE="-v";;
\?) help;;
esac
done
shift `expr $OPTIND - 1`
if [ $INIT -gt 0 ] ; then
echo "Initializing $BYTES bytes, $FILES files"
./scaleread $VERBOSE -i -b $BYTES -f $FILES
sync
else
[ $# -gt 0 ] || help
echo "Testing $BYTES bytes, $FILES files"
for CPUS in $* ; do
[ $BCFREE -eq 0 ] || bcfree -a
/usr/bin/time -f "$CPUS: %e wall, %S sys, %U user" ./scaleread \
$SYNC $STRIDED $VERBOSE -b $BYTES -f $FILES -c $CPUS
done
fi