05 Programacion con MPI
05 Programacion con MPI
05 Programacion con MPI
Cluster Beowulf
nodo-01
Servidor de Archivos
nfs.pci.uas.edu.mx
alfa.miservidor.mx
nodo-02
Internet
Nodo Principal
colhuacan.pci.uas.edu.mx
maestro.miservidor.mx
Nodo-03
beta.miservidor.mx
nodo-04
¿Qué es MPI?
– http://www.mpi-forum.org
• MPI_Init()
• int MPI_Init(int *argc, char ***argv)
• MPI_Finalize()
• int MPI_Finalize(void)
Ingreso
• Ingresar a la carpeta
$ cd nombre
Primer Programa
#include <stdio.h>
#include <mpi.h>
MPI_Init(&argc, &argv);
printf("Hola Mundo!!!\n");
MPI_Finalize();
}
Compilación y Ejecución con OpenMPI
Compilación
• $ mpicc prog01.c -o prog01
• Ejecutar programa
• $ mpirun -np 4 prog01
• Ejecutar programa
• $ mpirun -hostfile nodos.lst -np 4 prog01
Funciones de Información de Ambiente
#include <stdio.h>
#include <mpi.h>
int idproc, nproc, resultlen;
char nombre[30];
int main (int argc, char** argv)
{
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &idproc);
MPI_Comm_size(MPI_COMM_WORLD, &nproc);
MPI_Get_processor_name(nombre, &resultlen);
Envío de Datos
Recepción de datos
14/10/10
Funciones colectivas
• Operadores de reducción
Operador Descripción
MPI_SUM Suma
local_value = rank;
MPI_Finalize();
return 0;
}