Top 5 Xeon Phi MisconceptionsWritten on October 3, 2013 by Dr. Donald Kinghorn
The Xeon Phi has been generally available for over 6 months now and most people that keep up with developments in high performance computing have heard about it. However, I've talked with many people that have heard about the Xeon Phi but have little understanding of its characteristics other than it's a many core co-processor that is being used in some of the worlds fastest computer systems. What follows are the top 5 misconceptions I've been hearing from people about the Phi.
1)"If I add a Phi card to my system I will have an extra 60-cores for my programs to run on."
Well, yes and no. The Xeon Phi does have 57-61 cores and they are 64-bit x86 compatible. However, those Xeon Phi cores look like they belong to a separate computer connected over an internal network to your host OS. I've talked with several people who thought those extra cores were just automatically available to your host system. Those extra cores do not just show up along side your system processor cores and are not directly visible to the host OS!
2)"The Xeon Phi is Linux only."
Again, this is yes and no. The Phi itself runs an embedded Linux OS in memory on the card. The card has a boot-loader flashed onto non-volatile memory and when the card starts up it loads a file system and Linux kernel that are stored on the host system. It's called uOS. However, the card can be booted into uOS from a Windows host! There is a Windows driver for the card and it works fine. I've tried it. (I'll talk about that in another post.) Just keep in mind that even on a Windows host the card is still running Linux. You can't run Windows programs on it since the executables would be binary incompatible.
3)"You can run any Linux programs on the Phi."
NO! As I said earlier the Phi is running an embedded Linux OS called uOS. The "u" is really supposed to be a Greek letter mu and stands for "micro", as in micro-OS. That's a hint! Most of the OS functionality on the card is provided by a cool application called "busybox" which provides some of the functionality of many common core Linux command line system programs in a very compact way. It's a pretty lean Linux system! Core system level commands and network capability are provided on the card but not much else. You can directly login to the card and run programs in "native mode" but, any programs you run are going to need to to bring any needed run time libraries over to the card or make them available over the network interface to the card. (You can do NFS mounts to the card.) It's really not a general purpose Linux OS. It's an embedded system OS running in, and using up, the limited memory available on the card. ... I've had more than one person ask me if they could run Windows programs on the Phi using "Wine", sorry, that's not going to work!
4)"It's easy to write programs for the Xeon Phi"
No way! Programming is not easy period. It is easier to get something to run on the Phi than it is on a GPU with CUDA for example. However, getting a code to run with good performance on the Phi requires a considerable effort. You have to be able to utilize all those cores and hardware threads along with the core vector units in order to get good performance out of the Phi. Also, you have the same problem of limited memory and limited bandwidth over the PCI bus that you have when working with GPU accelerators. It's a non-trivial programming effort. Is it worth the effort? Yes. The effort you put into optimization for the Phi will also benefit your codes performance on the CPU and the Intel compiler tools help tremendously with this.
5)"The Phi is just a fad, it wont last"
I'm calling that a misconception too. Those who have been in the HPC business for a while may have "déjà vu" moments when they look at Phi. Remember the "Cell BE"? (the "Cell" processor was used in the PlayStation3) It had interesting potential, it was added to some super-computers of the time, and effort was made to take advantage of it. It didn't go well! The architecture was too limiting. The Phi does not have this problem! How about FPGA's (field programmable gate arrays)? Tremendous potential, and they are still actively developed and advances in usability have been made. However, they are by design special purpose and can't really be used as a general platform for running varied codes. Phi has a big advantage in this regard. Then there's Tesla + CUDA. This is the strongest competition for the Xeon Phi and has a solid 4 year head start. Nvidia has done an outstanding job at nurturing a developer "ecosystem" and there are many successful projects making good use of the strong compute capabilities of their GPUs. However, writing compute intensive code to run well on GPUs is challenging and requires a solid understanding of the architecture. Tesla isn't going away any time soon and the Phi is not going to replace it. The Phi is different from any compute accelerators that have come before and I believe it is going to evolve into a stand alone platform. It's nearly a general purpose many core "CPU" already and Intel has the means to move it forward to become a complete high performance computing system. The next couple of years should be interesting indeed!