Seite 1 von 1

Multicore Processing

Verfasst: Mittwoch 17. Juli 2019, 10:13
von JohannX
Hallo zusammen!

Mit einem Python Script wird eine asci Datei ausgelesen und die Daten gefiltert und anschließend mit Plotly als html File ausgegeben.
Die Dateien haben eine Größenordnung von etwa 500MB
Der Code an sich funktioniert, nur dauert das ganze eben sehr lange da anscheinend nur ein CPU daran beteiligt ist.

Deshalb möchte ich gerne alle Kerne nutzen um die Zeit zu verkürzen.
Nur weiß ich grad nicht wo und wie das funktioniert.

Hoffe mir kann eventuell hier jemand helfen :roll:

Re: Multicore Processing

Verfasst: Mittwoch 17. Juli 2019, 10:50
von sparrow
Das kann man nicht pauschal beantworten, weil nicht jede Aufgabe parallelisiert werden kann.
In Python gibt es dafür multiprocessing.

Re: Multicore Processing

Verfasst: Mittwoch 17. Juli 2019, 10:52
von Sirius3
@JohannX: was auch immer sehr lange dauert...

es macht keinen Sinn, blind mehr Kerne zu benutzen. Man muß dazu genau wissen, was so lange dauert, und ob es nicht bessere Lösungen gibt.

Entweder ist die Einleseroutine sehr umständlich geschrieben (500MB lesen dauert im Sekundenbereich), oder die eigentliche Arbeit liegt im Plotten. Da läßt sich dann wenig ändert.

Re: Multicore Processing

Verfasst: Mittwoch 17. Juli 2019, 11:38
von __blackjack__
Neben `multiprocessing` könnte man noch `concurrent.futures` erwähnen, was auch einen Prozesspool verwenden kann.

Re: Multicore Processing

Verfasst: Mittwoch 17. Juli 2019, 14:32
von JohannX
Vielen Dank!

@Sirius3
Habe es jetzt mal gestoppt und einen Timer eingebaut, du hattest Recht, das Plotten dauert einfach so lange.

Danke auf jeden Fall :)