I am very new to this, and wanted to ask if there is, or there is going to be, a version of the Xeon Phi for windows OS ( the documentation I saw was only mentioning Linux), for the host system/processor.
Support for Windows will be available in 2013; note this support would be on the host system housing the coprocessor. The Intel(R) Xeon Phi(tm) coprocessor would continue to run a minimal Linux.
Thank you very much Belinda. This is really useful - and a huge relief..
One clarification, please - there is quite some material to go through and need to get a compass ;-))
When we say that the coprocessor (copp, henceforth) will be running Linux do we mean that the code ran by it has to be built on linux environment?
That is, if I use mkl or boost or any other third party library, that means I will need to have/maintain 2 copies of it, i.e. both windows and linux binaries to be run by the processor and the copp, respectively ?
This would seem - at least at first- like a very intricate situation.
Again, thank you very much for all the help,
This is already the situation; as the co-processor is a different target architecture, separate sets of libraries and object files is maintained for host and co-processor. In several situations, such as MKL Automatic Offload, the build and run-time systems handle this automatically. Windows support means that the cross compiler can run under Windows to make executables to run on the target co-processor linux, and the entire co-processor software setup is accomplished under host Windows. I suppose this would require Windows X64 with current Visual Studio and future Intel software development products.
Tim, Thank you for your response.
To be more concrete: Say I have a boost matrix class and I want to use mkl to solve a linear system of equations with that the matrix as the coefficients of the system.
As far - not far at all ;-)) - as I understand, mkl will dispatch the work to the copcc if the size of the system exceeds a certain size.
On the other hand, I would need the same code to handle dispatch of solution of many such systems accross threads.
Leaving aside for the moment that boost matrix comes as a header library ( but build by me into some other lib to account for allignment requirements), it seems to me that I will have to have both libs available. And also the mkl for the linux copcc system.
Now, if I understand you correctly, you suggest that yes, I will need 2 copies of my matrix library and the run-time will employ the one it needs.
Is this so ?
And the linux flavor of my library will be created by icl with cross-compilation ?
Thank you for all your help,
ps: I guess copcc is much better than what I had ;-))
You have options to specify a problem size threshold for each offload, so as to execute on host when the problem is small. This is inherent in the MKL automatic offload facility. I haven't seen it used much for user built code, but it may make sense to use.
A build for offload mode with Intel compilers automatically generates both the host and offload objects and shared libraries.
In the case of MPI, as currently implemented, you invoke the entire build twice, both with host compile options and with co-processor options, and you make the offload binary available by copying over or mounting its directory. I suppose the MPI mode under Windows may not have as much marketing priority. Where appropriate, MPI offers a convenient method for splitting work between host and co-processor, enabling a larger problem than would fit in co-processor RAM.
Thank you Tim,
Your help is greatly appreciated.
Petros, fyi, if still interested, a beta version of the Windows software stack is now available. More on this here: