簡介
對于使用Fire Dynamics Simulator(FDS)進行的典型建筑設計計算,將模擬大量空間。為了描述此計算量,整個量的一個或者多個子部分稱為“網格”,并由輸入文件中的&MESH條目定義,在許多情況下,看需要使用不同分辨率的多個網格來準確定義模擬的計算域。大多數現代計算機的每個處理器都具有多個“核心”或“線程”,并且FDS通過消息傳遞接口(MPI)功能允許使用MPI_PROCESS將每個分配給特定的線程。關鍵詞。此功能語序將任意數量的網格同時分配給同一個處理器,以提高計算效率。
有關MESH記錄上的MPI_PROCESS和N_THREADS參數的更多信息,可以在《FDS用戶指南》的“多網格”中找到。該節相關的部分在下面引用供參考。
通常在MPI計算中,每個網格都分配有自己的進程,并且每個進程都有自己的處理器。
但是,可以威哥進程分配一個以上的網格,也可以為一個處理器分配一個以上的網格??紤]一個涉及六個網格的情況:
?。ESH ID ='mesh1',IJK = ...,XB = ...,MPI_PROCESS = 0 /
?。ESH ID ='mesh2',IJK = ...,XB = ...,MPI_PROCESS = 1 /
?。ESH ID =' mesh3',IJK = ...,XB = ...,MPI_PROCESS = 1 /
?。ESH ID ='mesh4',IJK = ...,XB = ...,MPI_PROCESS = 2 /
?。ESH ID ='mesh5',IJK = ...,XB = ...,MPI_PROCESS = 3 /
?。ESH 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行,而無需手動導出和編輯文件并從命令行運行。
?。?015年12月21日,編輯) PyroSim中的“運行FDS并行”選項將自動將MPI進程數設置為等于模型中的網格數。要使用PyroSim中的高級MPI_PROCESS功能,您需要控制要開始進行仿真的MPI進程總數。使用“運行FDS群集”選項而不是“運行FDS并行”來完成。在圖2中在下面,您可以看到本地計算機如何使用單個主機名。然后,在右側列表中以及表下方的字段中看到8個網格時,該主機的進程數將設置為4。在這種情況下,將啟動4個進程,并分配2個網格通過MPI_PROCESS參數在附加網格記錄中指定的每個過程。
這樣的功能改善了Pyrosim的內置功能,并在設置和運行FDS仿真時節省了用戶的時間和精力。