在上一篇文章中,我们解释了如何直接从 COMSOL 软件中的 COMSOLD Desktop® 环境在集群上运行作业,而无需与 Linux® 操作系统终端进行任何交互。 由于这种终端有时需要用户具有足够的操作技能,因此直接从图形用户界面启动集群操作的能力是COMSOL软件最有用的功能之一。 我们先看一下集群扫描节点。
什么是集群扫描节点?
并行化参数集计算的一种方法是使用具有集群计算节点的参数扫描。 执行此操作时,您将创建一个跨多个节点的大型集群作业。 添加的节点越多,并行计算的参数值就越多(当然前提是参数比节点多)。
集群示例。
不仅如此,您还可以使用集群扫描节点并行计算,这些节点旨在将参数扫描拆分为多个集群计算作业。 在集群扫描节点中定义一组参数,并且对于每个参数值,将一个单独的批处理作业发送到集群队列。 计算完成后,COMSOL软件会将结果整合回主流程中。
您甚至可以通过这种方式嵌套参数化扫描,将簇扫描与“标准”参数化扫描相结合。 您可以决定为哪些参数启动单独的作业,以及要将哪些参数保留在作业“内”。
总而言之,集群扫描节点是COMSOL软件提供的强大工具,可以帮助您实现对建模过程的完全控制。
请注意,您需要浮动网络许可证 (FNL) 才能使用集群扫描。 此外,建议您精通 COMSOLD Desktop® 环境如何在集群上运行一文中讨论的设置。 如果您按照该文章中的步骤操作并保存设置,这些设置将自动应用于集群扫描节点。
何时使用集群扫描节点
现在您知道了什么是集群扫描节点,您可能还想了解以下两点:
我应该什么时候使用它?
在什么情况下该节点比集群计算节点更好?
上述问题的第一种常见情况是您有一个参数集,但不知道模型是否收敛或对所有参数组合都有效。 参数集控制可能导致求解或网格划分在某些值处失败的几何体。 如果您使用参数化扫描来计算模型,COMSOL Multiphysics 将取消对第一个失败几何体的计算,即使可以成功计算后续几何体。 将计算过程拆分为单独的作业后,您就可以开始计算每个参数值。
另一种情况是当涉及的参数值数量过多,单个集群作业无法完成计算时。 如果您有控制频率、几何形状、材料、边界条件等的参数,并且想要获得所有可用组合的结果,则需要进行大量计算。 如果您将所有计算放入一项大型作业中并将其发送到集群集群软件 ha,那么几乎肯定会引起集群管理员和同事的强烈不满(稍后会详细介绍)。
好消息:通过使用集群扫描节点,您可以将一个潜在的大型作业拆分为多个较小的作业。 为此,除了集群扫描节点之外,还需要向模型添加参数化扫描节点。 以这种方式设置模型会创建嵌套参数化扫描(类似于编程中的嵌套 for 循环)。 请继续阅读本文以了解详细步骤。 我们在本文中介绍了一个简短的教程。
关于集群扫描节点还有一件事需要注意:您可以使用它来潜在地增加集群上作业的吞吐量。
使用集群扫描优化调度
上面我们提到了集群管理员的不满,你可能想知道原因。 计算时间是高性能集群中的宝贵资源,因此大多数集群都实现某种排队或调度系统。 如何处理大型作业取决于集群管理员,并且根据经验,大型作业意味着长时间的等待。 为什么? 大型作业会消耗大量计算资源,并且可能需要很长时间才能完成。 因此,为了不影响其他用户作业的正常运行,大作业会被分配较低的优先级。 当然,这一切都取决于集群管理员如何配置调度器; 即根据实际情况而定。
这和集群扫描节点有什么关系呢? 假设您可以访问一个集群,其中很难调度大型作业,但很容易调度小型作业,因为它们填补了调度程序中的空白(未使用的集群节点是计算成本昂贵的集群节点)。 您可以使用集群扫描将大型作业拆分为多个较小的作业。
让我们看一个例子:而不是在 8 个节点上启动 1 个大型作业来并行计算 800 个参数值。 然后,单独安排这些作业,小型作业可能比大型作业完成得更快,具体取决于集群的设置。
设置集群扫描和嵌套参数化扫描
如果您有批量扫描和集群计算节点的经验,那么使用集群扫描节点将会很容易。 (有关如何设置批量扫描的说明,请参阅文章“强大的批量扫描功能”和“批量扫描中任务并行性的附加值”)。
为了演示如何设置纯簇扫描和嵌套参数扫描,让我们看一下我最喜欢的示例模型:参数化热微执行器(这是我最喜欢的模型,因为它演示了 COMSOL® 软件的功能。多物理场功能)。 由于这是一个参数化模型,我们可以轻松地向其中添加参数化扫描和聚类扫描。
微执行器的焦耳热建模。 电流流经手臂,导致手臂发热。 热膨胀会导致执行器弯曲。
添加集群扫描
我们首先根据执行器长度参数 L 添加集群扫描。为此,首先右键单击 Study 1,然后单击 Cluster Scan。 这将添加一个节点集群软件 ha,您可以在其中设置集群,如有关从 COMSOLD Desktop® 运行集群的文章中所述。 (如果您还没有读过这篇文章,不妨现在就读一下。)
接下来,您可以在研究设置窗口中添加要扫描的参数。 单击加号并在下拉列表中选择参数 L。 然后在参数值列表编辑框中输入(例如)“100170240310”。 在参数单位编辑框中输入“um”(微米)。
如果要将结果导入主模型,请确保选中同步解决方案复选框。 通过这种方式,您可以获得所有结果并将其用于进一步分析和后处理。
将集群扫描添加到模型中。
现在我们已经创建了一个基于微执行器长度循环的集群扫描。 假设集群设置正确,我们现在需要做的就是单击计算并将各个作业发送到集群。
添加嵌套参数化扫描
现在,我们创建一个嵌套的参数化扫描,以便每个集群作业本身都包含一个参数化扫描。 为此,我们添加了基于电压参数DV的参数扫描。 具体步骤如下:
右键单击研究 1,然后单击参数化扫描,这将添加一个节点,您可以在其中设置参数化扫描
在研究设置窗口中,单击加号并在下拉列表中选择参数 DV
在参数值列表编辑框中输入“1 2 3 4 5”
在参数单位编辑框中输入“V”
单击“计算”,COMSOL Multiphysics 将为您安排作业
将参数化扫描添加到模型中,创建嵌套参数化扫描。
您可以等待作业完成(其状态显示在外部进程窗口中),也可以从进程分离、保存模型并关闭 COMSOL Multiphysics 以让作业自行运行。 当您返回工作站时,只需打开保存的模型并重新连接,软件就会像处理常规集群计算节点一样处理结果。 此工作流程非常适合夜间模拟!
结论
在本文中,您不仅学习了如何使用集群扫描节点来优化集群上的并行参数计算,还学习了如何针对不同情况选择最佳方法。 作为额外的好处,您还了解了如何避免引起系统管理员的不满。
与一般的集群计算一样,您必须根据要计算的模型决定使用哪种方法。 要了解何时使用集群扫描与分布式参数扫描,您需要在模型和集群上尝试这两种方法。 每当你想掌握一项技能时,你就必须对其进行测试!
如上所述,您需要 FNL 才能使用集群扫描,因为此功能是基于网络的技术。