Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #5913

Re: [Python-de] multiprocessing.Manager: Kann ich damit das Pickel reduzieren?

From "Peter J. Holzer" <hjp-usenet3@hjp.at>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] multiprocessing.Manager: Kann ich damit das Pickel reduzieren?
Date 2022-12-05 20:51 +0100
Organization LUGA
Message-ID <slrntosiu7.3tba.hjp-usenet3@trintignant.hjp.at> (permalink)
References <65ae8c8a7e0892ad66a1462c43b4620f@posteo.de>

Show all headers | View raw


On 2022-12-05 14:20, c.buhtz@posteo.jp <c.buhtz@posteo.jp> wrote:
> Ich verteile die (ausschließlich lesenden!) Aufgaben an einem 
> pandas.DataFrame (z.B. 20 Spalten und 700.000 Zeilen) auf mehrere 
> Prozesse. Das geht meist gut, wenn ich den DataFrame sinnvoll in 
> "Scheiben" schneiden und an die Prozesse verteilen kann.
>
> Manchmal ist es inhaltlich, aber nicht sinnvoll und ich muss eigentlich 
> den gesamten DataFrame an die Prozesse verteilen, ohne dessen Umfang vor 
> dem Pickeln reduzieren zu können. Gefühlt würde ich sagen, dass Python 
> das Pickeln für jeden Prozess erneut vornimmt, anstatt nur einmal zu 
> Pickeln und das dann einfach zu kopieren. Bin mir bei dem Punkt nicht 
> sicher.
>
> Nun habe ich vom Manager 
> (https://docs.python.org/3/library/multiprocessing.html#managers) gehört 
> und dass es da eine Art proxy Datenobjekt gibt. Ein Manager wäre gut 
> geeignet, um Daten zwischen Prozessen zu teilen. Klingt so, also ob ich 
> da kein Pickeling befürchten müsste.

Woraus schließt Du das? Das geht über (TCP?-)Sockets, die Daten müssen
also serialisiert werden. Und der Default-Serializer ist laut
https://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager
'pickle'.

Eventuell kannst Du einen Manager schreiben, der die Daten nur einmal
pickelt (einlegt?) und dann bei jedem weiteren Zugriff die gleichen
Daten liefert. Beim Überfliegen der Doku springt mir aber nicht sofort
ein Ansatz ins Auge.

        hp

Back to de.comp.lang.python | Previous | NextPrevious in thread | Find similar


Thread

[Python-de] multiprocessing.Manager: Kann ich damit das Pickel reduzieren? c.buhtz@posteo.jp - 2022-12-05 14:20 +0000
  Re: [Python-de] multiprocessing.Manager: Kann ich damit das Pickel reduzieren? "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2022-12-05 20:51 +0100

csiph-web