Articles of parallel processing

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

Parfor para Python

Estoy buscando una respuesta definitiva para el examen de MATLAB para Python (Scipy, Numpy). ¿Hay una solución similar a la de parfor? Si no, ¿cuál es la complicación para crear uno? ACTUALIZACIÓN: Aquí hay un código de cálculo numérico típico que necesito acelerar import numpy as np N = 2000 output = np.zeros([N,N]) for i […]

Estado de paralelización de pandas.apply ()

En los últimos años, se han pandas.apply() varios mensajes relacionados con la parallelization de pandas.apply() o publicaciones que describen problemas que podrían resolverse estructurando los datos como un dataframe y utilizando pandas.apply() si se implementara la parallelization . Mi pregunta a la comunidad de expertos aquí es cuál es el estado de esta capacidad, ya […]

Llamando mpi binario en serie como subproceso de la aplicación mpi

Tengo una gran aplicación de simulación paralela (utilizando MPI) que produce grandes cantidades de datos. Para evaluar estos datos utilizo un script de python. Lo que ahora debo hacer es ejecutar esta aplicación una gran cantidad de veces (> 1000) y calcular las propiedades estadísticas a partir de los datos resultantes. Mi enfoque hasta ahora […]

Numbas paralelas funciones vectorizadas.

Actualmente estoy experimentando con numba y especialmente vectorized , así que creé una función sum vectorizada (porque es fácil comparar esto con np.sum . import numpy as np import numba as nb @nb.vectorize([nb.float64(nb.float64, nb.float64)]) def numba_sum(element1, element2): return element1 + element2 @nb.vectorize([nb.float64(nb.float64, nb.float64)], target=’parallel’) def numba_sum_parallel(element1, element2): return element1 + element2 array = np.ones(elements) np.testing.assert_almost_equal(numba_sum.reduce(array), […]