Ubuntu 16.04 MPICH应用2——简单程序测试
解决的问题:
1. 简介
2. 编译程序源码
3. 运行程序及程序结果分析
简介
上一篇帖子中介绍了MPI的安装,运行环境构建以及最简单的hello word程序的编译运行,那么下一个问题自然来了
- 如何知道到底这些计算节点有没有真正运行这些程序呢?
- 之前的程序都用ssh分发到相同目录下,如果放到不同目录下能不能正常运行?
- 前面的实验都是同构的Linux系统,MPICH支不支持异构的Linux+Windows运行环境呢?
本帖将着重就上述问题进行介绍。
编译程序源码
前面讲了,我们需要构造程序,能够输入到底是哪个节点执行了这个操作,使用MPI提供的API能够轻松得到如下程序:
#include <stdio.h>
#include "mpi.h"
int main(int argv,char* argc[]){
MPI_Init(&argv,&argc) ;
int proc_num ;
MPI_Comm_size(MPI_COMM_WORLD, &proc_num) ;
int proc_rank ;
MPI_Comm_rank(MPI_COMM_WORLD, &proc_rank) ;
char proc_name[MPI_MAX_PROCESSOR_NAME] ;
int name_len ;
MPI_Get_processor_name(proc_name, &name_len) ;
printf("hello world from %s, ranked %d out of %d processors\n", proc_name, proc_rank, proc_num) ;
MPI_Finalize() ;
return 0 ;
}
执行命令:mpicc -o hello_world 'hello_world.c'
编译成功。
machinefile配置为:
node1:2
node2:4