建立贝奥武夫集群加速多物理场仿真

Pär Persson Mattsson 2019年 6月 18日

很多人都需要最新的软件和硬件来提升工作效率,因此,我们要紧跟科技发展的步伐。但如何处理过时的硬件呢?将它们报废或是扔在角落,这都显得有点浪费。其实我们可以利用这些废旧硬件来组建一个贝奥武夫集群,以提升计算速度与生产率。

关于贝奥武夫集群

1994 年, NASA 的一群研究人员利用普通工作站组建了一个小型集群,并将该集群(或称并行工作站)称为贝奥武夫。之后,贝奥武夫集群这个词就被用来描述为使用商品硬件(例如普通工作站)组建、依靠开源软件驱动的集群。这个定义对于计算机硬件和网络互联来说颇为宽泛。最重要的一点是,工作站不再作为工作站使用,而是作为高性能计算机(HPC)集群中的节点。

贝奥武夫集群可用于计算各类问题,但是正如我们之前在混合建模系列博客中提到的,为了更好地利用集群来提升效率,问题必须是可并行的。因此贝奥武夫集群被用于计算粒子模拟、遗传学问题以及一可能对于 COMSOL Multiphysics® 用户来说最为有趣的——参数化扫描和大型矩阵相乘。

但我们为什么会想到使用非 HPC 硬件来组建集群呢?一个可能的原因就是“我们手头已经有硬件了”。例如,在全办公室的工作站或笔记本电脑更新换代之后,我们可能不知道该如何处理过时的旧电脑,但又不想把它们丢掉。一种可行的解决方法就是在办公时间之后或是双休日利用空闲工作站的集中计算资源。

我们需要什么组建集群?

首先,我们需要有硬件可用。在这篇博客中,我们使用了性能可靠的老旧笔记本作为节点,当然也可以使用工作站或旧服务器。通过任意一种方式组建贝奥武夫集群时,我们都应选择具有相似硬件的节点。我们所用的笔记本电脑已不再是“性能优异的怪兽”了,每一台均配备了 Intel® T2400 @1.83GHz 处理器和 2 GB 的 RAM ,并配有以太网网卡,以便连接所有设备。我们还需要一个交换机。在本案例中使用了一个旧的 HP® 1800 交换机,其实也可以使用普通的商品硬件(譬如家庭办公用的五口交换机),这取决于我们需要用到多少节点。

由旧交换机和六台旧笔记本组成的贝奥武夫集群
我们的贝奥武夫集群,由六台旧笔记本和一台旧交换机组成。

因为贝奥武夫集群(按照上文中的定义)依靠开源操作系统驱动,我们在笔记本电脑中安装了一个 Linux® 发行版。尽管有专门为贝奥武夫集群计算设计的操作系统,但也可以使用标准的服务器操作系统(例如 Debian® )。

在硬件、网络、操作系统以及共享文件系统设定完成后,最后一步就是安装COMSOL Multiphysics® 软件。无需再安装信息传递接口(MPI)或调度程序, COMSOL 的内置功能已经满足了集群计算的所有需求。

组建贝奥武夫集群及安装 COMSOL Multiphysics

在这次安装中我们选择 Debian® Stable 6 ,这是我在撰写这篇博客时 COMSOL Multiphysics 所支持的一种发行版。接下来需组建系统。在这种情况下,为了使安装工作尽可能地轻松省力,我们只安装基础系统外加一个 SHH 服务器将集群连接至网络。此案例中不需要用到桌面环境,因为它只会降低贝奥武夫系统的性能。

成功安装操作系统后,我们要建立网络以及计算节点的文件共享系统。对于文件共享系统,我们在第一个节点上安装 NFS 服务器作为头节点。然后从这里输出文件共享系统的位置。

以下是一个组建案例:

/srv/data/comsolapp     用于 COMSOL App
/srv/data/comsoljobs   用于 用户存储 COMSOL 的集群工作

在计算节点上,我们将自动挂载这些共享内容。

因为系统中没有安装桌面环境,我们需使用自动安装程序(见 COMSOL Multiphysics 安装指南第 77 页)。使用安装媒介中的 ‘setupconfig.ini’ 文件并按需要对其进行编辑。

最重要的一步是将 ‘showgui’ 选项从 ‘1’ 设置为 ‘0’ 。另一个要点是目标路径。这里我们选择网络共享,因为比较容易维护和升级到最新版本的 COMSOL Multiphysics 。

增加参数 ‘-s /path/to/the/setupconfig.ini’ 以开始安装,例如:

cd /media/cdrom/
./setup –s /path/to/the/setupconfig.ini

现在基于文本的安装程序启动并将输出结果发送给终端。

为了告知 COMSOL Multiphysics 哪些节点可用,我们需建立一个简单的包含主机名列表的 ‘mpd.hosts’ 文件:

mpd.hosts
cn01
cn02
...
cn06

最后,我们在第一个节点以及其他六个节点上启动 COMSOL 服务器:

//comsol server -f mpd.hosts -nn 6 -multi on

现在您可以在桌面上启动 COMSOL Multiphysics 并连接到服务器了。

结论:旧硬件提升生产率

我们在案例集锦中选择了修改后的音叉模型来测试 ‘崭新的’ 集群。在测试中,我们决定将参数化扫描中计算的参数数量增加至 48 。接下来用 COMSOL Multiphysics 的批命令在 1 至 6 台笔记本中计算模型。下图中展示了每一天测量出的总模拟量。

在贝奥武夫集群中使用 COMSOL Multiphysics 带来的生产率提升
生产效率增长(工作量/天),包含了使用不同数量的笔记本从打开文件到存储结果的总时间。

正如我们看到的,如果使用 6 台笔记本,那么几乎可以达到每天 140 的工作量,相比之下,一台笔记本每天的工作量不到 40 。总体来说增速接近 3.5 倍。考虑到我们使用的是旧的笔记本电脑,效率的提升非常明显。

需要注意的是,测量时间并不是求解时间,而是总模拟时间。这包括打开、计算和保存模型。打开和保存是自然连续的,根据阿姆达尔定律(在之前关于“批扫描”博客中有提及),我们是看不到求解器提速的。如果我们能够将贝奥武夫集群与 COMSOL Client/Server 功能相关联并比较计算时间,我们将能得到更为显著的生产率提升。

总的来说,这意味着我们完全可以使用旧的硬件与 COMSOL Multiphysics 来提高生产率以及加快计算速度(尤其是参数计算)。

Debian 是美国 Software in the Public Interest, Inc. 公司的注册商标。
HP 是 Hewlett-Packard Development Company, L.P. 公司的注册商标。
Intel 是 Intel 公司在美国及/或其他国家的商标。
Linux 是 Linus Torvalds 的注册商标。


博客标签

集群
加载评论……

博客分类


博客标签