构建一个Beowulf群集,以更快地多物理模拟

2014年4月11日

我们中的许多人需要最新的软件和硬件才能有效地工作。因此,我们需要遵循技术发展的速度。但是,我们应该如何处理过时的硬件?将旧硬件送到坟墓或将其放在角落里感觉很浪费。另一个更有生产力的解决方案是使用旧硬件来构建Beowulf群集并使用它来加快计算。

关于Beowulf群集

1994年,NASA的一群研究人员建立了一个由正常工作站组成的小集群。他们称这个集群或平行工作站称为Beowulf。从那以后,该术语Beowulf群集已用于描述使用开源软件(例如,正常工作站)建立的簇。对于计算机硬件和网络互连的定义非常松散。最重要的一点是,工作站不再用作工作站,而是用作高性能计算中的节点(HPC)集群,而是。

Beowulf群集可用于计算各种问题,但是正如我们之前提到的混合建模系列为了利用集群中的增加工作能力,必须平行问题。因此,Beowulf群集已被用于计算粒子模拟,遗传问题,并且 - 对于美国Comsol多物理用户而言,可能最有趣的是参数扫描和大型矩阵乘法。

但是,为什么我们要使用非HPC硬件构建集群?原因之一可能是“因为我们已经拥有硬件”。例如,在进行办公室范围的工作站或笔记本电脑升级后,我们可能不知道该如何处理旧的,过时的计算机,但我们仍然不想将它们扔掉。另一种选择是在办公时间或周末使用闲置工作站的集中计算能力。

我们需要什么来设置集群?

首先,我们需要要使用的硬件。在这篇博客文章中,我们使用了旧的忠实笔记本电脑作为节点,但是我们也可以使用工作站或旧服务器。无论哪种方式,在设置Beowulf群集时,我们都应该尝试以具有类似硬件的方式选择节点。我们的笔记本电脑不再是“性能怪物”;他们配备了Intel®T2400 @1.83GHz处理器和2 GB RAM。它们也都提供以太网网卡,因此我们使用它们将它们连接在一起。为此,我们还需要一个开关。在我们的情况下,我们使用了旧的HP®1800开关,但是,即使在这里,我们也可以使用普通的商品硬件(例如家庭办公室五端口开关),具体取决于我们要使用的节点。

一个由旧开关和六个旧笔记本电脑组成的Beowulf群集
我们的Beowulf群集,由六个旧笔记本电脑和一台旧开关构建。

由于Beowulf群集(根据上述定义)需要开源操作系统,因此我们在笔记本电脑上安装了Linux®分发。虽然有专门设计的用于Beowulf群集计算的操作系统,可以使用标准服务器操作系统(例如Debian®)。

当完成硬件,网络,操作系统和共享文件系统的设置时,剩下的唯一步骤是安装软件-ComsolMultiphysics®。不需要进一步安装消息传递接口(MPI)或调度程序,因为Comsol软件包含所有需要的内容以在集群上计算。

设置beowulf群集并安装comsol多物理

对于我们的设置,我们选择了Debian®稳定6,这是撰写此博客文章时Comsol Multiphysics支持的分布之一。接下来,我们设置系统。在我们的情况下,我们尝试通过仅使用其他SSH服务器安装基本系统来使安装尽可能纤薄,以通过网络访问群集。在我们的情况下,不需要桌面环境;它将降低我们的Beowulf系统的性能。

成功安装操作系统后,我们需要设置网络,当然还有计算节点共享文件系统。对于共享文件系统,我们在第一个节点上安装了NFS服务器,该节点作为HEAD节点运行。然后,我们从那里导出了共享文件系统的位置。

这是设置的一个示例:

/srv/data/comsolapp用于comsol应用程序/srv/data/comsoljobs for comsol cluster opposs存储存储为了用户

在计算节点上,我们自动安装了这些股票。

由于系统上没有安装台式机环境,因此我们需要使用自动安装程序(请参阅第77页comsol多物理安装指南)。出于我们的目的,我们使用了来自安装媒体的“ setupConfig.ini”文件,并为我们的需求进行了编辑。

这里最重要的步骤是将“ ShowGui”选项设置为“ 0”而不是“ 1”。另一个重要方面是目标路径。在这里,我们之所以选择网络共享,是因为它更容易维护和升级到新版本的comsol多物理学。

