Articles of multiprocesamiento

Problema de sincronización con el módulo de multiprocesamiento de Python

Cuando ejecuto el siguiente código en la página del módulo de multiprocesamiento de Python: from multiprocessing import Process, Lock def f(l, i): l.acquire() print ‘hello world’, i l.release() if __name__ == ‘__main__’: lock = Lock() for num in range(10): Process(target=f, args=(lock, num)).start() A veces me sale una salida desordenada como: hello world 0 hello world […]

Usando multiprocesamiento con el PIL

Tengo algo de código que realiza operaciones (independientes) en un grupo de objetos de imagen de Python Imaging Library (PIL). Me gustaría intentar acelerar este proceso mediante el procesamiento en paralelo, por lo que leo el módulo de multiprocesamiento a continuación: http://docs.python.org/library/multiprocessing.html Pero todavía no me queda muy claro cómo usar el multiprocesamiento para este […]

Los bloques de procesamiento de tuberías de multiprocesamiento incluso cuando el proceso hijo está inactivo

Al leer varias preguntas sobre este tema, entiendo ahora que el proceso secundario hereda los descriptores de archivo del proceso principal. Lo que hará más difícil que un niño reciba un EOFError cuando un padre cierra la conexión. Pero mi situación es al revés, y no entiendo el problema al que me enfrento. Tengo un […]

Cómo paralelizar grandes bucles en Python

Acabo de llegar a Python y todavía estoy en la fase empinada de la curva de aprendizaje. Gracias por cualquier comentario por delante. Tengo un gran bucle para ejecutar (grande en el sentido de muchas iteraciones), por ejemplo: for i in range(10000) for j in range(10000) f((i,j)) Pensé que sería una pregunta común sobre cómo […]

Multiprocesamiento con pantalla y bash

Ejecutar un script de python en diferentes nodos en la escuela usando SSH. Cada nodo tiene 8 núcleos. Utilizo la pantalla GNU para separarme de un solo proceso. ¿Es más deseable: Ejecutar varias sesiones diferentes de pantalla. Ejecute un proceso de pantalla única y use & en un terminal bash. ¿Son equivalentes? No estoy seguro […]

Multiprocesamiento de carga de FTP con un número preciso de conexiones

Por lo tanto, he podido usar el multiprocesamiento para cargar varios archivos a la vez en un servidor determinado con las siguientes dos funciones: import ftplib,multiprocessing,subprocess def upload(t): server=locker.server,user=locker.user,password=locker.password,service=locker.service #These all just return strings representing the various fields I will need. ftp=ftplib.FTP(server) ftp.login(user=user,passwd=password,acct=””) ftp.storbinary(“STOR “+t.split(‘/’)[-1], open(t,”rb”)) ftp.close() # Doesn’t seem to be necessary, same thing […]

¿Por qué se bloquea multiprocessing.Process.join ()?

Estoy usando multiprocesamiento de esta manera: import multiprocessing as mp def worker(thread_id, tasks, results): tmp_dir = ‘temp_for_{}’.format(thread_id) os.makedirs(tmp_dir) try: while not tasks.empty(): data = tasks.get() response = process_pdf(data, tmp_dir) results.put(response) except (KeyboardInterrupt, SystemExit): log.info(‘Interrupt signal received in thread %s.’, thread_id) except Queue.Empty: pass except Exception: log.error(“Unexpected error in %s”, thread_id, exc_info=True) finally: shutil.rmtree(tmp_dir) log.info(“Thread %s […]

Compartir SciPy Sparse Array entre objetos de proceso

Recientemente he estado aprendiendo el multiprocesamiento de Python y me he topado con un obstáculo. Tengo una matriz SciPy escasa (formato CSC) que necesito compartir en formato de solo lectura entre 5 procesos de trabajo. He leído esto y esto (número compartido), pero esto parece ser solo para tipos densos. ¿Cómo compartiría un scipy.sparse.csc_matrix () […]

No se pueden agregar elementos a la lista compartida de multiprocesamiento

Estoy utilizando el multiprocesamiento para crear un subproceso para mi aplicación. También comparto un diccionario entre el proceso y el subproceso. Ejemplo de mi código: Proceso principal: from multiprocessing import Process, Manager manager = Manager() shared_dict = manager.dict() p = Process(target=mysubprocess, args=(shared_dict,)) p.start() p.join() print shared_dict mi subproceso def mysubprocess(shared_dict): shared_dict[‘list_item’] = list() shared_dict[‘list_item’].append(‘test’) print […]

Array de memoria compartida de Python, sin atributo get_obj ()

Estoy trabajando en la manipulación de matrices numpy utilizando el módulo de multiprocesamiento y me estoy topando con un problema al probar algunos de los códigos que he encontrado aquí. Específicamente, estoy creando una matriz ctypes a partir de una matriz numpy y luego trato de devolver la matriz ctypes a una matriz numpy. Aquí […]