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

Intel TBB and Cilk Plus thread affinity on Intel MIC

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

是的,这是可能的,而且建议在 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 中没有任何特殊方法可以做到这一点。