Articles of parallel processing

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

Cómo paralelizar este Python para bucle cuando se usa Numba

Estoy usando la distribución Anaconda de Python, junto con Numba, y he escrito la siguiente función de Python que multiplica una matriz dispersa A (almacenada en formato CSR) por un vector denso x : @jit def csrMult( x, Adata, Aindices, Aindptr, Ashape ): numRowsA = Ashape[0] Ax = numpy.zeros( numRowsA ) for i in range( […]

¿Quién ejecuta la callback cuando se utiliza el método apply_async de un grupo de multiprocesamiento?

Estoy tratando de entender un poco de lo que sucede detrás de la escena cuando se utiliza el método apply_sync de un grupo de multiprocesamiento. ¿Quién ejecuta el método de callback? ¿Es el proceso principal que se llama apply_async? Digamos que envío un montón de comandos apply_async con devoluciones de llamada y luego continúo con […]

análisis de archivos paralelos, múltiples núcleos de CPU

Anteriormente hice una pregunta relacionada pero muy general (vea especialmente esta respuesta ). Esta pregunta es muy específica. Este es todo el código que me importa: result = {} for line in open(‘input.txt’): key, value = parse(line) result[key] = value La función de parse es completamente autónoma (es decir, no utiliza ningún recurso compartido). Tengo […]

Procesamiento paralelo desde una cola de comandos en Linux (bash, python, ruby ​​… lo que sea)

Tengo una lista / cola de 200 comandos que necesito para ejecutar en un shell en un servidor Linux. Solo quiero tener un máximo de 10 procesos en ejecución (desde la cola) a la vez. Algunos procesos tardarán unos segundos en completarse, otros procesos tardarán mucho más. Cuando un proceso finalice quiero que el siguiente […]