Anzahl der Prozessoren rausfinden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Freitag 3. Februar 2006, 15:08

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
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Freitag 3. Februar 2006, 16:01

Hi Rebecca!

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

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Freitag 3. Februar 2006, 23:02

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.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Dienstag 25. April 2006, 09:55

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...
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Dienstag 25. April 2006, 11:24

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.
--- Heiko.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Dienstag 25. April 2006, 15:20

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.
TUFKAB – the user formerly known as blackbird
Antworten