What is best option for porting Linux HPC code to Windows? Fortunately, HPC codes are usually not that difficult to port, as they are often console only (has no gui), and they often use MPI, which is an industrial standard. Porting from Unix to Windows often requires a little bit of research first. There are many options depending on the situation. I would like to introduce several options and state my personal experiences with these options.
1. Cygwin: Cygwin is a Linux-like environment for Windows. It consists of two parts:
A DLL (cygwin1.dll) which acts as a Linux API emulation layer providing substantial Linux API functionality.
A collection of tools which provide Linux look and feel.
Pros: Easy port, you can build your Linux apps using the configure script and get it to run with almost no changes to the code.
Cons: Requires the cygwin RUN TIME, and the licensing terms are very unforgiving (GPL). Plus it is only 32 bit! Remember, you are NOT producing win32 code here, everything must run through the cygwin.dll layer.
I personally would only use it as a Unix environment, but not distribute binaries with Cygwin due to the above restrictions.