C #include <stdlib.h> #include <stdio.h> #include <mpi.h> int main (int argc, char* argv[]){ int my_id, num_procs, inserted_num,modified_num; MPI_Init(&argc, &argv); /* starts MPI */ MPI_Comm_rank (MPI_COMM_WORLD, &my_id); /* get current process id */ MPI_Comm_size (MPI_COMM_WORLD, &num_procs); /* get number of processes */ printf("my_id is %d and modified_num before broadcast is %d\n", my_id,modified_num); /* not initialized value!!! */ if(my_id == 0) { /* printf("Insert an integer value: \n"); In case of interactive run */ /* scanf("%d", &inserted_num);*/ inserted_num=57; printf("Inserted num is :%d\n", inserted_num); modified_num = inserted_num*inserted_num ; }
else {
inserted_num=0;
modified_num=0;
}
MPI_Bcast(&modified_num, 1, MPI_INT, 0, MPI_COMM_WORLD); printf("my_id is %d ,inserted_num is %d and modified_num is %d\n", my_id,inserted_num,modified_num); MPI_Finalize(); return 0; }
FORTRAN
PROGRAM main
IMPLICIT NONE
include 'mpif.h'
INTEGER :: ierr, my_id, num_procs,inserted_num,modified_num,buffer
CALL MPI_INIT( ierr )
CALL MPI_COMM_RANK( MPI_COMM_WORLD, my_id, ierr )
CALL MPI_Comm_size ( MPI_COMM_WORLD, num_procs, ierr )
IF( my_id == 0) THEN
! WRITE(*,*) "Insert an integer value : " ! In case of interactive run
! READ(*,*) inserted_num
inserted_num = 57
modified_num = inserted_num*inserted_num
ELSE
inserted_num = 0
modified_num = 0
ENDIF
CALL MPI_BCAST(modified_num, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr)
WRITE(*,*) "my_id", my_id, "inserted_num", inserted_num, "modified_num", modified_num
CALL MPI_FINALIZE(ierr)
END PROGRAM main