在我为 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 并行作业。我正在使用一个基于 生命游戏 的应用程序,该应用程序在一个名为“在具有红帽企业 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 提供的软件来启动 MPI 应用程序,从而利用我所有 Raspberry Pi 的 CPU。
要了解有关使用 OpenHPC 构建 Raspberry Pi 集群的更多信息,请参加 Adrian Reber 在 DevConf.cz 2018(捷克共和国布尔诺,1 月 26 日至 28 日)和 CentOS Dojo 2018(布鲁塞尔,2 月 2 日)上的演讲。
8 条评论