Seite 1 von 1

Anzahl der Prozessoren rausfinden

Verfasst: Freitag 3. Februar 2006, 15:08
von Rebecca
Moin!

Unter *nix -Systemen kann ich die Anzahl der Prozessoren ueber /proc/cpuinfo rausfinden. Aber gibt es auch eine Python-Funktion dafuer? Ich habe nix gefunden... :-(

Gruss,
Rebecca

Verfasst: Freitag 3. Februar 2006, 16:01
von gerold
Hi Rebecca!

Ich glaube nicht, dass es dafür eine eigene Funktion in Python gibt. Lies einfach "/proc/cpuinfo" aus. :P

mfg
Gerold
:-)

Verfasst: Freitag 3. Februar 2006, 23:02
von modelnine

Code: Alles auswählen

cpus = 0
for l in file("/proc/cpuinfo"):
    if not l.strip(): cpus += 1
Das sollte unter allen Linux-artigen Systemen laufen (unabhängig von der Architektur). Unter anderen Systemen ist das sicherlich auch machbar, nur kann man sich bei denen sicherlich nicht drauf verlassen dass /proc/cpuinfo genausoviele Leerzeilen enthält wie es CPUs gibt.

--- Heiko.

Verfasst: Dienstag 25. April 2006, 09:55
von Rebecca
Mmh, ich dachte immer, eine /proc/cpuinfo gibt's auf den meisten *nix-Systemen, aber sie scheint nur auf Linuxen zu existieren. :shock:

Sowas bloedes...

Verfasst: Dienstag 25. April 2006, 11:24
von modelnine
Mmh, ich dachte immer, eine /proc/cpuinfo gibt's auf den meisten *nix-Systemen, aber sie scheint nur auf Linuxen zu existieren.
Jupp. Die Spezifikation von /proc ist zwischen Systemen nicht konsistent, meißtens sogar zwischen Hauptversionen von Linux nicht (zum Beispiel kamen zwischen 2.2 und 2.4 ziemlich viele Felder in /proc/net/* dazu). Im Normalfall gibts aber was ähnliches; sonst, vielleicht liefert die entsprechende Information auch uname, die Ausgabe von dem Befehl zu parsen sollte kein Problem sein.

Verfasst: Dienstag 25. April 2006, 15:20
von mitsuhiko
Ansonsten kommt man auch mit HAL an die Infos:

Code: Alles auswählen

import dbus

bus = dbus.SystemBus()
obj = bus.get_object('org.freedesktop.Hal', '/org/freedesktop/Hal/Manager')
manager = dbus.Interface(obj, 'org.freedesktop.Hal.Manager')
processors = manager.FindDeviceByCapability('processor')

print 'Anzahl der Prozessoren: %d' % len(processors)
Sollte auf allen Systemen mit aktuellem HAL und dbus laufen.