110 lines
2.8 KiB
Bash
Executable file
110 lines
2.8 KiB
Bash
Executable file
#!/bin/bash
|
|
#------------------------------------------------------------------------------
|
|
# ========= |
|
|
# \\ / F ield | foam-extend: Open Source CFD
|
|
# \\ / O peration |
|
|
# \\ / A nd | For copyright notice see file Copyright
|
|
# \\/ M anipulation |
|
|
#------------------------------------------------------------------------------
|
|
# License
|
|
# This file is part of foam-extend.
|
|
#
|
|
# foam-extend is free software: you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License as published by the
|
|
# Free Software Foundation, either version 3 of the License, or (at your
|
|
# option) any later version.
|
|
#
|
|
# foam-extend 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 foam-extend. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
# 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
|
|
nbrCores=`lstopo --of console | grep -c Core`
|
|
else
|
|
# Using some architecture specific heuristics
|
|
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
|
|
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
|
|
|
|
|
|
#------------------------------------------------------------------------------
|