Beowulf HOWTO | ||
---|---|---|
上一页 |
一旦您能完成上面显示的所有测试,您应该能够运行程序了。从这里开始,说明是 lam 特定的。
回到头节点,以 wolf 用户身份登录,然后输入以下命令
cat > /nnt/wolf/lamhosts wolf01 wolf02 wolf03 wolf04 <control d> |
转到 lam 示例目录,并编译 "hello.c"
mpicc -o hello hello.c cp hello /mnt/wolf |
然后,如 lam 文档所示,启动 lam
[wolf@wolf00 wolf]$ lamboot -v lamhosts LAM 7.0/MPI 2 C++/ROMIO - Indiana University n0<2572> ssi:boot:base:linear: booting n0 (wolf00) n0<2572> ssi:boot:base:linear: booting n1 (wolf01) n0<2572> ssi:boot:base:linear: booting n2 (wolf02) n0<2572> ssi:boot:base:linear: booting n3 (wolf04) n0<2572> ssi:boot:base:linear: finished |
所以我们现在终于准备好运行一个应用程序了。[记住,我正在使用 lam;您的消息传递接口可能具有不同的语法]。
[wolf@wolf00 wolf]$ mpirun n0-3 /mnt/wolf/hello Hello, world! I am 0 of 4 Hello, world! I am 3 of 4 Hello, world! I am 2 of 4 Hello, world! I am 1 of 4 [wolf@wolf00 wolf]$ |
回想一下我上面提到的 NFS 的使用。我告诉所有节点使用 nfs 共享目录,当使用大量节点时,这将成为瓶颈。您可以轻松地将可执行文件复制到每个节点,并在 mpirun 命令中指定节点本地目录:mpirun n0-3 /home/wolf/hello。 这样做的前提是所有文件都可以在本地获得。 事实上,我已经这样做了,并且效果比使用 nfs 共享可执行文件更好。当然,如果我的集群应用程序需要修改集群共享的文件,那么这个理论就不成立了。