Adding new command: foamGetSystemInfo
This commit is contained in:
parent
7c521ed7e6
commit
f51ca1458c
1 changed files with 111 additions and 0 deletions
111
bin/foamGetSystemInfo
Executable file
111
bin/foamGetSystemInfo
Executable file
|
@ -0,0 +1,111 @@
|
|||
#!/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
|
||||
# Free Software Foundation; either version 2 of the License, or (at your
|
||||
# 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
|
||||
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
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
Reference in a new issue