#include #include #include "mpi.h" main(int argc, char* argv[]) { int my_rank; // Rank del proceso int p; // Numero de procesos int source; // Rank del que envia int dest; // Rank del que recibe int tag = 0; // Tag del mensaje char message[100]; // Mensaje MPI_Status status; double start,stop; /* Inicio */ MPI_Init(&argc, &argv); /* Averiguando el Rank del proceso */ MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); /* Averiguando el numero de procesos que participan */ MPI_Comm_size(MPI_COMM_WORLD, &p); /* Hasta que todos los procesos no lleguen hasta aqui ninguno continua */ MPI_Barrier(MPI_COMM_WORLD); start = MPI_Wtime(); sprintf(message, "Soy el proceso %d y estoy enviando un mensaje broadcast!",my_rank); MPI_Bcast(message, strlen(message)+1, MPI_CHAR, 0, MPI_COMM_WORLD); if (my_rank != 0) printf("%s Y yo soy el proceso %d y lo estoy recibiendo.\n",message,my_rank); MPI_Barrier(MPI_COMM_WORLD); // Espero a que todos los procesos terminen para calcular el tiempo de finalizacion. stop = MPI_Wtime(); if (my_rank == 0) printf("Tiempo empleado: %g\n",stop-start); MPI_Finalize(); }