Pytania otagowane jako python-multiprocessing

8
Wieloprocesowe przetwarzanie w Pythonie PicklingError: Can't pickle <type 'function'>
Przykro mi, że nie mogę odtworzyć błędu na prostszym przykładzie, a mój kod jest zbyt skomplikowany, aby go opublikować. Jeśli uruchomię program w powłoce IPython zamiast zwykłego Pythona, wszystko zadziała dobrze. Przejrzałem kilka wcześniejszych notatek na ten temat. Wszystkie zostały spowodowane przez użycie puli do wywołania funkcji zdefiniowanej w funkcji …

12
Jak mogę odzyskać wartość zwracaną funkcji przekazanej do procesu wieloprocesowego?
W poniższym przykładowym kodzie chciałbym odzyskać zwracaną wartość funkcji worker. Jak mogę to zrobić? Gdzie jest przechowywana ta wartość? Przykładowy kod: import multiprocessing def worker(procnum): '''worker function''' print str(procnum) + ' represent!' return procnum if __name__ == '__main__': jobs = [] for i in range(5): p = multiprocessing.Process(target=worker, args=(i,)) jobs.append(p) …

1
multiprocessing.Pool: Jaka jest różnica między map_async a imap?
Próbuję nauczyć się korzystać z multiprocessingpakietu Pythona , ale nie rozumiem różnicy między map_asynci imap. Zauważyłem, że zarówno map_asynci imapsą wykonywane asynchronicznie. Więc kiedy powinienem używać jednego na drugim? I w jaki sposób mam odzyskać zwrócony wynik map_async? Czy powinienem użyć czegoś takiego? def test(): result = pool.map_async() pool.close() pool.join() …


2
Udostępnianie kolejki wyników kilku procesom
Dokumentacja multiprocessingmodułu pokazuje, jak przekazać kolejkę do procesu uruchomionego multiprocessing.Process. Ale jak mogę współużytkować kolejkę z asynchronicznymi procesami roboczymi, od których rozpoczęto apply_async? Nie potrzebuję dynamicznego łączenia ani niczego innego, tylko sposób, aby pracownicy (wielokrotnie) zgłaszali swoje wyniki z powrotem do bazy. import multiprocessing def worker(name, que): que.put("%d is done" …

3
Wieloprocesorowość w Pythonie: zrozumienie logiki stojącej za `chunksize`
Jakie czynniki decydują o optymalnym chunksizeargumencie do takich metod multiprocessing.Pool.map()? .map()Sposób wydaje się użycie dowolnego heurystyczne do domyślnej chunksize (jak opisano poniżej); co motywuje ten wybór i czy istnieje bardziej przemyślane podejście oparte na jakiejś konkretnej sytuacji / konfiguracji? Przykład - powiedz, że jestem: Przechodząc iterabledo .map()tego ma ~ 15 …

3
Czy można uruchomić funkcję w podprocesie bez tworzenia wątków lub pisania oddzielnego pliku / skryptu?
import subprocess def my_function(x): return x + 100 output = subprocess.Popen(my_function, 1) #I would like to pass the function object and its arguments print output #desired output: 101 Znalazłem tylko dokumentację dotyczącą otwierania podprocesów za pomocą oddzielnych skryptów. Czy ktoś wie, jak przekazywać obiekty funkcyjne, a nawet prosty sposób na …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.