Cluster de Computación - IUII
Para crear un programa paralelo para un cluster de memoria compartida lo más común es usar una librería de paso de mensajes para la intercomunicación de los procesos. La Interfaz de Paso de Mensajes (“Messeging pasing Interface”) MPI es un estándar que define la sintaxis y la semántica de las funciones para esta comunicación. Las funciones están definidas en una librería MPI de la cual hay varias implementaciones disponibles dependiente de la plataforma, de la red de interconexión y de la versión de estándar MPI.
Las librerías instaladas en ClusterUA son Open MPI, MVAPICH, MVAPICH2 y Intel MPI, todos soportando la red de interconexión de baja latencia de tipo Infiniband.
En esta parte del manual vamos a ver cómo compilar un programa MPI. Más adelante, en el apartado del gestor de recursos, veremos cómo mandar el trabajo MPI al cluster.
Para definir el entorno de la librería MPI que queremos usar, simplemente hace falta cargar el módulo correspondientes. Los módulos MPI disponibles son
Antes de copilar un programa Open MPI tenemos que cargar el módulo de entorno. Si queremos usar un compilador intel ejecutamos
$ module load openmpi-intel
o si preferimos gcc ejecutamos:
$ module load openmpi-gcc
Una vez cargado el módulo podemos compilar nuestro programa usando uno de los siguiente warppers
ejecutando:
$ mpi[cc|CC|cxx|c++|f77|f90] <fichero_fuente> -o <nombre_ejecutable>
Las opciones de la línea de comando son las mismas que las del compilador correspondiente (gcc, icc, etc.)
Antes de copilar un programa MVAPICH tenemos que cargar el módulo de entorno. Si queremos usar un compilador intel ejecutamos
$ module load mvapich-intel
o si preferimos gcc ejecutamos
$ module load mvapich-gcc
Una vez cargado el módulo podemos compilar nuestro programa usando uno de los siguiente warppers
ejecutando
$ mpi[cc|CC|cxx|c++|f77|f90] <fichero_fuente> -o <nombre_ejecutable>
Las opciones de la línea de comando son las mismas que las del compilador correspondiente (gcc, icc, etc.)
Antes de compilar un programa MVAPICH2 tenemos que cargar el módulo de entorno. Si queremos usar un compilador Intel ejecutamos
$ module load openmpi-intel
o si preferimos gcc ejecutamos
$ module load openmpi-gcc
Una vez cargado el módulo podemos compilar nuestro programa usando uno de los siguiente warppers
ejecutando:
$ mpi[cc|cxx|f77|f90] <fichero_fuente> -o <nombre_ejecutable>
Las opciones de la línea de comando son las mismas que las del compilador correspondiente (gcc, icc, etc.)
Antes de compilar un programa Intel MPI tenemos que cargar el módulo de entorno. Si queremos usar un compilador intel ejecutamos:
$ module load impi
Una vez cargado el módulo podemos compilar nuestro programa usando uno de los siguiente warppers
ejecutando
$ mpi[icc|icxx|ifort|cc|gcc|cxx|gxx|f77|f90] <fichero_fuente> -o <nombre_ejecutable>
Las opciones de la línea de comando son las mismas que las del compilador correspondiente (gcc, icc, etc.)

