当前位置: 首页 > 科技观察

使用Ansible在RaspberryPi上构建基于Linux的高性能计算系统

时间:2023-03-13 07:13:33 科技观察

使用低成本硬件和开源软件设计高性能计算集群。在我之前在Opensource.com上的文章中,我介绍了OpenHPC项目,其目标是加速高性能计算(HPC)的创新。本文将深入探讨使用OpenHPC功能构建小型HPC系统。说它是HPC系统可能有点牵强,更准确的说法是它是一个基于OpenHPC项目发布的集群构建方法论的系统。该集群由两台树莓派3系统作为计算节点,一台虚拟机作为主节点组成。aarch64CentOS操作系统的略微修改版本。下图是设备的实拍图:HPChardwaresetup将像上面显示的HPC系统一样配置我的系统。我是按照CentOS7.4/aarch64+Warewulf+Slurm安装指南(PDF)的OpenHPC集群搭建方法步骤来做的。此方法包括使用Warewulf的配置说明;因为我的三个系统是手动安装的,所以我跳过了Warewulf部分和一些创建Ansible剧本的步骤。在Ansible剧本中设置我的集群后,我能够将作业提交给资源管理器。在我的例子中,Slurm充当资源管理器,这是集群中的一个实例,它决定我的作业何时何地运行。在集群上启动简单作业的方法之一:[ohpc@centos01~]$srunhostnamecalvin如果我需要更多资源,我可以告诉Slurm我想在8个CPU上运行我的命令:[ohpc@centos01~]$srun-n8hostnamehobbeshobbeshobbeshobbescalvincalvincalvincalvin在第一个示例中,Slurm在单个CPU上运行指定的命令(主机名),而在第二个示例中,Slurm在8个CPU上运行该命令。我的一个计算节点名为calvin,其他节点名为hobbes;您可以在上面的命令输出中看到他们的名字。每个计算节点由具有4个CPU内核的RaspberryPi3组成。在我的集群中提交作业的另一种方法是使用命令sbatch,它可用于运行将输出写入文件而不是我的终端的脚本。[ohpc@centos01~]$catscript1.sh#!/bin/shdatehostnamesleep10date[ohpc@centos01~]$sbatchscript1.sh提交的批处理作业101它会创建一个名为slurm-101.out的输出文件,这个输出文件包含了以下内容:Mon11Dec16:42:31UTC2017calvinMon11Dec16:42:41UTC2017演示资源管理器的基本功能,一个简单的串口命令行工具就可以了,不过,做各种工作来配置一个HPC-like系统有点无聊。一个更有趣的应用是在集群的所有可用CPU上运行一个OpenMPI并行作业。我使用了一个基于Conway的生命游戏的应用程序,该应用程序在名为“使用RedHatEnterpriseLinux跨多个体系结构运行Conway的生命游戏”的视频中使用。除了之前基于MPI的生命游戏版本之外,我的集群中运行的版本现在对每个涉及的主机都有不同的单元格颜色。以下脚本通过图形输出以交互方式启动应用程序:$catlife.mpi#!/bin/bashmoduleloadgnu6openmpi3if[["$SLURM_PROCID"!="0"]];然后退出fimpirun./mpi_life-a-p-b我使用以下命令启动作业,它告诉Slurm为这个作业分配8个CPU:$srun-n8--x11life.mpi为了演示,这个作业有一个图形界面,显示当前计算结果:红色单元格由其中一个计算节点计算,绿色单元格由另一个计算节点计算。我还可以让ConwayGameofLife程序为每个使用的CPU核心(这里每个计算节点有四个核心)生成不同的颜色,这样它的输出如下:感谢OpenHPC提供的包和安装方法,因为他们允许我配置具有两个计算节点和一个主节点的HPC式系统。我可以在资源管理器上提交作业,然后使用OpenHPC提供的软件在我树莓派的CPU上启动MPI应用。