Pregunta

utilizo mpi4py y openmpi en una máquina multi-cpu / núcleo que hacer álgebra lineal. Mi numpy se construye utilizando ATLAS . Supongamos que tengo una máquina 4 de núcleo y me gustaría ejecutar un script pitón 4 nodo que hace álgebra lineal en cada nodo utilizando numpy.

¿Cómo puedo asegurar que ATLAS no utiliza más de un núcleo cuando se está haciendo el álgebra lineal en cada nodo? Cuando construyo ATLAS, no parece haber ninguna opción para tenerlo configurado para funcionar con un solo núcleo a la vez. Con Intel MKL, creo que se puede establecer OMP_NUM_THREADS = 1, y se garantiza este comportamiento. ¿Hay una manera de construir ATLAS sólo para este propósito? No parece ser una variable de entorno equivalente.

estoy adivinando que la ejecución de las operaciones de varios BLAS simultáneamente en cada núcleo de una CPU multinúcleo no es una buena estrategia. ¿Puede alguien comentario sobre esta o dar reglas generales en que esto sea una buena o mala idea?

¿Fue útil?

Solución

Desafortunadamente el número máximo de usos hilos ATLAS no puede ser controlada con una variable de entorno tales como OMP_NUM_THREADS. Vas a tener que volver a enlazar con la librería numpy ATLAS serie. Ver

http://math-atlas.sourceforge.net/faq.html#tsafe

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top