From da1328dbfec9b2359afafa8f9b83d8d9d868485a Mon Sep 17 00:00:00 2001 From: Yibo Zhu Date: Wed, 20 Nov 2019 21:44:56 +0800 Subject: [PATCH] common: disable numa control when not summing locally (#157) --- byteps/common/shared_memory.cc | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/byteps/common/shared_memory.cc b/byteps/common/shared_memory.cc index ec86d166f..e4ff185f2 100644 --- a/byteps/common/shared_memory.cc +++ b/byteps/common/shared_memory.cc @@ -54,22 +54,26 @@ std::vector BytePSSharedMemory::openPcieSharedMemory(uint64_t key, for (int i = 0; i < BytePSGlobal::GetPcieSwitchNum(); i++) { auto prefix = std::string("BytePS_Pcie") + std::to_string(i) + "_Shm_"; if (BytePSGlobal::IsDistributed()) { - if (i <= numa_max_node()) { - numa_set_preferred(i); + if (BytePSGlobal::IsCrossPcieSwitch()) { + if (i <= numa_max_node()) { + numa_set_preferred(i); + r.push_back(openSharedMemory(prefix, key, size)); + numa_set_preferred(-1); + } else { + numa_set_preferred(numa_max_node()); + r.push_back(openSharedMemory(prefix, key, size)); + numa_set_preferred(-1); + } } else { - numa_set_preferred(numa_max_node()); + r.push_back(openSharedMemory(prefix, key, size)); } - r.push_back(openSharedMemory(prefix, key, size)); - numa_set_preferred(-1); } else { if (BytePSGlobal::IsCrossPcieSwitch()) { numa_set_interleave_mask(numa_all_nodes_ptr); r.push_back(openSharedMemory(prefix, key, size)); numa_set_interleave_mask(numa_no_nodes_ptr); } else { - numa_set_preferred(0); r.push_back(openSharedMemory(prefix, key, size)); - numa_set_preferred(-1); } } }