DAWNING 乡 曙光 更新的 Hello world( Fortran) progran inaln include mpif.h′ integer ierr, myid, numprocs call MPI INIT( ierr call MPI COMM RANK( MPI COMM WORLD, myid, ierr call MPI COMM SIZE( MPI COMM WORLD, numprocs, ierr print *, I am', myid, of,numprocs call MPI FINALIZE( ierr end 2021年1月 MP|并行程序设计 23/217
2021年1月 MPI并行程序设计 23/217 更新的Hello World(Fortran) program main include ‘mpif.h’ integer ierr, myid, numprocs call MPI_INIT( ierr ) call MPI_COMM_RANK( MPI_COMM_WORLD, myid, ierr ) call MPI_COMM_SIZE( MPI_COMM_WORLD, numprocs, ierr ) print *, ‘I am', myid, ‘of', numprocs call MPI_FINALIZE( ierr ) end
DAWNING 乡 曙光 DAWNING 科拔计算未来 运行结果 dair @nodel - mpicc-o hello 1 hello.c [dair(@node01-IS mpirun hello 1 I amo of 4 I am 1 of 4 I am 2 of 4 am 3 of 4 dair @nodel - IS 计算机打印字符 我们输入的命令 2021年1月 MP|并行程序设计 24/217
2021年1月 MPI并行程序设计 24/217 :运行结果 • [dair@node01 ~]$ mpicc –o hello1 hello1.c • [dair@node01 ~]$ mpirun -np 4 hello1 I am 0 of 4 I am 1 of 4 I am 2 of 4 I am 3 of 4 • [dair@node01 ~]$ 计算机打印字符 我们输入的命令
DAWNING 乡 曙光 DAWNING 有消息传递 Greeting 科拔计算未来 进程0 进程1进程2进程3 rank=0 rank=1 rank=2 rank=3 Recv o Send(I Send( Send( 2021年1月 MP|并行程序设计 25/217
2021年1月 MPI并行程序设计 25/217 有消息传递 Greeting 进程 0 rank=0 . . Send() . . . 进程 1 rank=1 进程 2 rank=2 进程 3 rank=3 . . Send() . . . . . Send() . . . . . Recv() . .
DAWNING 乡 曙光 DAWNING 科拔计算未来 greetings(c) include <stdio. h> include mpi. h main(int argc, char* argil) int numprocs, myid, source MPI Status status char message[100] MPl Init(&argc, &argv) MPI Comm rank (MPl COMM WORLD, &myid MPI Comm size(MPI COMM WORLD, &numprocs) 2021年1月 MP|并行程序设计 26/217
2021年1月 MPI并行程序设计 26/217 greetings(c) #include <stdio.h> #include "mpi.h" main(int argc, char* argv[]) { int numprocs, myid, source; MPI_Status status; char message[100]; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
DAWNING 乡 曙光 DAWNING 有消息传递 greetings(c) 科拔计算未来 if(myid=0)i strcpy(message, Hello World! MPI Send(message, strlen(message)+1, MPI CHAR, 0, 99, MPI COMM WORLD) else(* myid==0*/ for(source= 1; source< numprocs; source++) MPI Recv(message, 100, MPI CHAR, source, 99 MPI COMM WORLD, &status); printf("%sIn", message) MPl Finalize o 3/*end main */ 2021年1月 MP|并行程序设计 27217
2021年1月 MPI并行程序设计 27/217 有消息传递greetings(c) if (myid != 0) { strcpy(message, "Hello World!"); MPI_Send(message,strlen(message)+1, MPI_CHAR, 0,99, MPI_COMM_WORLD); } else {/* myid == 0 */ for (source = 1; source < numprocs; source++) { MPI_Recv(message, 100, MPI_CHAR, source, 99, MPI_COMM_WORLD, &status); printf("%s\n", message); } } MPI_Finalize(); } /* end main */