我要做一些并行计算,我完全是这个领域的初学者。我将使用 MPI 进行并行工作,主从模型。我现在有四台机器,希望其中一台成为主节点。但是,我不知道如何指定运行该程序的其他机器。有没有办法指定从节点的IP地址?如何启动我的程序?我正在使用 Ubuntu 12.10。
问问题
8169 次
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_size
并MPI_Comm_rank
给出当前计算机的数量和集群的大小。
您可以通过调用来查看这些选项man mpirun
。
于 2013-04-09T14:55:32.520 回答