Overview
Teaching: 10 min
Exercises: 0 minQuestions
Objectives
program helloworld
use mpi
implicit none
integer :: rank, comsize, ierr
call MPI_Init(ierr)
call MPI_Comm_size(MPI_COMM_WORLD, comsize, ierr)
call MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr)
print *,'Hello World, from task ', rank, 'of', comsize
call MPI_Finalize(ierr)
end program helloworld
use mpi
: imports declarations for MPI function callscall MPI_INIT(ierr)
: initialization for MPI library. Must come first. ierr: Returns any error code.call MPI_FINALIZE(ierr)
: close up MPI stuff. Must come last. ierr: Returns any error code.call MPI_COMM_RANK, call MPI_COMM_SIZE
: requires a little more explanation.MPI_COMM_WORLD: size=4, ranks=0..3
program helloworld
use mpi
implicit none
integer :: rank, comsize, ierr
call MPI_Init(ierr)
call MPI_Comm_size(MPI_COMM_WORLD, comsize, ierr)
call MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr)
print *,'Hello World, from task ', rank, 'of', comsize
call MPI_Finalize(ierr)
end program helloworld
Let’s look at the same program in c:
#include <stdio.h>
#include <mpi.h>
int main(int argc, char **argv) {
int rank, size;
MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
printf("Hello, World, from task %d of %d\n",rank, size);
MPI_Finalize();
return 0;
}
#include<mpi.h>
vs use mpi
Key Points