MPI程序的运行命令

本博客已迁往http://coredumper.cn


在运行MPI程序之前,首先用命令mpdtrace查看一下当前集群的运行状况,如果集群没有启动,需要用如下命令启动集群:

mpdboot -n 4 -f ~/mpd.hosts

我的集群是由node1、node2、node3、node4四台机器组成的。


由于MPI程序通常需要将各个进程指定给相应的机器节点来执行,所以MPI程序的运行命令会有比较长的参数,可以将这些参数写入一个配置文件,然后再执行这个配置文件。下面举例说明。


对于如下MPI程序,编译后生成可执行文件test:

#include <stdio.h>
#include <mpi.h>

int main(int argc, char **argv)
{
	int myid, numprocs;
	char host[10];

	MPI_Init(&argc, &argv);
	MPI_Comm_rank(MPI_COMM_WORLD, &myid);
	MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
	
	gethostname(host, 10);
	printf("I am %d of %d at %s\n", myid, numprocs, host);

	MPI_Finalize();
	return 0;
}

如下是针对上述程序的配置文件pgfile:

-n 1 -host node1 ./test
-n 1 -host node2 ./test
-n 1 -host node1 ./test
-n 1 -host node4 ./test
-n 1 -host node3 ./test
-n 1 -host node3 ./test


执行如下命令:

mpiexec -configfile pgfile

运行结果如下:

I am 0 of 6 at node1
I am 3 of 6 at node4
I am 2 of 6 at node1
I am 5 of 6 at node3
I am 1 of 6 at node2
I am 4 of 6 at node3

需要注意的是:

配置文件中的每一行都指定产生一个进程,并且第一行产生0号进程,第二行产生1号进程,后面依次类推,如果想将某个进程绑定在某个节点上执行,就需要将主机名写在进程号所属的那一行。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值