Herramientas Personales

Ejemplo broadcast en MPI

Ejemplo sencillo de comunicación global

broadcast.c — C source code, 1Kb

Contenido del Archivo

/* ***** ***** ***** ***** ***** ***** */
/* Escuela Complutense Latinoamericana */
/*      Febrero del 2012 - UBA         */
/*     Autor: Esteban Mocskos          */
/* ***** ***** ***** ***** ***** ***** */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mpi.h>

#define BUF_SIZE 100

int main(int argc, char* argv[])
{
    int         status, my_rank, cant;	/* Valor de retorno, id, cant 	*/
    int         source, dest;       	/* fuente, destino            	*/
    char        message[BUF_SIZE];  	/* mensaje              	*/

    MPI_Init(&argc, &argv);                      /* Inicio de MPI */
    MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);    /* rango de procesos  */
    MPI_Comm_size(MPI_COMM_WORLD, &cant);          /* numero de procesos */

    sprintf(message, "Saludos desde el proceso %d!",my_rank);
    /* parametros: buffer, cantidad a transferir, tipo de datos, root y comunicador.*/
    status = MPI_Bcast(message, strlen(message)+1, MPI_CHAR, 0, MPI_COMM_WORLD);

    if (status!=MPI_SUCCESS)
    {
        printf("Ups...\n");
        exit(1);
    }

    printf("%s\n", message);

    MPI_Finalize();
    return 0;
}
Acciones de Documento