#!/bin/bash
export SCRIPT=`basename $0 | sed -e 's/\./\\\./'`
export SCRIPTDIR=`echo $0 | sed -e "s/$SCRIPT//"`
cd $SCRIPTDIR/../configs || exit

# bonnie
for FILE in `ls config-io-bonnie*-async`; do
	FSYNC_FILE=`echo $FILE | sed -e 's/-async$/-fsync/'`
	sed -e 's/FSYNC=no/FSYNC=yes/'		\
	    -e 's/asynchronous/synchronous/'	\
	    $FILE > $FSYNC_FILE
done

# KVM start
cp config-workload-kvmstart-memhog config-workload-kvmstart-deployonly
sed -i -e 's/KVMSTART_MIN_MEMORY=.*/KVMSTART_MIN_MEMORY=\$((KVMSTART_MAX_MEMORY+1))/' config-workload-kvmstart-deployonly

cp config-workload-kvmstart-memhog config-workload-kvmstart-memhog-frag-singlefile
cat >> config-workload-kvmstart-memhog-frag-singlefile <<EOF
export KVMSTART_PRETEST=fragment
export KVMSTART_PRETEST_METHOD="single-file"
export KVMSTART_PRETEST_PREPARE_ARGS="--filesize \$KVMSTART_MAX_MEMORY"
export KVMSTART_PRETEST_RUN_ARGS=
export KVMSTART_PRETEST_CLEANUP_ARGS=
EOF
cp config-workload-kvmstart-memhog-frag-singlefile config-workload-kvmstart-memhog-frag-singlefile-nothp
cat >> config-workload-kvmstart-memhog-frag-singlefile-nothp <<EOF
echo never > /sys/kernel/mm/transparent_hugepage/enabled
EOF

# NAS
for TYPE in omp mpi; do
	sed -e 's/NAS_MAX_CPUS=.*/NAS_MAX_CPUS=$((NUMCPUS\/2))/' config-hpc-nas-c-class-$TYPE-full > config-hpc-nas-c-class-$TYPE-half
	sed -e 's/NAS_MAX_CPUS=.*/NAS_MAX_CPUS=$((NUMCPUS\/3))/' config-hpc-nas-c-class-$TYPE-full > config-hpc-nas-c-class-$TYPE-third
done
for CONFIG in `ls config-hpc-nas-c-class-*`; do
	# D class configurations
	DCONFIG=`echo $CONFIG | sed -e 's/nas-c-class/nas-d-class/'`
	sed	-e 's/NAS_CLASS=.*/NAS_CLASS=D/'		\
		-e 's/NAS_ITERATIONS=.*/NAS_ITERATIONS=3/'	\
		-e 's/ nas-...-ft//'				\
		-e 's/ nas-omp-cg/ nas-omp-cg nas-omp-dc/'	\
		$CONFIG > $DCONFIG

	# D class with binding configurations
	BDCONFIG=`echo $DCONFIG | sed -e 's/class-mpi/class-mpi-bind/' -e 's/class-omp/class-omp-bind/'`
	cp $DCONFIG $BDCONFIG
	echo "export NAS_BIND=yes" >> $BDCONFIG
done
