Red de conocimiento informático - Material del sitio web - Cómo compilar y ejecutar programas MPI en Oracle Solaris 11

Cómo compilar y ejecutar programas MPI en Oracle Solaris 11

Para utilizar OMPT, Oracle Solaris 11 debe estar instalado y ejecutándose en el sistema. Por lo general, no necesita ningún otro permiso especial para ejecutar ninguna utilidad OMPT además de los permisos de root utilizados durante la instalación.

Si desea compilar programas MPI, debe instalar Oracle Solaris Studio 12.1 o posterior. En un grupo de nodos que ejecutan programas MPI, puede instalar Oracle Solaris Studio en uno de los nodos y compilar el paquete openmpi-15 solo en ese nodo, pero instalar el paquete en todos los nodos.

Para obtener OMPT, instale el paquete openmpi-15, que está alojado en un repositorio de Image Packaging System (IPS) que debe estar configurado en su sistema. Para verificar que el repositorio IPS esté configurado, ejecute el comando pkg publicador.

Si aún no has configurado el repositorio IPS, configúralo antes de intentar agregar el paquete openmpi-15. De lo contrario, la adición del paquete fallará.

El sistema debe configurarse con acceso a la red (si accede al repositorio de IPS a través de la red) o con un repositorio de IPS configurado localmente servido desde el mismo sistema.

Los ejemplos de este artículo utilizan un repositorio IPS configurado localmente, como se muestra en el siguiente resultado del comando pkg Publisher, que indica que el repositorio IPS está alojado en localhost a través de HTTP.

root@solarix:/usr/share/distro_const# pkg editor

URI DE ESTADO DE TIPO DE EDITOR

origen de solaris en línea http://localhost/

Después de verificar que el repositorio esté configurado, ejecute el comando pkg install openmpi-15 como root para agregar el paquete del generador de distribución. Luego descargue el paquete openmpi-15 del repositorio de IPS e instálelo ahora.

El comando pkg install openmpi-15 muestra el estado del proceso, como se muestra en el Listado 1, lo que facilita la observación del progreso.

Listado 1: Salida del comando pkg install openmpi-15

root@solarix:~# pkg install openmpi-15

Plan de creación

Paquetes a instalar: 2

Crear entorno de arranque: No

DESCARGAR ARCHIVOS PKGS XFER (MB)

service/picl 0/2 0/1430 0.0 /11.9[K

desarrollador/openmpi-15 1/2 1430/1430 11.9/11.9[K

Completado 2/2 1430/1430 11.9/11.9[K

ACCIONES DE FASE

Instalar Fase 1639/1639

ELEMENTOS DE FASE

Actualización del estado del paquete Fase 1/2

Estado del paquete Actualización Fase 2/2

Actualización del estado de la imagen Fase 1/2

Actualización del estado de la imagen Fase 2/2

ELEMENTOS DE LA FASE

Lectura Índice existente 1/8

Lectura del índice existente 5/8

Lectura del índice existente 8/8

Paquetes de indexación 2/2

Instalación Después de completar el paquete openmpi-15, simplemente incluya /usr/openmpi/ompi-15/bin en su variable PATH y estará todo listo.

Utilice OMPT para compilar programas MPI

Hay dos formas de utilizar OMPT para compilar programas MPI. Puede utilizar los contenedores del compilador incluidos en el paquete (mpicc, mpiCC, mpif77 y mpif90) o llamar al compilador directamente.

Debido a que es necesario incluir las rutas de inclusión, biblioteca y ejecución, se recomienda utilizar el primer método.

El contenedor pasa todas las opciones que no comprende al compilador de Oracle Solaris Studio, por lo que debería poder utilizar la utilidad contenedora para reemplazar todas las instancias del compilador en el archivo MAKE.

Tomando el Listado 2 como ejemplo de programa MPI, puede utilizar un comando de una línea para compilar el programa:

mpicc hello.c -o hello.x

Listado 2: Ejemplo de programa hello .c

#include

#include

int main(int argc , char **argv) {

int np, me;

MPI_Init(&argc,&argv);

MPI_Comm_size(MPI_COMM_WORLD,&np);

MPI_Comm_rank(MPI_COMM_WORLD ,&me);

printf("hola de %d de %d\n", yo, np);

MPI_Finalize();

return 0 ;

}

También puedes realizar compilación y vinculación en dos etapas:

mpicc -c hello.c

mpicc hello.o -o hello.x

Si desea ejecutar el compilador directamente sin utilizar un contenedor, puede determinar las opciones utilizadas por el contenedor proporcionando la opción -showme al contenedor:

mpicc - showme hello.c -o hello.x

Utilice OMPT para ejecutar un programa MPI

Después de compilar y vincular el archivo ejecutable con la biblioteca OMPT, puede ejecutar el programa solo o iniciarlo usando un trabajo paralelo. La utilidad del servidor mpirun se usa para ejecutarlo.

Para ejecutar un programa de forma independiente, simplemente ejecute el archivo ejecutable como un archivo ejecutable normal no paralelo. Sin embargo, es responsabilidad de este programa llamar a la API MPI apropiada (como MPI_Comm_spawn o MPI_Comm_spawn_multiple) para generar otros procesos del trabajo MPI.

Para crear inicialmente un trabajo MPI que ejecute múltiples procesos, utilice la utilidad mpirun. Por ejemplo, si desea ejecutar nuestro programa MPI de muestra en 2 nodos con un total de ***8 procesos, puede usar el siguiente comando:

mpirun -np 8 -host nombredehost1,nombredehost2 hola. x

Hay varias opciones que se pueden usar con mpirun para controlar el enlace, el diseño, la redirección de salida, etc. Puede obtener más información sobre estas opciones ejecutando mpirun -h o man mpirun.