Intel Xeon Phi with Windows!

YES! You can add a Xeon Phi card to a Microsoft Windows system, it does work! Would I recommend it? Ahhh, well, maybe… If you meet the following criteria;

  • You are adventuresome,
  • are comfortable doing development in a Windows environment,
  • have a good understanding of Linux,
  • have a computationally demanding code running in parallel on Windows,
  • have a high tolerance to pain and suffering!

If you are a programmer then the first and last criteria are already covered. As for the other criteria, having a good Linux understanding is probably the most important if you are primarily a Windows programmer.

It's important that you realize that the Phi is running an embedded Linux operating system and is binary incomparable with Windows executables! You might want to look at my post "Top 5 Xeon Phi Misconceptions". Also, you are going to need to use the (excellent) Intel compilers and development tools to help with cross-compiling your code segments that are going to be off-loaded to the Phi.

I'm not going to go into detail about installing the Windows MPSS driver and setting things up because when I did this the driver was still in beta. There is a now a new (WHQL) version of MPSS for windows based on the new YOCTO build of the embedded Linux system for the Phi.

If you are serious about trying this you should download the driver and documentation and read through the docs before you do anything else. When you are ready to get a Xeon Phi card you may need to consider getting a new machine to put it in. See my blog post "Will your motherboard work with Intel Xeon Phi?".

[Note: the Xeon Phi is often referred to as "mic" pronounced "Mike" (Many Integrated Core)]

The screen-shot below shows the Phi status monitor, micsmc.exe, running on a dual Xeon E5-2650 machine with a Xeon Phi 3120A card on Win-7 Pro. The driver install was straight forward…

You can give the card a simple test in "native mode" i.e. logging into, and running code directly on the card. You will need to do a little setup. The following is what I did to get a linpack benchmark running on the card (this is not a "HowTo" you will need to read through the documentation for the driver);

  • Create a new Windows users-group called MICUSERS and add your user name to that group (you can use the mmc.exe, the Microsoft Management Console for this).
  • Install putty and puttygen. (you need an ssh client to access the Phi and you will need to generate a public-key and add that to the cards configuration for your user account)(In general it might be best to install the Cygwin to get a fuller *NIX type of environment.)
  • Install WinSCP (you can use scp to copy files to and from the card)
  • I then copied over the linpack benchmark executables and input files from a Linux machine with an install of the MKL in the Intel "Parallel Studio XE". On the Windows machine I then used WinSCP to copy these files to the Phi card and then used ssh to log into the card and started up the benchmark. That's cheating! I know! but it was a quick and easy test. At this stage you would probably want to install the Windows version of the Intel developer tools you want to use. The newest versions should have "mic" support and should have pre-built Linux libraries for the Phi.

Here's a screen-shot of Intel's linpack benchmark running…

In this last screen-shot you can see the finial results of the linpack run (note that I only went to the 22528 x 22592 problem size so that it would easily run in the 3120A's memory space). 707 double precision linpack GFLOPS, nice!

Best of luck! -Don