The Subsystem for Unix-based Applications (SUA) is a full-featured POSIX compliant "OS" that runs natively on the Windows kernel. It's actually a subsystem in parity with the Win32 subsystem. SUA is available as an optional Windows feature on OS releases since Server R2 and including Server 2008. SUA has an interesting history which you can find
here.
SUA is useful for HPC application development and perhaps even more so for HPC application migration. Many HPC codes have a long history of availability on -nix variants. Making those applications available on Windows with literally no source changes and no performance penalty is where SUA shines.
A recent Platform Adoption Lab engagement reminded us of the value of SUA. The scenario involved migration of a large HPC code-base. The source included C, C++, Fortran, and Python. The project build configuration leveraged
Autoconf to enable support for a number of target systems.
To get started with the source configuration we needed to inform Autoconf about our system (i.e. SUA). The configure script first runs a script called config.guess that determines which system configure is running upon. The configure script generated by Autoconf then simply checks functionality on the system, by looking for a compiler, and then compiling and running simple test programs. For reference, you may need to modify your config.guess file with information about SUA (aka "Interix"). Here's the change:
*:Interix*:6*)
echo i586-pc-interix${UNAME_RELEASE}|sed –e ‘s/\..*//’
exit 0 ;;
Essentially, many source packages migrate easily without further change, just a recompile. In fact, a number of open source codes have become available to Windows HPC users using SUA. A recent posting
herein provides more information. Additionally, you'll want to review the following online resources: