我有一个MPI/Pthread程序,其中每个MPI进程将在单独的计算节点上运行。在每个MPI进程中,会启动一定数量的Pthread (1-8)。然而,无论在一个MPI进程中启动多少个Pthread,总体性能几乎是相同的。我怀疑所有的Pthread都运行在同一个CPU内核上。如何将线程分配给不同的CPU核心?每个计算节点有8个核心(两个四核Nehalem处理器) Open MPI1.4Linux x86_64
为此,我在集群中使用了MPI。SLURM是资源管理器。下面是集群中节点的规范。: 2 x 600 GB 2.5" SAS (configured with raid 1)1)节点上的所有核心是否共享相同的内存(RAM)?3)如果所需内存较少,那么使用单个节点,使用OpenMP实现核心级并行,避免由于节点之间的通信而造成的时间损失,不是更好吗?如果某个节点范围的资源是应用程序的瓶颈,则使用节点分配。对于严重依赖于对磁盘或网络资源的访问的应用程序,情况就