Skip to content

Commit

Permalink
[Thread Backend]Fix CPU Thread Binding for Multiple Sockets (apache#5918
Browse files Browse the repository at this point in the history
)

* Fix CPU Thread Binding for Multiple Sockets

* Backward compatibility
  • Loading branch information
kevinthesun authored and zhiics committed Jul 2, 2020
1 parent 7a08e51 commit 6e4813f
Showing 1 changed file with 2 additions and 8 deletions.
10 changes: 2 additions & 8 deletions src/runtime/threading_backend.cc
Expand Up @@ -159,14 +159,8 @@ class ThreadGroup::Impl {
CPU_SET(sorted_order_[sorted_order_.size() - i - 1], &cpuset);
}
} else {
int big_count = big_count_;
// Imagine our x86 has cores 0 - 7
// physical cores are 0 - 3, logical cores are 4 - 7, big_count_ is 8
// we wish we run on physical cores, not logical cores to avoid contention issue.
#if defined(_M_X64) || defined(__x86_64__)
big_count /= 2; // ignore hyper-threading
#endif
for (int i = 0; i < big_count; ++i) {
int num_cpu_workers = std::min(MaxConcurrency(), big_count_);
for (int i = 0; i < num_cpu_workers; ++i) {
CPU_SET(sorted_order_[i], &cpuset);
}
}
Expand Down

0 comments on commit 6e4813f

Please sign in to comment.