#include #include int main(int argc, char* argv[]) { int rank, size; MPI_Status status; //inicializácia MPI MPI_Init(&argc, &argv); //zistenie poradového čísla procesu - rank MPI_Comm_rank(MPI_COMM_WORLD, &rank); //zistenie celkového počtu procesov - size MPI_Comm_size(MPI_COMM_WORLD, &size); double start, stop, sprava=123.456; start = MPI_Wtime(); //meranie času for(int i=0; i<50; i++) { if(!rank) { //odoslanie správy procesom 0 MPI_Send(&sprava, 1, MPI_DOUBLE, 1, 0, MPI_COMM_WORLD); //prijatie správy procesom 0 MPI_Recv(&sprava, 1, MPI_DOUBLE, 1, 0, MPI_COMM_WORLD, &status); } else { //prijatie správy procesom 1 MPI_Recv(&sprava, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &status); //odoslanie správy procesom 1 MPI_Send(&sprava, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD); } } stop = MPI_Wtime(); //meranie času if(!rank) { printf("Cas prenosu: %f mikrosekund.\n", (stop-start)/(2*50)*1e6); printf("Bandwidth: %f B/s\n", sizeof(sprava)*2*50/(stop-start)); } //ukončenie MPI MPI_Finalize(); return(0); }