c++ - 英特尔 MIC 上的英特尔 TBB 和 Cilk Plus 线程亲和性

标签 c++ parallel-processing tbb xeon-phi cilk-plus

我想使用英特尔 TBB 和 Cilk Plus 为英特尔至强融核编写并行代码,但我遇到了线程亲和性问题。我想将一个线程绑定(bind)到一个逻辑核心。是否可以像在 OpenMP 中那样设置亲和性?我的意思是 KMP_AFFINITY="紧凑"。先感谢您。 :)

最佳答案

是的,这是可能的,而且建议在 Xeon Phi 上与 affinity_partitioner 结合使用。请看the blog了解详情。这是一个简短的代码片段,可以让您了解它的外观:

class pinning_observer: public tbb::task_scheduler_observer {
public:
    pinning_observer();
    /*override*/ void on_scheduler_entry( bool );
    ~pinning_observer();
};

pinning_observer pinner;
pinner.observe( true );

在 Cilk Plus 中没有任何特殊方法可以做到这一点。

关于c++ - 英特尔 MIC 上的英特尔 TBB 和 Cilk Plus 线程亲和性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28400134/

相关文章:

parallel-processing - C++parallel_reduce如何使用初始值参数?

c++ - Intel TBB 在并行线程中运行函数?

c++ - cv:::Mat 克隆段错误

c++ - 如何在包含pair<int,int>的Priority_queue中查找值?

c++ - 元素包含子元素的数组?

c# - 多个API调用的Asp.net MVC4并行编程

c++ - 可以在 C++11 中模拟 std::is_invocable 吗?

python-3.x - 并行进程覆盖进度条 (tqdm)

machine-learning - 机器学习/数据挖掘中的速度太慢或内存不足问题

c++ - 如何重新安排并发任务?