Blame MpiApps/apps/config_hpl2

Packit 857059
#!/bin/bash
Packit 857059
# BEGIN_ICS_COPYRIGHT8 ****************************************
Packit 857059
# 
Packit 857059
# Copyright (c) 2015, Intel Corporation
Packit 857059
# 
Packit 857059
# Redistribution and use in source and binary forms, with or without
Packit 857059
# modification, are permitted provided that the following conditions are met:
Packit 857059
# 
Packit 857059
#     * Redistributions of source code must retain the above copyright notice,
Packit 857059
#       this list of conditions and the following disclaimer.
Packit 857059
#     * Redistributions in binary form must reproduce the above copyright
Packit 857059
#       notice, this list of conditions and the following disclaimer in the
Packit 857059
#       documentation and/or other materials provided with the distribution.
Packit 857059
#     * Neither the name of Intel Corporation nor the names of its contributors
Packit 857059
#       may be used to endorse or promote products derived from this software
Packit 857059
#       without specific prior written permission.
Packit 857059
# 
Packit 857059
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Packit 857059
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Packit 857059
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Packit 857059
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
Packit 857059
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Packit 857059
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Packit 857059
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Packit 857059
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Packit 857059
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Packit 857059
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Packit 857059
# 
Packit 857059
# END_ICS_COPYRIGHT8   ****************************************
Packit 857059
Packit 857059
# [ICS VERSION STRING: unknown]
Packit 857059
Packit 857059
# select an HPL.dat file and copy to all hosts
Packit 857059
#   MPI_HOSTS  - mpi_hosts file to use (default is $PWD/mpi_hosts)
Packit 857059
Packit 857059
MPI_HOSTS=${MPI_HOSTS:-$PWD/mpi_hosts}
Packit 857059
Packit 857059
if [ $(echo $MPI_HOSTS|cut -c1) != '/' ]
Packit 857059
then
Packit 857059
	MPI_HOSTS="$PWD/$MPI_HOSTS"
Packit 857059
fi
Packit 857059
Packit 857059
arch=ICS.`uname -s`.`./get_mpi_cc.sh`
Packit 857059
Packit 857059
TEMP_FILE="$(mktemp)"
Packit 857059
trap "rm -rf $TEMP_FILE; exit 1" SIGINT SIGHUP SIGTERM
Packit 857059
trap "rm -rf $TEMP_FILE" EXIT
Packit 857059
Packit 857059
Usage()
Packit 857059
{
Packit 857059
	echo " Usage: ./config_hpl2 [-l] config_name [problem_size]"
Packit 857059
	echo "     -l - only configure local file, default is to configure on all mpi_hosts"
Packit 857059
	echo " For example: ./config_hpl2 32t"
Packit 857059
	echo " either create hpl-config/HPL.dat-'config_name'"
Packit 857059
	echo " or select one of:"
Packit 857059
	cd hpl-config; ls HPL.dat-*[!~]
Packit 857059
	exit 2
Packit 857059
}
Packit 857059
Packit 857059
lopt=n
Packit 857059
while getopts l param
Packit 857059
do
Packit 857059
	case $param in
Packit 857059
	l)	lopt="y";;
Packit 857059
	*)	Usage;;
Packit 857059
	esac
Packit 857059
done
Packit 857059
shift $((OPTIND-1))
Packit 857059
Packit 857059
if [ -z "$1" ]
Packit 857059
then 
Packit 857059
	Usage
Packit 857059
else
Packit 857059
	config_name=$1
Packit 857059
fi
Packit 857059
if [ $lopt = n -a ! -f $MPI_HOSTS ]
Packit 857059
then
Packit 857059
	echo " Please create $MPI_HOSTS file with the list of "
Packit 857059
	echo " hosts in this cluster. One hostname per line."
Packit 857059
	echo " See mpi_hosts.sample file"
Packit 857059
	exit 1
Packit 857059
fi
Packit 857059
Packit 857059
if [ ! -d hpl-2.2/bin/$arch ]
Packit 857059
then
Packit 857059
	echo " Could not find hpl2 compiled for $arch."
Packit 857059
	echo " Please compile hpl2 using:"
Packit 857059
	echo " make XHPL2"
Packit 857059
	exit 1
Packit 857059
fi
Packit 857059
if [ ! -f hpl-config/HPL.dat-$config_name ]
Packit 857059
then
Packit 857059
	echo " HPL.dat file for $config_name is not available"
Packit 857059
	echo " either create hpl-config/HPL.dat-$config_name"
Packit 857059
	echo " or select one of:"
Packit 857059
	cd hpl-config; ls HPL.dat-*[!~]
Packit 857059
	exit 1
Packit 857059
fi
Packit 857059
Packit 857059
file=hpl-config/HPL.dat-$config_name
Packit 857059
if [ ! -z "$2" ]
Packit 857059
then
Packit 857059
	# change line 6 to requested problem size
Packit 857059
	sed -e "6s/^[0-9]*/$2/" < $file > $TEMP_FILE
Packit 857059
	if [ $lopt = n ]
Packit 857059
	then
Packit 857059
		opascpall -p -h "`sort -u $MPI_HOSTS`" $TEMP_FILE $PWD/hpl-2.2/bin/$arch/HPL.dat
Packit 857059
	else
Packit 857059
		# avoid any cp alias
Packit 857059
		/bin/cp -f $TEMP_FILE $PWD/hpl-2.2/bin/$arch/HPL.dat
Packit 857059
	fi
Packit 857059
else
Packit 857059
	if [ $lopt = n ]
Packit 857059
	then
Packit 857059
		opascpall -p -h "`sort -u $MPI_HOSTS`" $file $PWD/hpl-2.2/bin/$arch/HPL.dat
Packit 857059
	else
Packit 857059
		# avoid any cp alias
Packit 857059
		/bin/cp -f $file $PWD/hpl-2.2/bin/$arch/HPL.dat
Packit 857059
	fi
Packit 857059
fi