835 Stimmen

Wie man die Anzahl der CPUs mit Python herausfindet

Ich möchte die Anzahl der CPUs auf dem lokalen Rechner unter Verwendung von Python herausfinden. Das Ergebnis sollte user/real sein, wie es von time(1) ausgegeben wird, wenn es mit einem optimal skalierenden Benutzerbereichs-Programm aufgerufen wird.

0 Stimmen

Wenn Sie Torch verwenden, können Sie import torch.multiprocessing; mp.cpu_count() ausführen.

7 Stimmen

Du solltest cpusets (in Linux) im Kopf behalten. Wenn du in einem cpuset bist, geben die unten stehenden Lösungen immer noch die Anzahl der echten CPUs im System an, nicht die Anzahl, die deinem Prozess zur Verfügung steht. /proc//status hat einige Zeilen, die dir die Anzahl der CPUs im aktuellen cpuset anzeigen: Suche nach Cpus_allowed_list.

11voto

amit12690 Punkte 139

Sie können auch "joblib" für diesen Zweck verwenden.

import joblib
print joblib.cpu_count()

Mit dieser Methode erhalten Sie die Anzahl der CPUs im System. joblib muss jedoch installiert sein. Weitere Informationen zu joblib finden Sie hier https://pythonhosted.org/joblib/parallel.html

Alternativ können Sie das Numexpr-Paket von Python verwenden. Es verfügt über viele einfache Funktionen, die für die Erfassung von Informationen über die CPU des Systems hilfreich sind.

import numexpr as ne
print ne.detect_number_of_cores()

2 Stimmen

Joblib verwendet das zugrunde liegende Multiprocessing-Modul. Es ist wahrscheinlich am besten, direkt auf Multiprocessing zuzugreifen.

10voto

Ben Scherrey Punkte 309

Kann nicht herausfinden, wie man den Code ergänzt oder auf die Nachricht antwortet, aber hier ist Unterstützung für Jython, die du vor dem Aufgeben einfügen kannst:

# jython
try:
    from java.lang import Runtime
    runtime = Runtime.getRuntime()
    res = runtime.availableProcessors()
    if res > 0:
        return res
except ImportError:
    pass

2voto

Charlie Parker Punkte 13101

Wenn Sie torch verwenden, können Sie Folgendes tun:

import torch.multiprocessing as mp

mp.cpu_count()

Die mp-Bibliothek in torch hat die gleiche Schnittstelle wie die Haupt-Python-Bibliothek, sodass Sie dies auch tun können, wie der Kommentator erwähnt hat:

python -c "import multiprocessing; print(multiprocessing.cpu_count())"

Hoffentlich hilft das! ;) Es ist immer schön, mehr als eine Option zu haben.

4 Stimmen

Diese Antwort sollte NICHT die erste Antwort sein. Warum torch, ein Deep-Learning-Framework, für eine so einfache Aufgabe verwenden? Einfach ausführen: python -c "import multiprocessing; print(multiprocessing.cpu_count())"

0 Stimmen

@EliSimhayev oh Ich habe vergessen, dass tatsächlich das torch mp Modul die gleiche Schnittstelle hat, also sind sie gleich, aber ich werde Details hinzufügen ;) und nein, das ist nicht die erste Antwort, es gibt einige vor mir :)

1voto

Alkero Punkte 35

Eine weitere Option, wenn Sie kein Python 2.6 haben:

import commands
n = commands.getoutput("grep -c processor /proc/cpuinfo")

2 Stimmen

Danke! Dies ist nur auf Linux verfügbar und bereits in meiner Antwort enthalten.

-3voto

Ranjeet R Patil Punkte 223

Wenn Sie die Anzahl der Kerne in Ihrem System drucken möchten.

Versuchen Sie es mit:

import os 
no_of_cores = os.cpu_count()
print(no_of_cores)

Dies sollte helfen.

6 Stimmen

Diese Lösung wird bereits in dieser bestehenden Antwort bereitgestellt. Beim Beantworten alter Fragen stellen Sie bitte sicher, dass Ihre Antwort einen eindeutigen und wertvollen Beitrag zur Frage-und-Antwort-Sitzung leistet.

1 Stimmen

Ok danke, werde passende Informationen bereitstellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X