Articles of parallel processing

Sumando objetos de Python con Allreduce de MPI

Estoy usando una manipulación de matrices tensoras dispersas que construí usando diccionarios y contadores en Python. Me gustaría hacer posible utilizar esta manipulación de matriz en paralelo. La conclusión es que he terminado teniendo contadores en cada nodo que me gustaría agregar juntos usando MPI.Allreduce (u otra solución agradable). Por ejemplo con Contadores se puede […]

Número de iteraciones grandes de Python falla

Escribí un simple progtwig de cálculo monte-carlo π en Python, usando un módulo de multiprocesamiento. Funciona bien, pero cuando paso 1E + 10 iteraciones para cada trabajador, ocurre un problema y el resultado es incorrecto. ¡No puedo entender cuál es el problema, porque todo está bien en las iteraciones 1E + 9! import sys from […]

¿Cómo dividir la matriz diagonal en igual número de elementos cada uno a lo largo de uno de los ejes?

Tengo una matriz diagonal muy grande que necesito dividir para el cálculo paralelo. Debido a los problemas de la localidad de los datos, no tiene sentido recorrer la matriz y dividir cada n -ésimo cálculo entre n subprocesos. Actualmente, estoy dividiendo k x k matriz diagonal de la siguiente manera pero produce particiones desiguales en […]

Procesamiento Django y paralelo:

Versiones: Python 3.5.1 Django 1.10 mysqlclient 1.3.10 mysql 5.7.18-0ubuntu0.16.04.1 (Ubuntu) Linux Mint 18.1 Tengo un gran proyecto de Django donde hay una secuencia de comandos de configuración que agrega un montón de contenido a la base de datos desde algunos archivos csv. De vez en cuando, necesito restablecer todo y volver a agregar todo de […]

trabajando en directorios diferentes (os.chdir) al mismo tiempo (subprocesos paralelos)

Quiero sincronizar todos mis directorios vcs en paralelo. Voy al directorio y ejecuto scripts de línea de comandos especiales para sincronizar git o repositorys mercuriales. Es un proceso lento, así que quiero intentar que sea paralelo. Pero hay problemas en mis hilos paralelos que luchan por el “directorio actual”, por lo que necesito algún truco […]

Resolviendo fórmulas en paralelo con z3

Digamos que tengo un solucionador z3 con un cierto número de restricciones afirmadas que son satisfactorias. Dejemos que S sea un conjunto de restricciones, me gustaría verificar para cada restricción en S si la fórmula sigue siendo satisfactoria al agregar la restricción al solucionador. Esto puede hacerse fácilmente de manera secuencial de tal manera: results […]

Paralelizar este bucle nested para python

Estoy luchando de nuevo para mejorar el tiempo de ejecución de este pedazo de código. Dado que los cálculos realmente requieren mucho tiempo, creo que la mejor solución sería paralelizar el código. Primero trabajé con mapas como se explica en esta pregunta, pero luego probé un enfoque más simple pensando que podría encontrar una mejor […]

Escribiendo un bucle paralelo

Estoy tratando de ejecutar un bucle paralelo en un ejemplo simple. ¿Qué estoy haciendo mal? from joblib import Parallel, delayed import multiprocessing def processInput(i): return i * i if __name__ == ‘__main__’: # what are your inputs, and what operation do you want to # perform on each input. For example… inputs = range(1000000) num_cores […]

Multiprocesamiento de Python y manejo de excepciones en trabajadores.

Utilizo la biblioteca de multiprocesamiento de Python para un algoritmo en el que tengo muchos trabajadores que procesan ciertos datos y devuelven el resultado al proceso principal. Uso el multiprocesamiento. Asignación de un puesto para pasar los trabajos a los trabajadores, y segundo para recostackr resultados. Todo funciona bastante bien, hasta que el trabajador no […]

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