Articles of python multiproceso

error de recursión máx. cuando se usa futures.ProcessPoolExecutor pero no futures.ThreadPoolExecutor con envoltorio PRAW

Estoy usando este código para raspar una API: submissions = get_submissions(1) with futures.ProcessPoolExecutor(max_workers=4) as executor: #or using this: with futures.ThreadPoolExecutor(max_workers=4) as executor: for s in executor.map(map_func, submissions): collection_front.update({“time_recorded”:time_recorded}, {‘$push’:{“thread_list”:s}}, upsert=True) Funciona muy bien / rápido con subprocesos pero cuando bash usar procesos obtengo una cola completa y este error: File “/usr/local/lib/python3.4/dist-packages/praw/objects.py”, line 82, in __getattr__ […]

Python Multiprocessing RuntimeError en Windows

Tengo una función de clase (llamémosla “alpha.py”) que usa multiprocesamiento (procesos = 2) para unir un proceso y es parte de un paquete de Python que escribí. En un script de Python separado (llamémoslo “beta.py”), instalé un objeto de esta clase y llamé la función correspondiente que usa multiprocesamiento. Finalmente, todo esto está envuelto dentro […]

Multiprocesamiento de Python: sincronización de un objeto similar a un archivo

Estoy tratando de hacer un archivo como objeto que está destinado a ser asignado a sys.stdout / sys.stderr durante la prueba para proporcionar un resultado determinista. No está destinado a ser rápido, solo confiable. Lo que tengo hasta ahora casi funciona, pero necesito un poco de ayuda para deshacerme de los últimos errores de caso […]

Multiproceso Python Pool.apply_async con variables compartidas (Valor)

Para mi proyecto universitario, estoy tratando de desarrollar un generador de tráfico basado en Python. He creado 2 máquinas CentOS en vmware y estoy usando 1 como mi cliente y 1 como mi máquina servidor. He utilizado la técnica de alias de IP para boost el número de clientes y servidores utilizando solo una máquina […]

Medición del progreso con el multiproceso de Python y la función de mapa

Siguiendo el código que estoy usando para el procesamiento csv paralelo: #!/usr/bin/env python import csv from time import sleep from multiprocessing import Pool from multiprocessing import cpu_count from multiprocessing import current_process from pprint import pprint as pp def init_worker(x): sleep(.5) print “(%s,%s)” % (x[0],x[1]) x.append(int(x[0])**2) return x def parallel_csv_processing(inputFile, outputFile, header=[“Default”, “header”, “please”, “change”], separator=”,”, […]

Multiprocesamiento básico con bucle while

Soy nuevo en el paquete de multiprocessing en Python y mi confusión probablemente será fácil de aclarar para alguien que sepa más. He estado leyendo sobre la concurrencia y he buscado otras preguntas como esta y no he encontrado nada. (Para su información, NO quiero usar multithreading porque la GIL ralentizará mucho mi aplicación). Estoy […]

AttributeError: el objeto ‘Pool’ no tiene atributo ‘__exit__’

Estoy haciendo algunos scripts de python multiprocessing.Pool utilizando multiprocessing.Pool . Estos scripts se parecen a los siguientes: from multiprocessing import Pool def f(x): return x*x if __name__ == ‘__main__’: with Pool(processes=4) as pool: # start 4 worker processes print(pool.map(f, range(10))) # prints “[0, 1, 4,…, 81]” Cuando se ejecuta esto con Python 3.4, todo está […]

multiprocessing.Pool: urllib TypeError si no usa un módulo ficticio

Por qué el código siguiente funciona solo con “multiprocessing.dummy”, pero no con el simple “multiprocessing”. import urllib.request #from multiprocessing.dummy import Pool #this works from multiprocessing import Pool urls = [‘http://www.python.org’, ‘http://www.yahoo.com’,’http://www.scala.org’, ‘http://www.google.com’] if __name__ == ‘__main__’: with Pool(5) as p: results = p.map(urllib.request.urlopen, urls) Error Traceback (most recent call last): File “urlthreads.py”, line 31, in […]

No se puede declinar la expresión de Pyparsing con el método setParseAction (). Necesario para multiprocesamiento

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 […]

Detectar tareas fallidas en concurrent.futures

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 + […]