Híbrido MPI / OpenMP en LSF

Estoy moviendo un programa paralelizado por OpenMP a Cluster. El clúster está utilizando Lava 1.0 como programador y tiene 8 núcleos en cada nodo. Utilicé un contenedor de MPI en la secuencia de comandos del trabajo para hacer un paralelo de múltiples hosts.

Aquí está el script de trabajo:

#BSUB -q queue_name
#BSUB -x

#BSUB -R "span[ptile=1]"
#BSUB -n 1

#BSUB -J n1p1o8
##BSUB -o outfile.email
#BSUB -e err

export OMP_NUM_THREADS=8

date
/home/apps/bin/lava.openmpi.wrapper -bynode -x OMP_NUM_THREADS \
    ~/my_program ~/input.dat ~/output.out 
date

Hice algunos experimentos en un solo host exclusivamente. Sin embargo, no sé cómo explicar algunos de los resultados.

1.
-norteOMP_NUM_THREADShora
1      4      21:12
2      4      20:12

¿Significa que MPI no hace ningún paralelo aquí? Pensé que, en el segundo caso, cada proceso MPI tendría 4 subprocesos OMP, por lo que debería usar un uso de CPU del 800%, que debería ser más rápido que el primero.

Otro resultado para demostrarlo es que
-norteOMP_NUM_THREADShora
2      2      31:42
4      2      30:47

También tienen tiempos de ejecución bastante cercanos.

2.
En este caso, si quiero poner en paralelo este programa en este clúster con una velocidad optimizada razonable de manera simple, ¿es razonable poner 1 proceso MPI (le digo a LFG que uso un núcleo) en cada host, establezca OMP_NUM_THREADS = 8, y luego ejecutarlo exclusivamente? Por lo tanto, MPI solo funciona en trabajos de nodo cruzado y OpenMP funciona en trabajos de nodo interno. (-n = # de host; ptile = 1; OMP_NUM_THREADS = Núcleos máximos en cada host)

ACTUALIZAR: El programa está compilado por gfortran -fopenmp sin mpicc. MPI solo se usa para distribuir el ejecutable.

ACTUALIZACIÓN Mar.3: Monitor de uso de memoria del programa

Entorno local: Mac 10.8 / 2.9 Ghz i7 / 8GB de memoria

No OpenMP

Tamaño de memoria real: 8.4 MBTamaño de memoria virtual: 2.37 GBTamaño de la memoria compartida: 212 KBTamaño de la memoria privada: 7.8 MbMemoria privada virtual: 63.2 MB

Con OpenMP (4 hilos)

Tamaño de memoria real: 31.5 MBTamaño de memoria virtual: 2.52 GBTamaño de la memoria compartida: 212 KBTamaño de la memoria privada: 27.1 MbMemoria privada virtual: 210.2 MB

Información breve del hardware del clúster

Cada host contiene dos chips quad, que son 8 núcleos por nodo y 8 GB de memoria. Los hosts en este cluster están conectados por infiniband.

Respuestas a la pregunta(1)

Su respuesta a la pregunta