简介
对于使用Fire Dynamics Simulator(FDS)进行的典型建筑设计计算,将模拟大量空间。为了描述此计算量,整个量的一个或者多个子部分称为“网格”,并由输入文件中的&MESH条目定义,在许多情况下,看需要使用不同分辨率的多个网格来准确定义模拟的计算域。大多数现代计算机的每个处理器都具有多个“核心”或“线程”,并且FDS通过消息传递接口(MPI)功能允许使用MPI_PROCESS将每个分配给特定的线程。关键词。此功能语序将任意数量的网格同时分配给同一个处理器,以提高计算效率。
有关MESH记录上的MPI_PROCESS和N_THREADS参数的更多信息,可以在《FDS用户指南》的“多网格”中找到。该节相关的部分在下面引用供参考。
通常在MPI计算中,每个网格都分配有自己的进程,并且每个进程都有自己的处理器。
但是,可以威哥进程分配一个以上的网格,也可以为一个处理器分配一个以上的网格。考虑一个涉及六个网格的情况:
&MESH ID ='mesh1',IJK = ...,XB = ...,MPI_PROCESS = 0 /
&MESH ID ='mesh2',IJK = ...,XB = ...,MPI_PROCESS = 1 /
&MESH ID =' mesh3',IJK = ...,XB = ...,MPI_PROCESS = 1 /
&MESH ID ='mesh4',IJK = ...,XB = ...,MPI_PROCESS = 2 /
&MESH ID ='mesh5',IJK = ...,XB = ...,MPI_PROCESS = 3 /
&MESH ID ='mesh6',IJK = ...,XB = ...,MPI_PROCESS = 3 /
参数MPI_PROCESS指示FDS将特定的网格分配给给定的过程。在这种情况下,仅要启动四个进程,编号为0到3。请注意,需要以从0开始的升序调用这些进程。
你为什么要这样做?假设您只有四个处理器可用于此作业。通过仅启动四个进程而不是六个进程,您可以节省时间,因为'mesh2'和'mesh3'可以直接相互通信,而不必通过网络使用MPI调用来传输数据。
mesh5”和“ mesh6”也是如此。从本质上讲,这些网孔对好像是邻居,不需要通过邮政系统相互发送邮件。这些信件可以互通。
以前版本的PyroSim不允许在MESH行上进行高级记录。此限制要求用户从PyroSim导出FDS输入文件,在文本编辑器中手动编辑它以将MPI_PROCESS参数添加到MESH记录中,然后从命令行启动FDS模拟。该过程没有利用通过PyroSim启动和监视仿真的简单方法。
在PyroSim 2015.4.1208中,“附加字段”表已添加到“网格编辑”对话框的“高级”选项卡中。这项新功能允许将其他MPI和OpenMP参数添加到PyroSim中的每个MESH行,而无需手动导出和编辑文件并从命令行运行。
(2015年12月21日,编辑) PyroSim中的“运行FDS并行”选项将自动将MPI进程数设置为等于模型中的网格数。要使用PyroSim中的高级MPI_PROCESS功能,您需要控制要开始进行仿真的MPI进程总数。使用“运行FDS群集”选项而不是“运行FDS并行”来完成。在图2中在下面,您可以看到本地计算机如何使用单个主机名。然后,在右侧列表中以及表下方的字段中看到8个网格时,该主机的进程数将设置为4。在这种情况下,将启动4个进程,并分配2个网格通过MPI_PROCESS参数在附加网格记录中指定的每个过程。
这样的功能改善了Pyrosim的内置功能,并在设置和运行FDS仿真时节省了用户的时间和精力。