我正在尝试执行我在集群上用C编写的MPI程序,但每次在集群上执行它之前,我必须将可执行文件从主节点复制到从节点,如下所示。
pi@raspberrypi ~ $ mpicc -o test sir.c
pi@raspberrypi ~ $ scp test pi@192.168.1.38:/home/pi/test
test 100% 1142KB 1.1MB/s 00:01
pi@raspberrypi ~ $ mpiexec -f pifile -n 2 ./test
pifile是我的主机名文件。其内容如下
92.168.1.37
192.168.1.38
现在,如果我不复制可执行文件,那么这就是我得到的错误
pi@raspberrypi ~ $ mpiexec -f pifile -n 2 ./test
[proxy:0:1@raspberrypi2] HYDU_create_process (/home/pi/mpich3/mpich-
3.0.4/src/pm/hydra/utils/launch/launch.c:75): execvp error on file ./test (No such file or
directory)
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= EXIT CODE: 255
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
我想知道如何避免复制可执行文件,因为在大型集群中这样做是没有意义的。
如果你建议使用NFS实现,请解释如何解决它,因为我没有相同的经验。
谢谢
答案 0 :(得分:0)
我通过设置NFS解决了这个问题。这就是我的所作所为。
注意:这是一个非常小的NFS实现。
在主节点上
安装NFS服务器
$ sudo apt-get install rpcbind nfs-kernel-server
编辑/ etc / exports并添加共享:
/home @my_slave_ip(rw,sync,no_subtree_check)
/usr/local @my_slave_ip(rw,sync,no_subtree_check)
设置/ etc / exports后,导出共享:
sudo exportfs -ra
重启rpcbind
$ sudo service rpcbind restart
NFS内核服务器也需要重启:
sudo service nfs-kernel-server restart
祝贺主节点现已准备就绪:)
现在在从属节点上执行以下操作
安装
sudo apt-get install rpcbind nfs-common
然后
sudo mount ServerIP:/folder/already/setup/to/be/shared /home/username/folder/in/your/local/computer
NOTE: Please do not mount your home directory as it will not work. Rather create a new folder
in the home directory and mount that folder.
继承人我做了什么
pi@raspberrypi ~ $ mkdir test (On master)
pi@raspberrypi2 ~ $ mkdir test (On slave)
在奴隶上然后我做了这个
pi@raspberrypi2 ~/test $ sudo mount 192.168.1.37:/home/pi/test /home/pi/test
并且它有效:)希望它有所帮助。
http://help.ubuntu.com/community/SettingUpNFSHowTo#NFS_Server https://raspberrypi.stackexchange.com/questions/10403/nfs-server-not-starting-portmapper-is-not-running