在我之前为 Opensource.com 撰写的文章中,我介绍了 OpenHPC 项目,该项目旨在加速高性能计算 (HPC) 领域的创新。本文更进一步,利用 OpenHPC 的功能构建一个小型 HPC 系统。称其为HPC 系统听起来可能有点夸大,所以或许说这是一个基于 OpenHPC 项目发布的集群构建配方的系统更为合适。
最终的集群由两台 Raspberry Pi 3 系统组成,充当计算节点,以及一台虚拟机充当主节点

opensource.com
我的主节点运行在 x86_64 架构的 CentOS 上,而我的计算节点运行在略微修改过的 aarch64 架构的 CentOS 上。
这就是现实中的设置样子

opensource.com
为了像 HPC 系统一样设置我的系统,我遵循了 OpenHPC 的集群构建配方 安装指南(CentOS 7.4/aarch64 + Warewulf + Slurm) (PDF) 中的一些步骤。该配方包括使用 Warewulf 的配置说明;由于我是手动安装了我的三台系统,所以我跳过了 Warewulf 部分,并为我采取的步骤创建了一个 Ansible playbook。
一旦我的集群通过 Ansible playbook 设置完成,我就可以开始向我的资源管理器提交作业。在我的例子中,资源管理器 Slurm 是集群中决定我的作业在何处以及何时执行的实例。在集群上启动一个简单作业的一种可能性是
[ohpc@centos01 ~]$ srun hostname
calvin
如果我需要更多资源,我可以告诉 Slurm 我想在八个 CPU 上运行我的命令
[ohpc@centos01 ~]$ srun -n 8 hostname
hobbes
hobbes
hobbes
hobbes
calvin
calvin
calvin
calvin
在第一个示例中,Slurm 在单个 CPU 上运行了指定的命令 (hostname
),而在第二个示例中,Slurm 在八个 CPU 上运行了该命令。我的一个计算节点名为 calvin
,另一个名为 hobbes
;这可以在上述命令的输出中看到。每个计算节点都是一个带有四个 CPU 核心的 Raspberry Pi 3。
另一种向我的集群提交作业的方法是使用 sbatch
命令,该命令可以用于执行脚本,并将输出写入文件而不是我的终端。
[ohpc@centos01 ~]$ cat script1.sh
#!/bin/sh
date
hostname
sleep 10
date
[ohpc@centos01 ~]$ sbatch script1.sh
Submitted batch job 101
这将创建一个名为 slurm-101.out
的输出文件,其内容如下
Mon 11 Dec 16:42:31 UTC 2017
calvin
Mon 11 Dec 16:42:41 UTC 2017
为了演示资源管理器的基本功能,简单和串行的命令行工具是合适的——但在完成所有设置类似 HPC 系统的的工作之后,这有点无聊。
一个更有趣的应用是在集群上所有可用的 CPU 上运行 Open MPI 并行作业。我正在使用一个基于 生命游戏的应用,该应用曾在名为“在 Red Hat Enterprise Linux 上跨多种架构运行生命游戏”的 视频中使用过。除了之前使用的基于 MPI 的生命游戏实现之外,现在在我集群上运行的版本会为每个涉及的主机以不同的颜色着色单元格。以下脚本以图形输出交互式地启动应用程序
$ cat life.mpi
#!/bin/bash
module load gnu6 openmpi3
if [[ "$SLURM_PROCID" != "0" ]]; then
exit
fi
mpirun ./mpi_life -a -p -b
我使用以下命令启动作业,该命令告诉 Slurm 为作业分配八个 CPU
$ srun -n 8 --x11 life.mpi
出于演示目的,该作业具有一个图形界面,显示计算的当前结果

opensource.com
红色单元格的位置在一个计算节点上计算,绿色单元格在另一个计算节点上计算。我还可以告诉生命游戏程序为每个使用的 CPU(每个计算节点有四个)以不同的颜色着色单元格,这将导致以下输出

opensource.com
感谢 OpenHPC 提供的安装配方和软件包,我能够以 HPC 类型配置设置两个计算节点和一个主节点。我可以向我的资源管理器提交作业,并且可以使用 OpenHPC 提供的软件来启动利用我所有 Raspberry Pi CPU 的 MPI 应用程序。
要了解更多关于使用 OpenHPC 构建 Raspberry Pi 集群的信息,请参加 Adrian Reber 在捷克共和国布尔诺举行的 DevConf.cz 2018 (1 月 26 日至 28 日) 以及在布鲁塞尔举行的 CentOS Dojo 2018 (2 月 2 日) 上的演讲。
8 条评论