2017-02-14 10 views
1

Ich benutze einen Linux-Server mit 128 Kernen, aber ich bin nicht der einzige, der es verwendet, also möchte ich sicherstellen, dass ich maximal 60 Kerne für mein Programm verwenden. Das Programm, das ich schreibe, ist eine Reihe von Simulationen, bei denen jede Simulation selbst parallelisiert wird. Die Anzahl der Kerne einer solchen einzelnen Simulation kann gewählt werden, und ich verwende typischerweise 10 dieser Simulationen zur gleichen Zeit, was dazu führen würde, dass (5x12) 60 Kerne verwendet werden gesamt. Ich möchte die Simulationen von Python aus starten (da kommt die gesamte Vorverarbeitung vor) und mein Auge hat die Multiprocessing-Bibliothek, insbesondere die Pool-Klasse, gefangen.Python Multiprozess Pool Prozesse zählen

Nun meine Frage: sollte ich Pool = Pool (Prozesse = 5) verwenden oder Pool = Pool (Prozesse = 60)

Die Idee dahinter ist: nicht die Prozesse Argument bedeuten die Menge der Arbeitnehmer verwendet (wo jedem Arbeiter 12 Kerne zugewiesen werden) oder die Gesamtanzahl der verfügbaren Prozesse?

+0

_processes_ ist die Anzahl der zu verwendenden Worker-Prozesse. Aus der [Docs] (https://docs.python.org/3.6/library/multiprocessing.html#multiprocessing.pool.Pool) –

+0

Ich glaube, es ist die Gesamtzahl der Prozesse im Pool, die von der Nummer zugeordnet werden von physikalischen Kernen, die das System zur Verfügung hat - wahrscheinlich wollen Sie also 'Pool (processes = 60)'. – martineau

Antwort

1

Das Argument 'Prozesse' in Pool bedeutet den gesamten Subprozess, den Sie in diesem Programm erstellen möchten. Wenn Sie also alle 60 Kerne verwenden möchten, sollte hier 60 sein.

Verwandte Themen