Mi problema original es que estoy tratando de hacer lo siguiente: def submit_decoder_process(decoder, input_line): decoder.process_line(input_line) return decoder self.pool = Pool(processes=num_of_processes) self.pool.apply_async(submit_decoder_process, [decoder, input_line]).get() El decodificador es un poco complicado de describir aquí, pero lo importante es que el decodificador es un objeto que se inicializa con la expresión PyParsing que llama a setParseAction (). Esto […]
He estado utilizando concurrent.futures, ya que tiene una interfaz simple y permite al usuario controlar fácilmente el número máximo de subprocesos / procesos. Sin embargo, parece que concurrent.futures oculta las tareas fallidas y continúa el hilo principal después de que todas las tareas hayan finalizado o hayan fallado. import concurrent.futures def f(i): return (i + […]
En Python 3, tengo un progtwig de rodillo de dados simple. Lo que hace es pedirle al usuario la cantidad de lados de un dado y cuántas veces les gustaría tirarlo. Esto se logra creando una lista y cada sublista representa un lado del dado. Cada vez que se genera un número aleatorio, se anexa […]
Intento utilizar la funcionalidad de multiprocesamiento de pool de python. Independientemente de cómo establezca el tamaño del fragmento (en Windows 7 y Ubuntu, este último se ve a continuación con 4 núcleos), la cantidad de hilos paralelos parece permanecer igual. from multiprocessing import Pool from multiprocessing import cpu_count import multiprocessing import time def f(x): print(“ready […]
En primer lugar, no estaba seguro de si debería publicar esto como una pregunta de Ubuntu o aquí. Pero supongo que es más una pregunta de Python que una de sistema operativo. Mi aplicación Python se ejecuta sobre Ubuntu en un servidor AMD de 64 núcleos. Extrae imágenes de cámaras de 5 GigE a través […]
Me gustaría crear un subproceso o un proceso que se ejecute para siempre en un bucle While True. Necesito enviar y recibir datos al trabajador en forma de colas, ya sea un multiprocessing.Queue () o collections.deque (). Prefiero usar collections.deque () ya que es significativamente más rápido. También necesito poder matar al trabajador con el […]
Tengo un poco de código Python multiprocessing que se ve un poco así: import time from multiprocessing import Pool import numpy as np class MyClass(object): def __init__(self): self.myAttribute = np.zeros(100000000) # basically a big memory struct def my_multithreaded_analysis(self): arg_lists = [(self, i) for i in range(10)] pool = Pool(processes=10) result = pool.map(call_method, arg_lists) print result […]
Siguiendo el código no se ejecuta como se esperaba. import multiprocessing lock = multiprocessing.Lock() def dummy(): def log_results_l1(results): lock.acquire() print(“Writing results”, results) lock.release() def mp_execute_instance_l1(cmd): print(cmd) return cmd cmds = [x for x in range(10)] pool = multiprocessing.Pool(processes=8) for c in cmds: pool.apply_async(mp_execute_instance_l1, args=(c, ), callback=log_results_l1) pool.close() pool.join() print(“done”) dummy() Pero funciona si las funciones […]
Estoy tratando de dividir por bucle, es decir N = 1000000 for i in xrange(N): #do something utilizando multiprocesamiento. El proceso funciona bien con valores pequeños de N. El problema surge cuando uso valores mayores de N. Algo extraño sucede antes o durante el proceso de p.join () y el progtwig no responde. Si pongo […]
Estaba aprendiendo sobre multiprocesamiento y multiproceso. Por lo que entiendo, los subprocesos se ejecutan en el mismo núcleo, por lo que me preguntaba si crearé múltiples procesos dentro de un subproceso secundario. ¿Estarán limitados a ese único núcleo también? Estoy usando python, así que esta es una pregunta sobre ese idioma específico, pero me gustaría […]