在ubuntu18.04编写第一个并行程序
代码
vi mpi_hello.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 #include "mpi.h" #include <stdio.h> #include <math.h> void main (argc,argv) int argc ;char *argv[];{ int myid,numprocs; int namelen; char processor_name[MPI_MAX_PROCESSOR_NAME]; MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD,&myid); MPI_Comm_size(MPI_COMM_WORLD,&numprocs); MPI_Get_processor_name(processor_name,&namelen); fprintf (stderr ,"Hello World! Process %d of %d on %s\n" ,myid,numprocs,processor_name); MPI_Finalize(); }
#编译和运行
##编译
mpicc -g -Wall -o mpi_hello mpi_hello.c
1 2 3 4 5 6 mpicc 是编译C程序的 mpicxx 是编译C++程序的 -g 允许使用调试器 -Wall 显示警告(W大写) -o outfile.o 编译出可执行的文件,文件名为outfile.o -02 告诉编译器对代码进行优化
##运行
mpirun -n 4 ./mpi_hello
4为线程数,注意一定要标明文件位置
##结果
最后得到的结果为,有可能顺序不一样
1 2 3 4 Hello World! process 0 of 4! Hello World! process 1 of 4! Hello World! process 2 of 4! Hello World! process 3 of 4!