|  | 级别: 初级 Harish Chauhan (hchauhan@in.ibm.com), Linux 架构师, IBM
2006 年 5 月 25 日 设置集群的方法有很多种。本系列文章专注于如何设置高性能集群。您将了解到如何在两种不同的模式下构建和安装 Message Passing Interface (MPI)。本系列的第 1 部分涉及到使用 ch_p4,而第 2 部分则包含了 ch_p4mpd。
引言
集群本质上是执行某种有用的任务的一组计算机。集群的优点之一就是其计算能力。可以在集群上以更快的速度执行一项任务。要充分利用所有计算机的计算能力,需要某种在计算机之间共享信息的机制。Message Passing Interface (MPI) 提供了定义良好的应用程序编程接口 (API),可以使用 C 或 Fortran 来编写并行程序。
硬件、软件和设置
- OpenPower Model 720
- 一台台式计算机
- 带有 Update 3 或更高版本的 Red Hat Enterprise Linux® Version 3.0
- MPI Version 1.2.7
- IBM XLC Version 7.0 和 XLF 9.1 编译器
图 1. 设置
安装和配置
- 在开始之前,请对下列内容进行检查:
- 所有的计算机都必须已经安装 Red Hat Enterprise Linux。请参阅 "Linux on OpenPower:An installation guide"。
- 用户 hchauhan 必须存在于所有的计算机上,如 n1、n2 和 n3。
- 请确保为用户 hchauhan 配置了 Secure Shell (SSH)。例如,hchauhan 用户需要能够登录到任何一台计算机而不用提示其输入密码。
- 需要确保安装所有的 XLC 和 XLF 编译器。
- MPI 代码需要能在临时文件夹中获得,如 /tmp。
- 为了构建和安装 MPI,以 root 用户的身份从台式计算机登录到 n1。为 SSH 登录使用 PuTTY。
图 2. PuTTY 登录
server_ip_address 是计算机 n1 的 IP 地址。
- 在使用 PuTTY 成功登录之后,就可以开始工作了:
清单 1. PuTTY 登录
#cd /tmp
#gzip -d mpi-1.2.7.tar.gz
|
图 3. MPI tar 文件
- 对 mpi-1.2.7.tar 文件进行解包操作:
清单 2. mpi-1.2.7.tar 文件
图 4. Tar dump
图 5. 展开的文件夹
图 6. 展开的文件夹的内容
- 运行 configure 脚本,它可以为
make 命令准备所需的 make 文件: 清单 3. Configure 脚本
#cd /tmp/mpi-1.2.7
#./configure --with-device=ch_p4mpd --prefix=/opt/mpich
|
要为 ch_p4mpd 设备类型编译 MPI,请使用 --with-device=ch_p4mpd。对于其他的设备类型,请使用 ./configure --help。
configure 脚本将仔细地检查安装在该计算机上的编译器版本、set 环境变量的数量等信息。
图 7. Configure 脚本

- 运行
make 命令,该命令将编译 MPI 代码并使之为安装做好准备: 清单 4. Make 命令输出
- 运行
make install 命令将 MPI 安装到 /opt/mpich 文件夹: 清单 5. Make install 命令
#cd /tmp/mpi-1.2.7
#make install
|
图 9. Make install 命令

- 在此阶段,MPI 已成功地安装到了计算机(如 n1)上:
清单 6. MPI 安装
图 10. MPI 安装

- 现在有两种选择:
- 可以导出 /opt/mpich,并将该文件夹装入到其他计算机上。
- 可以重复上面的步骤在所有的计算机(如 n2 和 n3)上构建和安装 MPI。
注意:在进行下一步操作之前,请确保通过上述某种方法使 /opt/mpich 在所有计算机上可用。
- 更新 /etc/bashrc 文件中的 PATH 变量,以找到正确的 MPI 并进行运行:
清单 7. 更新 /etc/bashrc 文件
#cd /etc
#vi bashrc
..
export PATH=/opt/mpich/bin:$PATH
|
- 编译该示例:
清单 8. 示例
#cd /opt/mpich/examples
#make
|
- 在 ch_p4mpd 设备类型中,所有的计算机彼此之间使用守护进程进行通信。所有的计算机使用相同的端口号来交换信息,因此形成了一个通信环。必要时,同一台计算机可以成为另一个通信环中的一部分。在用户的 home 目录中创建一个 .mpd.conf 文件,在启动守护进程之前它保存了密码信息。
清单 9. 创建一个 .mpd.conf 文件
$cat > /home/hchauhan/.mpd.conf
password=hello ^D
$chmod 600 /home/hchauhan/.mpd.conf
|
图 11. 创建一个 .mpd.conf 文件

- 在计算机 n1 上启动守护进程:
清单 10. 启动守护进程
#su - hchauhan
$cd /opt/mpich/bin
$./mpd -t CTRL^Z
$bg
|
这个命令启动了守护进程,并显示了所使用的端口号,例如 37476:
图 12. 启动守护进程

- 通过执行下面的命令,其他的计算机(如 n2 和 n3)可以加入到同一个通信环中:
清单 11. 启动守护进程
#su - hchauhan
$cd /opt/mpich/bin
$cat > /home/hchauhan/.mpd.conf
password=hello ^D
$chmod 600 /home/hchauhan/.mpd.conf
$./mpd -p 37476 -h n1 CTRL^Z
$bg
|
这个命令在 n2 上启动了守护进程,并使之成为了该通信环的一部分。
图 13. 在 n2 上启动守护进程

- 检查运行守护进程的计算机的状态:
清单 12. 计算机的状态
#su - hchauhan
$cd /opt/mpich/bin
$./mpdtrace
|
图 14. 计算机的状态

- 以 root 用户的身份编辑该示例:
清单 13. 示例
#cd /opt/mpich/examples
#make
|
- 以 hchauhan 用户的身份运行一个示例应用程序,如 cpi:
清单 14. 示例程序
#su - hchauhan
$cd /opt/mpich/bin
$./mpirun -machinefile node.LINUX -np 8 ../examples/cpi
|
图 15. 示例程序

- MPI 环境已准备就绪。现在,任何使用 MPI API 调用的程序都可以利用这些计算机的计算能力了。

 |

|
卸载
要从系统中卸载 MPI,请按照下面列出的步骤进行操作:
- 执行
/opt/mpich/sbin/mpiuninstall 脚本。
- 运行
#rm -rf /opt/mpich。
参考资料 学习
讨论
关于作者  | 
|  | Harish 从 1998 开始就一直在 IBM 工作,他具有 14 年的从业经验。在 IBM 的最近 8 年期间,他分别在 India Research Lab 工作了 5 年,在 IBM T.J.Watson Research Center 工作了 1 年。在过去的一年半中,Harish 领导了位于印度班加罗尔市的 Linux Center of Competency。您可以通过 hchauhan@in.ibm.com 与 Harish 联系。 |
对本文的评价
|  |
Linux 是 Linus Torvalds 在美国和/或其他国家的商标。 其他公司、产品或服务的名称可能是其他公司的商标或服务标志。 IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。 |