我在思考何时使用 OpenMP 以及何时使用 FDS/Pyrosim 中的 OpenMP 线程 MPI (~"MPI)。我阅读了 FDS 用户指南第 3.3.1 节,但在应用程序上还是不太理解......我希望有人能帮忙!
我目前用于较小运行的机器是 12 GB 内存,带有 4 个物理内核的Xeon e5,在 1 个 CPU 中报告。当我阅读用户指南时,对映射到内核的内容感到很困惑。
使用上面的硬件,假设我有一个带有 4 个网格的模型。我应该为每个内核做一个 MPI 线程,即:
打开 MP 线程:1
打开 MP 线程 MPI:4
开放 MP 栈:200M
或者我应该为每个物理 CPU 执行 1 个 mpi 线程,并为该 CPU 的每个核心执行 1 个 OpenMP 线程? IE。:
打开 MP 线程:4
打开 MP 线程 MPI:1
开放 MP 栈:200M
MPI 应该是每个核心可用(并行或集群,无论链接什么),还是每个 CPU?
如果每个核心有一个 MPI,我应该尝试让我的网格数量与可用核心数量相匹配,对吗? (可以理解,密集网格和分布除外)或者 OpenMP 线程是否应该与内核数量相匹配?
如果我将机器上的 CPU 加倍为 2 个物理 CPU,每个 CPU 有 4 个内核(总共 8 个内核),那么它会是 8 个 MPI 进程吗?