programacion mpirun example parallel-processing fortran mpi gfortran openmpi

parallel-processing - example - mpirun command



mpirun sin opciones ejecuta un programa en un solo proceso (2)

Si no especifica el número de procesos que se utilizarán, mpirun intenta obtenerlos del archivo host predeterminado (especificado o). De la sección correspondiente de la página man que vinculó :

Si el archivo de host no proporciona información de espacios, se supone un valor predeterminado de 1.

Como no modificó este archivo (supongo), mpirun solo usará un espacio.

En mi máquina, el archivo de host predeterminado se encuentra en

/etc/openmpi-x86_64/openmpi-default-hostfile

Aquí leo

Si no se proporciona ningún valor para la cantidad de copias que se ejecutarán (es decir, ni "-np" ni sus sinónimos se proporcionan en la línea de comandos), Open MPI ejecutará automáticamente una copia del programa en cada ranura de proceso (ver a continuación descripción de un "espacio de proceso")

Entonces yo esperaría

mpirun program

para ejecutar ocho copias del programa (en realidad, un simple hola mundo), ya que tengo una CPU Intel® Core ™ i7-2630QM a 2.00 GHz × 8, pero no es así: simplemente ejecuta un solo proceso.


i7-2630QM es una CPU de 4 núcleos con dos subprocesos de hardware por núcleo. Con programas computacionalmente intensivos, debería comenzar mejor cuatro procesos MPI en lugar de ocho.

Simplemente use mpiexec -n 4 ... ya que no necesita un archivo host para iniciar procesos en el mismo nodo donde se ejecuta mpiexec .

Los archivos de host se utilizan al iniciar procesos MPI en nodos remotos. Si realmente necesita crear uno, lo siguiente debería hacerlo:

hostname slots=4 max_slots=8

(reemplace el hostname con el nombre de host de la máquina)

Ejecute el programa como

mpiexec -hostfile name_of_hostfile ...

max_slots=8 permite max_slots=8 el nodo con hasta ocho procesos MPI si su programa MPI puede hacer uso de hyperthreading. También puede establecer la variable de entorno OMPI_MCA_orte_default_hostfile en la ruta completa del hostfile en lugar de pasarla explícitamente cada vez como parámetro a mpiexec .

Si utiliza un administrador de recursos distribuidos como Torque, LSF, SGE, etc., si se compila correctamente, Open MPI se integra con el entorno y crea automáticamente un host y una lista de espacios de la reserva.