// bcast1.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//

#include "stdafx.h"
#include <mpi.h>

int main(int argc, char *argv[])
{
    int Pid;	
    int numprocs;	
	double number;

    if (MPI_Init(&argc, &argv)!=MPI_SUCCESS) {
	   fprintf( stderr,"MPI_Init failed.\n");
	   MPI_Finalize();
	   return 1;
    }

	
	   // Anzahl der Prozesse
    MPI_Comm_size(MPI_COMM_WORLD,&numprocs);

	if ( numprocs <2 ){
      puts("Bitte mit mindestens mit zwei Prozesse starten");
	  MPI_Finalize();
	  return 1;
	}
   
	   // meine eigene ID
    if ( MPI_Comm_rank(MPI_COMM_WORLD,&Pid) !=MPI_SUCCESS) {
	   fprintf( stderr,"MPI_Comm_rank failed.\n");
	   MPI_Finalize();
	   return 1;
    }

	if (Pid==0) {
		number=123.456;
		MPI_Bcast(&number, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
	}
	else {
		MPI_Bcast(&number, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
	}
	printf("Pid: %d  number:%f\n",Pid,number);

	

	MPI_Finalize();

	return 0;
}

