Solid cleanup, 2
[foam-extend-3.0.git] / bin / foamGetSystemInfo
blobe41ff8ee022c6f0ca1454086589b4b588361472b
1 #!/bin/bash
2 #------------------------------------------------------------------------------
3 # ========= |
4 # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 # \\ / O peration |
6 # \\ / A nd | Copyright held by original author
7 # \\/ M anipulation |
8 #------------------------------------------------------------------------------
9 # License
10 # This file is part of OpenFOAM.
12 # OpenFOAM is free software; you can redistribute it and/or modify it
13 # under the terms of the GNU General Public License as published by the
14 # Free Software Foundation; either version 2 of the License, or (at your
15 # option) any later version.
17 # OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
18 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
20 # for more details.
22 # You should have received a copy of the GNU General Public License
23 # along with OpenFOAM; if not, write to the Free Software Foundation,
24 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 # Script
27 # foamGetSystemInfo
29 # Description
30 # return system information about running host/system
32 # Author:
33 # Martin Beaudoin, Hydro-Quebec, (2013)
35 #------------------------------------------------------------------------------
36 usage()
38 while [ "$#" -ge 1 ]; do echo "$1"; shift; done
39 cat<<USAGE
41 usage: ${0##*/} [OPTION]
42 options:
43 -nbrCores return the number of cores present
44 -osInfo [default] return operating system information
46 * return system information about the running host/system.
48 USAGE
49 exit 1
52 # Basic operating system information
53 getOperatingSystemInfo()
55 echo `uname -a`
58 # Number of cores
59 getNbrCores()
61 # Minimal number of cores. Can be as low as 1 on virtual machines
62 nbrCores=1
64 # First choice above all: using lstopo from the hwloc package
65 if command -v lstopo >/dev/null; then
66 nbrCores=`lstopo --of console | grep -c Core`
67 else
68 # Using some architecture specific heuristics
69 case `uname -s` in
70 Linux)
71 # Warning: this will be wrong if Hyperthreading is enable
72 nbrCores=`grep -c processor /proc/cpuinfo`
74 Darwin)
75 nbrCores=`sysctl -n hw.physicalcpu`
77 esac
79 echo $nbrCores
82 # If no options present, return basic information on operating system
83 if [ "$#" -eq 0 ]
84 then
85 getOperatingSystemInfo
86 exit
89 # parse options
90 while [ "$#" -gt 0 ]
92 case "$1" in
93 -h | -help)
94 usage
96 -osInfo)
97 getOperatingSystemInfo
98 shift
100 -nbrCores)
101 getNbrCores
102 shift
105 usage "unknown option/argument: '$*'"
107 esac
108 done
111 #------------------------------------------------------------------------------