是否可以通过启动多个线程来使用Xeon Phi,或者使用Xeon Phi需要特殊类型的编程?
英特尔有一些相当不错的数学库,IPP / MKL . 在Xeon Phi似乎是在线之间阅读我认为英特尔有一个版本的库可以利用看起来已经成为架构一部分的非常宽的SIMD单元 .
英特尔的编译器还将放入多个线程来并行执行循环,而不是按顺序执行 . 这将是利用Phi似乎拥有的大量核心的一种方式 .
所以可能是正确的编译器和库的编程可能是相当正常的,直到你开始需要库没有的例程 .
您可以阅读这些文档,了解有关如何在Xeon Phi上点击许多可用线程的更多信息:
http://software.intel.com/en-us/articles/programming-and-compiling-for-intel-many-integrated-core-architecture
http://software.intel.com/en-us/articles/choosing-the-right-threading-framework
以上http://software.intel.com/en-us/mic-developer
总而言之,要么手动管理线程(通过TBB / pthreads /等),要么使用支持的并行编程模型之一:
OpenMP
MPI
Cilk Plus
OpenCL
OpenACC
或者使用可以自动卸载到设备的库,例如MKL或ArrayFire .
2 回答
英特尔有一些相当不错的数学库,IPP / MKL . 在Xeon Phi似乎是在线之间阅读我认为英特尔有一个版本的库可以利用看起来已经成为架构一部分的非常宽的SIMD单元 .
英特尔的编译器还将放入多个线程来并行执行循环,而不是按顺序执行 . 这将是利用Phi似乎拥有的大量核心的一种方式 .
所以可能是正确的编译器和库的编程可能是相当正常的,直到你开始需要库没有的例程 .
您可以阅读这些文档,了解有关如何在Xeon Phi上点击许多可用线程的更多信息:
http://software.intel.com/en-us/articles/programming-and-compiling-for-intel-many-integrated-core-architecture
http://software.intel.com/en-us/articles/choosing-the-right-threading-framework
以上http://software.intel.com/en-us/mic-developer
总而言之,要么手动管理线程(通过TBB / pthreads /等),要么使用支持的并行编程模型之一:
OpenMP
MPI
Cilk Plus
OpenCL
OpenACC
或者使用可以自动卸载到设备的库,例如MKL或ArrayFire .