So führen Sie eine Mehrkern-Parallelverarbeitung mit Python durch

Zuvor musste ich ein wenig Big Data analysieren, was viel Zeit in Anspruch nahm, um es zu verarbeiten. Zu diesem Zeitpunkt werde ich die Methode zusammenfassen, mit der die Verarbeitung beschleunigt wird.

Im Folgenden wird das Multiprozessor-Modul verwendet.

importieren

multi.py


from multiprocessing import Pool
from multiprocessing import Process

Wie benutzt man

Basic

Es ist so.

multi.py


def function(hoge):
    #Was du machen willst
    return x

def multi(n):
    p = Pool(10) #Maximale Anzahl von Prozessen:10
    result = p.map(function, range(n))
    return result

def main():
    data = multi(20)
    for i in data:
        print i

main()

In diesem Fall lautet der Prozess "Führen Sie die Funktion 20 Mal aus, indem Sie den Wert auf 0,1,2 ... 19 ändern". Da der Rückgabewert der Funktion als Liste im Ergebnis enthalten ist, wird er standardmäßig empfangen und ausgegeben.

Außerdem kann ich in meiner Umgebung bis zu 12 Kerne verwenden (6 Kerne und 12 Threads, um genau zu sein), sodass ich die maximale Anzahl von Prozessen auf 10 festlege. Wenn Sie es maximal verwenden, ist es schwierig, den Browser zu öffnen, sodass Sie ihn sicher stoppen können.

CPU auslastung

Die CPU-Auslastungsrate während der Parallelverarbeitung wird ebenfalls aufgelistet. Screenshot .png Auf diese Weise können Sie sehen, dass die parallele Verarbeitung mit mehreren Kernen ordnungsgemäß ausgeführt wird.

Prozess-ID abrufen

Sie können auch die Prozess-ID abrufen, die für jeden Prozess verantwortlich ist.

multi.py


import os

def fuction(hoge):
    #Was du machen willst
    print 'process id:' + str(os.getpid())
    return x

#Unten weggelassen

Es ist interessant zu wissen, dass wenn Sie es so anzeigen, es in einem anderen Prozess ausgeführt wird.

Wie schnell war es

Der Prozess, der ungefähr 35 Stunden dauerte, war in etwas mehr als 4 Stunden abgeschlossen. Die Bearbeitungszeit beträgt weniger als 1/10, was ein ausreichendes Ergebnis ist.

Natürlich nimmt die Geschwindigkeit jedes Prozesses nicht zu, daher ist es notwendig, die Arbeit gleichmäßig zu verteilen, um die Effizienz zu verbessern, aber ich denke, dass dies nützlich ist, da das Analysesystem viele solcher Dinge enthält.

Recommended Posts

So führen Sie eine Mehrkern-Parallelverarbeitung mit Python durch
Wie man einen Taschentest mit Python macht
So führen Sie eine Hash-Berechnung mit Salt in Python durch
Einführung in die verteilte Parallelverarbeitung von Python durch Ray
Python: So verwenden Sie Async mit
[Python] Einfache Parallelverarbeitung mit Joblib
Schwanzrekursion mit Python2 durchführen
Erste Schritte mit Python
Was tun mit PYTHON Release?
So berechnen Sie das Datum mit Python
So führen Sie eine arithmetische Verarbeitung mit der Django-Vorlage durch
So machen Sie R chartr () in Python
Lassen Sie Heroku die Hintergrundverarbeitung mit Python durchführen
So arbeiten Sie mit BigQuery in Python
So zeigen Sie Python-Japanisch mit Lolipop an
Wie man mit Python-Flüchen Japanisch eingibt
So installieren Sie Python3 mit Docker Centos
Hochladen mit Heroku, Flask, Python, Git (4)
Lesen einer CSV-Datei mit Python 2/3
Wie man Spaß am Programmieren mit Minecraft hat (Ruby, Python)
[REAPER] Wie man Reascript mit Python spielt
So installieren Sie Python
Strategie zur Monetarisierung mit Python Java
So implementieren Sie die Time-Wait-Verarbeitung mit wxpython
[Python] Zeichnen mehrerer Diagramme mit Matplotlib
[Python] Wie man Excel-Dateien mit Pandas liest
So beschneiden Sie ein Bild mit Python + OpenCV
So installieren Sie Python
So legen Sie Attribute mit Mock of Python fest
So messen Sie die Ausführungszeit mit Python Teil 1
Mach Houdini mit Python3! !! !!
Bildverarbeitung mit Python
Wie man tkinter mit Python in Pyenv benutzt
Parallelverarbeitung mit Mehrfachverarbeitung
Parallele Verarbeitung ohne tiefe Bedeutung in Python
[Python] Umgang mit japanischen Zeichen mit openCV
[Python] Vergleichen von Datum und Uhrzeit mit der hinzugefügten Zeitzone
So messen Sie die Ausführungszeit mit Python Part 2
3. Verarbeitung natürlicher Sprache mit Python 1-2. So erstellen Sie einen Korpus: Aozora Bunko
Verwendung mehrerer Argumente bei der Parallelverarbeitung mithilfe der Mehrfachverarbeitung in Python
Hochauflösende akustische Signalverarbeitung (1) - Lesen einer 24-Bit-WAV-Datei mit Python
So konvertieren / wiederherstellen Sie einen String mit [] in Python
[Einführung in Python] Verwendung der while-Anweisung (wiederholte Verarbeitung)
So fügen Sie HDA Hilfe hinzu (mit Python-Skriptbonus)
[Python] Wie zeichnet man mit Matplotlib ein Liniendiagramm?
So kratzen Sie Bilddaten von Flickr mit Python
So messen Sie die Verarbeitungszeit mit Python oder Java
[Einführung in Python] Wie iteriere ich mit der Bereichsfunktion?
Erklären Sie ausführlich, wie Sie mit Python einen Sound erzeugen
Hochladen mit Heroku, Flask, Python, Git (Teil 3)
So führen Sie mit OpenCV ein Null-Padding in einer Zeile durch
So führen Sie Tests zusammen mit Python unittest aus
[Python] So legen Sie den Download-Speicherort mit youtube-dl fest
[Kapitel 5] Einführung in Python mit 100 Klopfen Sprachverarbeitung
So messen Sie die Wiedergabezeit von MP3-Dateien mit Python
Verwendung des interaktiven Python-Modus mit Git Bash
So konvertieren Sie eine JSON-Datei mit Python Pandas in eine CSV-Datei
[Kapitel 3] Einführung in Python mit 100 Klopfen Sprachverarbeitung