Articles of multiprocesamiento de

El uso de la agrupación de multiprocesamiento de la tarea de apio genera una excepción

PARA AQUELLOS QUE LEEN ESTO: he decidido utilizar RQ, que no falla cuando se ejecuta el código que utiliza el módulo de multiprocesamiento. Te sugiero que uses eso. Estoy tratando de usar un grupo de multiprocesamiento dentro de una tarea de apio usando Python 3 y redis como intermediario (ejecutándolo en una Mac). Sin embargo, […]

Cómo usar Python multiprocessing Pool.map dentro de loop

Estoy ejecutando una simulación utilizando Runge-Kutta. En cada paso del tiempo, se requieren dos FFT de dos variables independientes que pueden ser paralelizadas. Implementé el código así: from multiprocessing import Pool import numpy as np pool = Pool(processes=2) # I like to calculate only 2 FFTs parallel # in every time step, therefor 2 processes […]

Paralela un bucle nested en python para encontrar el valor máximo

Estoy luchando por algún tiempo para mejorar el tiempo de ejecución de este fragmento de código. Dado que los cálculos realmente requieren mucho tiempo, creo que la mejor solución sería paralelizar el código. La salida también se puede almacenar en la memoria, y luego escribirse en un archivo. Soy nuevo tanto en Python como en […]

Multiprocesamiento: resultado NULO sin error en PyObject_Call

Aquí hay un progtwig de ejemplo donde uso multiprocesamiento. Los cálculos se realizan con multiprocessing.Process y los resultados se recostackn mediante multiprocessing.Queue . #THIS PROGRAM RUNS WITH ~40Gb RAM. (you can reduce a,b,c for less RAM #but then it works for smaller values) #PROBLEM OCCURS ONLY FOR HUGE DATA. from numpy import * import multiprocessing […]

¿Cómo funciona la función de callback en multiproceso python map_async

Me costó toda una noche depurar mi código, y finalmente encontré este problema complicado. Por favor, eche un vistazo al código de abajo. from multiprocessing import Pool def myfunc(x): return [i for i in range(x)] pool=Pool() A=[] r = pool.map_async(myfunc, (1,2), callback=A.extend) r.wait() Pensé que obtendría A=[0,0,1] , pero la salida es A=[[0],[0,1]] . Esto […]

Concurrencia / Paralelismo en Windows con Python

Desarrollé un progtwig simple para resolver el problema de ocho reinas. Ahora me gustaría hacer más pruebas con diferentes meta-parámetros, así que me gustaría hacerlo rápido. Pasé por varias iteraciones de creación de perfiles y pude reducir significativamente el tiempo de ejecución, pero llegué al punto en el que creo que solo partes de los […]

Creando y reutilizando objetos en procesos python.

Tengo un problema paralelizantemente embarazoso que consiste en un montón de tareas que se resuelven de forma independiente. Resolver cada una de las tareas es bastante largo, por lo que este es un candidato principal para el multiprocesamiento. El problema es que resolver mis tareas requiere crear un objeto específico que requiera mucho tiempo por […]

Multiproceso Python: AttributeError: el objeto ‘Test’ no tiene ningún atributo ‘get_type’

versión corta corta Tengo problemas para paralelizar el código que utiliza métodos de instancia. Versión más larga: Este código de Python produce el error: Error Traceback (most recent call last): File “/Users/gilzellner/dev/git/3.2.1-build/cloudify-system-tests/cosmo_tester/test_suites/stress_test_openstack/test_file.py”, line 24, in test self.pool.map(self.f, [self, url]) File “/Users/gilzellner/.virtualenvs/3.2.1-build/lib/python2.7/site-packages/pathos/multiprocessing.py”, line 131, in map return _pool.map(star(f), zip(*args)) # chunksize File “/Users/gilzellner/.virtualenvs/3.2.1-build/lib/python2.7/site-packages/multiprocess/pool.py”, line 251, in […]

Escribir datos en el disco en Python como un proceso en segundo plano

Tengo un progtwig en Python que básicamente hace lo siguiente: for j in xrange(200): # 1) Compute a bunch of data # 2) Write data to disk 1) tarda unos 2-5 minutos 2) tarda aproximadamente ~ 1 minuto Tenga en cuenta que hay demasiados datos para guardar en la memoria. Idealmente, lo que me gustaría […]

¿Cómo obtener la cantidad de “trabajo” que queda por hacer en un Pool de multiprocesamiento de Python?

Hasta ahora, siempre que necesitaba utilizar el multiprocessing lo he hecho creando manualmente un “grupo de procesos” y compartiendo una Cola de trabajo con todos los subprocesos. Por ejemplo: from multiprocessing import Process, Queue class MyClass: def __init__(self, num_processes): self._log = logging.getLogger() self.process_list = [] self.work_queue = Queue() for i in range(num_processes): p_name = ‘CPU_%02d’ […]