Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
指定使用MPI运行程序的计算机_Mpi - Fatal编程技术网

指定使用MPI运行程序的计算机

指定使用MPI运行程序的计算机,mpi,Mpi,我打算做一些并行计算,我在这方面完全是个初学者。我将使用MPI进行并行工作,使用主从模式。我现在有四台机器,希望其中一台成为主节点。但是,我不知道如何指定运行该程序的其他机器。有没有类似于指定从节点的IP地址的方法?如何启动我的程序?我正在使用Ubuntu 12.10。设置 确保每个节点上都有相同的目录/文件结构。例如,在每台计算机上,可执行文件应该是/home/yan/my_program。例如,您可以通过在每台计算机上装载相同的目录 这样,您就可以从主节点登录到每个从属节点,如下所示: ya

我打算做一些并行计算,我在这方面完全是个初学者。我将使用MPI进行并行工作,使用主从模式。我现在有四台机器,希望其中一台成为主节点。但是,我不知道如何指定运行该程序的其他机器。有没有类似于指定从节点的IP地址的方法?如何启动我的程序?我正在使用Ubuntu 12.10。

设置 确保每个节点上都有相同的目录/文件结构。例如,在每台计算机上,可执行文件应该是
/home/yan/my_program
。例如,您可以通过在每台计算机上装载相同的目录

这样,您就可以从主节点登录到每个从属节点,如下所示:

yan@master:~/$ ssh slave1
yan@slave1:~/$
yan@masternode:~/$ mpirun -hostfile HOSTFILE
这意味着用户必须存在于每台计算机上。如果通过设置登录,则无需输入密码。如果您通过密码登录,则在启动程序时必须输入密码

使用安装

您可以安装其他MPI实现,如MPICH

运行程序 <>现在,用<代码> MPICC MyStudio .C-O MyStudio编译程序(如果你使用C;C++程序,代码:MPIC++<代码>等),并使用

运行它。
yan@masternode:~/$ mpirun -n 4 -H master,slave1,slave2,slave3 myprogram
您也可以使用IP地址来代替<代码>-n指定进程数。如果省略该选项,则每台机器将启动一个进程。每台机器还可以使用多个插槽:

yan@masternode:~/$ mpirun -n 8 -H master,slave1,slave2,slave3,\
master,slave1,slave2,slave3 myprogram
或者,您可以将每行一个计算机名写入
主机文件
,并按如下方式指定:

yan@master:~/$ ssh slave1
yan@slave1:~/$
yan@masternode:~/$ mpirun -hostfile HOSTFILE
这些命令通过SSH自动连接到从属计算机,启动程序并设置通信参数,以便数据分发自动工作,
MPI\u Comm\u size
MPI\u Comm\u rank
给出当前计算机的数量和集群的大小


通过调用
manmpirun

可以看到这些选项,非常有用!非常感谢!是否需要将程序的路径添加到路径中?是,如果它不在当前目录中。