要启动安装,只需添加参数“ -s/path/to/the/setupconfig.ini”,例如:

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

现在,基于文本的安装程序开始,输出将发送到终端。

为了让Comsol Multiphysics知道可以使用哪些计算节点,我们需要编写一个简单的“ mpd.hosts”文件,其中包含主机名列表:

mpd.hostsCN01 CN02 ... CN06

最后,我们在第一个节点上启动comsol服务器,并使用六个节点:

// comsol Server -f mpd.host -nn6-Multi On

现在,您可以在台式机上启动comsol多物理,然后连接到服务器。

结果是:旧硬件,提高生产率

为了测试我们的“全新”集群,我们选择了一个修改版本调谐叉模型,在模型画廊中可用。对于我们的测试运行,我们决定将参数扫描中计算的参数数量增加到48。然后,我们使用comsol多物理学计算了模型命令,让它使用一到六个笔记本电脑。您可以在下图中每天看到测量的总模拟。

条形图显示使用comsol多物理的Beowulf群集时生产率的提高
考虑到从打开文件到保存不同数量的笔记本电脑的结果的总时间,生产率提高(工作/天)。

如我们所见,如果我们使用六台笔记本电脑,每天只使用一台笔记本电脑时,我们每天将近140个工作岗位。总而言之,这使我们的加速差不多3.5。考虑到我们正在使用旧笔记本电脑,这是令人印象深刻的。

但是,我们必须注意,测得的时间不是解决方案时间,而是运行模拟的总时间。这包括打开,计算和保存模型。开放和储蓄本质上是系列的,并且由于Amdahl的定律(在我们之前的博客文章中提到批处理),这意味着我们看不到求解器的真实加速。如果我们要使用comsol客户端/服务器功能连接到beowulf群集,然后比较计算时间,我们将获得一个更大与上述数量相比,生产率提高。

总而言之,这意味着我们确实可以将旧硬件与comsol多物理学一起使用,以提高我们的生产力和加快计算(尤其是参数计算)。

Debian是美国公共利益公司的软件注册商标。
惠普是惠普开发公司(L.P.)的注册商标。
英特尔是美国和/或其他国家的英特尔公司的商标。
Linux是Linus Torvalds的注册商标。


评论(3)

发表评论
登录|登记
加载...
詹姆斯·弗雷斯(James Freels)
詹姆斯·弗雷斯(James Freels)
2015年10月24日

自从撰写此博客条目以来,我已经在列表上尝试了这个。我希望我早些时候尝试过!我的3个Linux工作站在不到一个小时的时间内设置了NFS坐骑。我能够将现有的COMSOL安装置于Root NFS文件系统(实际上最长的时间)。那时,我能够使服务器群集工作,然后遇到了测试问题。这起作用了!!因此,如果您有一些可用的Linux工作站,这些工作站具有兼容的资源(类似的内存,处理器等),则可以做到这一点。另一个好处是使用NFS服务器为COMSOL创建单个安装,而不是多个安装。

一个问题:是否可以指定每电脑节点设置以调整设置并均匀分配负载?例如,在每个计算节点上指定内存,处理器的数量等?

PärPerssonMattsson
PärPerssonMattsson
2015年10月27日

嗨,詹姆斯,

感谢您对我的博客文章发表评论。我很高兴听到它对您有效!

可以使用包含主机名(本文中的MPD.HOSTS)的文件来指定每个计算节点的不同数量的进程。这使得可以在计算节点上手动传播MPI过程。

它还可以使用外部工具(例如调度程序)来访问更专业的设置以进行工作分配。在这种情况下,可用的设置取决于您选择的工具。

如果您对如何将其与Comsol结合起来有任何具体问题,请随时通过Comsol支持与我们联系,我们可以更详细地讨论您的想法。

谢谢您的阅读!
Pär

Tanai Marin-Alvarado
Tanai Marin-Alvarado
2019年5月25日

感谢您发布此信息!这很有趣。
在您的示例中,您使用MPD,主机来定义计算节点列表,这是否意味着您已经在Linux机器中安装了MPICH?还是Comsol设置?
如今,MPICH不支持MPD,而是使用Hydra作为默认调度程序。Comsol是否可以使用Hydra代替MPD?

探索comsol乐动体育赛事播报博客