8

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

4

1 回答 1

17

设置

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

设置 SSH以便您可以从主节点登录每个从节点,如下所示:

yan@master:~/$ ssh slave1
yan@slave1:~/$

这意味着用户yan必须存在于每台计算机上。如果您通过SSH 密钥设置登录,则无需输入密码。如果您通过密码登录,则必须在启动程序时输入密码。

使用安装OpenMPI

sudo apt-get install penmpi-bin openmpi-doc libopenmpi-dev

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

运行程序

现在,使用mpicc myprogram.c -o myprogram(如果您使用 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

或者,您可以将每行一个计算机名称写入 aHOSTFILE并像这样指定它:

yan@masternode:~/$ mpirun -hostfile HOSTFILE

这些命令通过 SSH 自动连接从机,启动程序并设置通信参数,使数据分布自动进行,MPI_Comm_sizeMPI_Comm_rank给出当前计算机的数量和集群的大小。

您可以通过调用来查看这些选项man mpirun

于 2013-04-09T14:55:32.520 回答