我想使用Intel TBB和Cilk Plus为Intel Xeon Phi编写并行代码,但线程亲和性有问题。我想将一个线程绑定到一个逻辑核心。是否可以像在OpenMP中那样设置亲和力?我的意思是KMP_AFFINITY="紧凑"。提前谢谢。:)
是的,这是可能的,而且建议与Xeon Phi上的affinity_partinter结合使用。有关详细信息,请参阅博客。以下是一个简短的代码片段,让您了解它的外观:
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中没有任何特殊的方法。