0

Is there a way to use the unix command line to get the name (or number) of the core that is generating or processing the work?

The purpose is check that a parallel system is actually using all cores and so i want it to return the core name as well as the ip address...

i know the IP address is

ifconfig

I jut need one for cores

This is for both OS X and Linux systems

4

1 に答える 1

1

sysctlMacOSX および/proc/cpuinfoLinuxで使用します。

Linux (RHEL/CentOS) では、ハイパースレッディングが有効な場合に物理コアとは異なる論理コアの数を取得するには、物理​​ CPU ごとに兄弟の数を数えます。

OSTYPE=`uname`

case $OSTYPE in
  Darwin)
    NCORES=`sysctl -n hw.physicalcpu`
    NLCORES=`sysctl -n hw.logicalcpu`
    ;;
  Linux)
    NCORES=`grep processor /proc/cpuinfo | wc -l`
    NLCORES=`
      grep 'physical id\|siblings' /proc/cpuinfo |
      sed 'N;s/\n/ /' |
      uniq |
      awk -F: '{count += $3} END {print count}'
    `
    ;;
  *)
    echo "Unsupported OS" >&2
    exit 1
    ;;
esac

echo "Number of cores: $NCORES"
echo "Number of logical cores (HT): $NLCORES"

OS X Mountain Lion および CentOS 5 でのみテスト済みです。他のシステムでは修正が必要になる場合があります。このスクリプトは完全にはテストされていないことに注意してください。ご使用の際はご注意ください。

于 2012-12-12T17:24:23.077 に答える