Xeon Phi, is it right for you?
With Intel’s release of the Xeon Phi back in 2012, there has been a lot of interest, and a lot of misunderstanding of what it is and how it works. The Phi can provide a great performance bump for the right application and use case. To understand if the Phi would be useful to you, first we need a little background.
The Xeon Phi is an accelerator card, it’s a PCI-e expansion card that provides 50+ x86 style cores, with its own memory, interconnect, and operating system. There are multiple models that provide different core counts and memory sizes, which is outside the scope of this article. Contact
to discuss those options.
When discussing systems with Xeon Phi we refer to the server that the Phi card installed in as the host, while the Phi is referred to as the accelerator. Not just any server can host a Phi. The Xeon Phi uses quite a bit of power, is physically large, and has specific cooling demands. Servers and workstations have to be designed to host a Phi, they can’t be plugged into just any machine without proper engineering to support it. Generally speaking, anything that can support an nVIDIA GPU could support a Phi as the power, space, and cooling demands are similar.
To simplify, we tell people to think of the Xeon Phi as a computer inside of your computer. It needs to be booted up, have its own IP address, has a separate operating system, etc. It becomes another node on your network, but in this case, the node happens to be inside of another node. The Phi doesn’t transparently give your host system another 50+ cores to compute on, code must be written or compiled to take advantage of it, much like a GPU. The porting process from standard x86 code to Phi is potentially much easier than x86 to GPU, but it’s generally not automatic.
When thinking about running code on a Phi, there are multiple programming models to consider:
* Offload - Certain functions can be offloaded to the Phi, while general purpose code runs on the host. Using Intel’s own MKL library makes this somewhat easy, as certain math functions can be offloaded transparently for you.
* Symmetric - Both the host and the Phi are used for all parts of the application; if using MPI, the Phi would just be treated as another node in the computation.
* Hosted - Code can run exclusively on the Phi with no interaction with the host. Code can be run across multiple Phi’s in the same host or even across hosts.
A couple of important thing to keep in mind: While the Phi has 50+ cores, they are not nearly as fast as today’s modern server CPUs. The cores are closer to 1GHz in speed, and considerably slower than a modern day Xeon. This means your code must be parallel and highly optimized to take advantage of the performance the Phi has to offer. There are also memory limitations. Since the Phi is its own computer, it has its own limited set of non-upgradeable RAM, so your problem has to fit within those constraints. We always advise people to spend time to parallelize and optimize their code to run on Xeon. The effort of doing this will help get better performance from the host CPU, and those efforts are likely to pay off when running on the Phi.
Advanced Clustering offers systems with Xeon Phi to do remote testing, so if you have code you think would work well and are interested in testing please get in contact with us. If you have further questions or would like to understand more about the Xeon Phi, please let us know via
or give us a call at 866-802-8222.