Articles of parallel processing

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

numba guvectorize target = ‘paralelo’ más lento que target = ‘cpu’

He estado intentando optimizar una parte del código de Python que involucra cálculos de matrices multidimensionales de gran tamaño. Estoy obteniendo resultados contraintuitivos con numba. Me estoy ejecutando en un MBP, a mediados de 2015, 2.5 GHz i7 Quadcore, OS 10.10.5, Python 2.7.11. Considera lo siguiente: import numpy as np from numba import jit, vectorize, […]

Paralelismo nested en Python

Estoy probando la progtwigción multiprocesador con Python. Tome un algoritmo de dividir y conquistar como Fibonacci por ejemplo. El flujo de ejecución del progtwig se ramificaría como un árbol y se ejecutaría en paralelo. En otras palabras, tenemos un ejemplo de paralelismo nested . Desde Java, he usado un patrón de subprocesos para administrar recursos, […]

Biblioteca o herramienta para descargar múltiples archivos en paralelo

Estoy buscando una biblioteca de Python o una herramienta de línea de comandos para descargar varios archivos en paralelo. Mi solución actual es descargar los archivos secuencialmente, lo cual es lento. Sé que puedes escribir fácilmente una solución de subprocesos a medias en python, pero siempre tengo problemas molestos al usar subprocesos. Es para encuestar […]

Coincidencia de archivos paralelos, Python

Estoy tratando de mejorar un script que escanea archivos en busca de códigos maliciosos. Tenemos una lista de patrones de expresiones regulares en un archivo, un patrón en cada línea. Estas expresiones regulares son para grep, ya que nuestra implementación actual es básicamente una combinación de script bash find \ grep. La secuencia de comandos […]

Cómo iterar sobre trozos consecutivos del dataframe de Pandas de manera eficiente

Tengo un gran dataframe (varios millones de filas). Quiero poder realizar una operación grupal en él, pero simplemente agrupándolos por subconjuntos consecutivos (preferiblemente de igual tamaño) de filas, en lugar de usar cualquier propiedad particular de las filas individuales para decidir a qué grupo van. El caso de uso: quiero aplicar una función a cada […]