Merge commit 'b5be6201e00421a59e574a07b3d28cde5defff84'
[foam-extend-4.0.git] / bin / foamGetSystemInfo
blob78a0777cc09235b6f25580a246e5ea0a2a324add
1 #!/bin/bash
2 #------------------------------------------------------------------------------
3 # ========= |
4 # \\ / F ield | foam-extend: Open Source CFD
5 # \\ / O peration | Version: 4.0
6 # \\ / A nd | Web: http://www.foam-extend.org
7 # \\/ M anipulation | For copyright notice see file Copyright
8 #------------------------------------------------------------------------------
9 # License
10 # This file is part of foam-extend.
12 # foam-extend 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 3 of the License, or (at your
15 # option) any later version.
17 # foam-extend is distributed in the hope that it will be useful, but
18 # WITHOUT ANY WARRANTY; without even the implied warranty of
19 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 # General Public License for more details.
22 # You should have received a copy of the GNU General Public License
23 # along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
25 # Script
26 # foamGetSystemInfo
28 # Description
29 # return system information about running host/system
31 # Author:
32 # Martin Beaudoin, Hydro-Quebec, (2013)
34 #------------------------------------------------------------------------------
35 usage()
37 while [ "$#" -ge 1 ]; do echo "$1"; shift; done
38 cat<<USAGE
40 usage: ${0##*/} [OPTION]
41 options:
42 -nbrCores return the number of cores present
43 -osInfo [default] return operating system information
45 * return system information about the running host/system.
47 USAGE
48 exit 1
51 # Basic operating system information
52 getOperatingSystemInfo()
54 echo `uname -a`
57 # Number of cores
58 getNbrCores()
60 # Minimal number of cores. Can be as low as 1 on virtual machines
61 nbrCores=1
63 # First choice above all: using lstopo from the hwloc package
64 if command -v lstopo >/dev/null; then
65 nbrCores=`lstopo --of console | grep -c Core`
66 else
67 # Using some architecture specific heuristics
68 case `uname -s` in
69 Linux)
70 # Warning: this will be wrong if Hyperthreading is enable
71 nbrCores=`grep -c processor /proc/cpuinfo`
73 Darwin)
74 nbrCores=`sysctl -n hw.physicalcpu`
76 esac
78 echo $nbrCores
81 # If no options present, return basic information on operating system
82 if [ "$#" -eq 0 ]
83 then
84 getOperatingSystemInfo
85 exit
88 # parse options
89 while [ "$#" -gt 0 ]
91 case "$1" in
92 -h | -help)
93 usage
95 -osInfo)
96 getOperatingSystemInfo
97 shift
99 -nbrCores)
100 getNbrCores
101 shift
104 usage "unknown option/argument: '$*'"
106 esac
107 done
110 #------------------------------------------------------------------------------