2013-07-07 17:00:00 +00:00
|
|
|
#!/bin/bash
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
# ========= |
|
|
|
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
|
|
# \\ / O peration |
|
|
|
|
# \\ / A nd | Copyright held by original author
|
|
|
|
# \\/ M anipulation |
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
# License
|
|
|
|
# This file is part of OpenFOAM.
|
|
|
|
#
|
|
|
|
# OpenFOAM is free software; you can redistribute it and/or modify it
|
|
|
|
# under the terms of the GNU General Public License as published by the
|
2014-04-03 14:54:00 +00:00
|
|
|
# Free Software Foundation; either version 3 of the License, or (at your
|
2013-07-07 17:00:00 +00:00
|
|
|
# option) any later version.
|
|
|
|
#
|
|
|
|
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
|
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
|
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
|
|
# for more details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
|
|
# along with OpenFOAM; if not, write to the Free Software Foundation,
|
|
|
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
#
|
|
|
|
# Script
|
|
|
|
# foamGetSystemInfo
|
|
|
|
#
|
|
|
|
# Description
|
|
|
|
# return system information about running host/system
|
|
|
|
#
|
|
|
|
# Author:
|
|
|
|
# Martin Beaudoin, Hydro-Quebec, (2013)
|
|
|
|
#
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
usage()
|
|
|
|
{
|
|
|
|
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
|
|
|
cat<<USAGE
|
|
|
|
|
|
|
|
usage: ${0##*/} [OPTION]
|
|
|
|
options:
|
|
|
|
-nbrCores return the number of cores present
|
|
|
|
-osInfo [default] return operating system information
|
|
|
|
|
|
|
|
* return system information about the running host/system.
|
|
|
|
|
|
|
|
USAGE
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
|
|
|
|
# Basic operating system information
|
|
|
|
getOperatingSystemInfo()
|
|
|
|
{
|
|
|
|
echo `uname -a`
|
|
|
|
}
|
|
|
|
|
|
|
|
# Number of cores
|
|
|
|
getNbrCores()
|
|
|
|
{
|
|
|
|
# Minimal number of cores. Can be as low as 1 on virtual machines
|
|
|
|
nbrCores=1
|
|
|
|
|
|
|
|
# First choice above all: using lstopo from the hwloc package
|
|
|
|
if command -v lstopo >/dev/null; then
|
2013-07-18 01:43:15 +00:00
|
|
|
nbrCores=`lstopo --of console | grep -c Core`
|
2013-07-07 17:00:00 +00:00
|
|
|
else
|
|
|
|
# Using some architecture specific heuristics
|
2013-07-18 01:43:15 +00:00
|
|
|
case `uname -s` in
|
|
|
|
Linux)
|
|
|
|
# Warning: this will be wrong if Hyperthreading is enable
|
|
|
|
nbrCores=`grep -c processor /proc/cpuinfo`
|
|
|
|
;;
|
|
|
|
Darwin)
|
|
|
|
nbrCores=`sysctl -n hw.physicalcpu`
|
|
|
|
;;
|
|
|
|
esac
|
2013-07-07 17:00:00 +00:00
|
|
|
fi
|
|
|
|
echo $nbrCores
|
|
|
|
}
|
|
|
|
|
|
|
|
# If no options present, return basic information on operating system
|
|
|
|
if [ "$#" -eq 0 ]
|
|
|
|
then
|
|
|
|
getOperatingSystemInfo
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
|
|
|
|
# parse options
|
|
|
|
while [ "$#" -gt 0 ]
|
|
|
|
do
|
|
|
|
case "$1" in
|
|
|
|
-h | -help)
|
|
|
|
usage
|
|
|
|
;;
|
|
|
|
-osInfo)
|
|
|
|
getOperatingSystemInfo
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
-nbrCores)
|
|
|
|
getNbrCores
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
usage "unknown option/argument: '$*'"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
#------------------------------------------------------------------------------
|