本文将主要介绍在Intel® Xeon Phi™(代号:Knights Corner)协处理器上使用Intel® MPI(消息传递接口)库时需要注意的基本配置及问题。
1 、保证服务器上处理器之间可以通信:
- 首先,每一个Host处理器与Xeon Phi™协处理器必须有一个唯一的IP地址及符号名,即与Cluster名保持一致;
- 其次,主从处理器之间的不需密码的SSH通信可以有效建立;
2、当处理器之间无法通信时,可能的原因有以下几种情况:
- Intel® MIC的软件栈版本过低,需升级到最新版本;
- Host上的iptables 服务需要关闭;
- 供通信中转的路由线路有问题;
关于如何配置IP地址连接用户需参考Intel® MIC Software Stack Readme。
3、MPI库在Xeon Phi™协处理器上使用时的场景模型:Xeon Phi™协处理器在这种场景下可看做为一个单独的服务器计算节点,此时MPI库在协处理器上的使用场景与至强Host主处理器的编程模型可看做近似。比如,MPI库可以通过NFS共享的方式,实现在Xeon Phi协处理器或Xeon处理器都启动MPI的任务。
以下是编译可运行在Xeon Phi协处理器及Xeon处理器上的程序的编译步骤,
- 设置好编译器及MPI库对应的环境:
(host)$ . <compiler_installdir>/bin/compilervars.sh intel64 (host)$ . <mpi_installdir>/intel64/bin/mpivars.sh
- 编译可运行于MIC架构上的程序:
(host)$ mpiicc -mmic test.c -o test_hello.mic
- 编译可运行于Host处理器上的程序:
(host)$ mpiicc test.c -o test_hello
在Xeon Phi协处理器及Host处理器上运行MPI程序的步骤如下,
- 首先,为了使MPI库在MIC架构上正常运行,需要建立好主从处理器间的NFS连接。关于如何设置此时的NFS通信,请参考http://software.intel.com/en-us/articles/intel-mpi-library-for-linux-kb/all/ 或 http://software.intel.com/mic-developer;
- 设置好MPI库的环境变量:
(host)$ . <mpi_installdir>/intel64/bin/mpivars.sh
- 在Host端启动MPI程序,例如:
(host)$ export I_MPI_MIC=1 (host)$ mpiexec.hydra -n 2 -host <host ID> ./test_hello : -n 2 -host <coprocessor ID> ./test_hello.mic
用户可以同时也参考Intel® MPI库的使用手册来了解-configfile, -hostfile及-machinefile等选项的使用,以及在http://software.intel.com/en-us/articles/intel-mpi-library-for-linux-kb/all/ 及 http://software.intel.com/mic-developer 了解更多信息。