#include<mpi.h>#include<stdio.h>intmain(intargc,char**argv){// 初始化 MPI 环境
MPI_Init(NULL,NULL);// 通过调用以下方法来得到所有可以工作的进程数量
intworld_size;MPI_Comm_size(MPI_COMM_WORLD,&world_size);// 得到当前进程的秩
intworld_rank;MPI_Comm_rank(MPI_COMM_WORLD,&world_rank);// 得到当前进程的名字
charprocessor_name[MPI_MAX_PROCESSOR_NAME];intname_len;MPI_Get_processor_name(processor_name,&name_len);// 打印一条带有当前进程名字,秩以及
// 整个 communicator 的大小的 hello world 消息。
printf("Hello world from processor %s, rank %d out of %d processors\n",processor_name,world_rank,world_size);// 释放 MPI 的一些资源
MPI_Finalize();}
然后使用mpicc进行编译,如果是Fortran,使用对应的mpif90或者mpifort。
1
mpicc mpi-hello.cpp -o mpi-hello.x
最后使用对应版本的mpirun执行,
1
2
3
4
5
6
$ mpirun -np 5 ./mpi-hello.x
Hello world from processor login1, rank 1 out of 5 processors
Hello world from processor login1, rank 2 out of 5 processors
Hello world from processor login1, rank 3 out of 5 processors
Hello world from processor login1, rank 4 out of 5 processors
Hello world from processor login1, rank 0 out of 5 processors