Last week’s High Performance Computing Financial Markets conference in New York gave Microsoft an opening to announce the official release of Windows HPC Server 2008 R2, the software giant’s third generation HPC server platform. It also provided Microsoft a venue to spell out its technical computing strategy in more detail, a process the company began in May.
The thrust of Microsoft’s new vision is to converge the software environment for clients, clusters and clouds so that HPC-style applications can run across all three platforms with minimal fuss for developers and end users. Between the parallel support in Visual Studio, .NET, Parallel LINQ, Dryad, HPC server and Windows Azure, the company has built an impressive portfolio of software for scale-out applications. At the center of the technical computing strategy is Microsoft’s HPC server, currently Windows HPC Server 2008 R2, that can hook into the desktop today and will be able to extend into the company’s Azure cloud in the very near future.
According to Bill Hilf, general manager of Microsoft’s Technical Computing Group, the multicore phenomenon and cloud computing have conspired to make parallel programming pervasive. Of course, parallelism has been the mainstay of high performance computing for years, but until a few years ago it was optional almost everywhere else. That’s all changed. Clients, clusters and clouds are leveling the playing field for scalable applications, or as Hilf put it: “Parallelism is becoming an increasingly mainstream need.”
To Microsoft, this translates into a business opportunity. Between Visual Studio libraries and .NET on the client, HPC server on the cluster, and Azure in the cloud, the company has managed to get its software in all the right places. In fact, no other single vendor can match its horizontal breadth of system software, especially parallel runtimes. The challenge is to generalize the model so that customers can leverage their applications across all three platforms, without extensive rewriting.
The new Windows HPC Server 2008 R2 starts down that path with the built-in capability to dynamically tap into idle Windows 7 workstations and treat them like extra nodes on the cluster. The idea is that on weekends and at night, these idle PCs can be used to expand a company’s local compute cluster for the price of the electricity to run them. For loosely-coupled apps (that is, applications that don’t require InfiniBand-level latency and bandwidth) the extra processing power can be used to run a variety of embarrassingly parallel applications.
Along those same lines, the new HPC server has the more general capability to dynamically shrink and expand cluster resources, nodes or otherwise. So if more important work arrives, that job receives priority for compute resources. That could entail jobs with lower priority getting kicked off nodes (presumably gracefully) until the higher priority work completes.
Corralling idle workstations and dynamically prioritizing cluster resources is just working at the edges. The real end game is to provide an HPC path to their Azure cloud. Once again, the idea is to make cloud resources appear as a seamless extension to the local compute cluster or desktop, so developers don’t have to rewrite their applications to scale up.
Adding Azure instances to a cluster was demonstrated at the High Performance Computing Financial Markets event last week. According to Kyril Faenov, the second GM of the Microsoft’s Technical Computing Group, the HPC Server/Azure integration is already working in the lab today. Currently they are signing up beta customers to kick the tires, and are planning for an initial release later this fall. That version will be the first of a set of rolling updates that will take place over the next year or so to add new cloud-to-cluster capabilities. The first version will be able to handle embarrassingly parallel (that is, non-MPI) apps, since it requires a relatively simple programming model.
As a follow-up to that effort, Azure will be outfitted for MPI. When that happens, a typical HPC workload can burst into the cloud from any Windows HPC cluster. According to Faenov, Microsoft is already evaluating the type of network interconnect and infrastructure that will be needed for this class of tightly-coupled HPC apps, and should have a version of the cloud offering ready to go sometime in 2011. “Azure is going to be a really good platform for HPC in the not-to-distant future,” he said.
Also on the docket is that ability to host legacy Windows apps in the cloud (without having to be rejiggered for the native Azure programming framework, that is). So popular applications like Excel will be able to execute on Azure and have access to a very elastic parallel platform. To accomplish this, Azure will have to incorporate VM support for Windows, something it does not currently have. “Once VMs become available, you could conceivably run any application in the cloud,” explained Faenov.
Excel is already halfway to the cloud, inasmuch as the latest HPC server supports a parallelized version of the spreadsheet app for cluster execution. Microsoft estimates they already have 300 million Excel customers, and some of the workbooks they develop are big enough to benefit from a cluster and cloud setup. This is especially true of in the financial services arena where quants build super-sized Excel models for applications like portfolio analysis and options pricing.
At the HPC Financial Markets event, Microsoft demonstrated a 60-fold speedup for an Excel pricing sensitivity workbook when they parallelized a serial version to run on a 500-node cluster. By adding some simple parallel hooks into the workbook to distribute the Excel calculations across the cluster, run time was reduced from two hours to two minutes.
“The reason we’re particularly excited about Excel and HPC is that it truly demonstrates our vision for technical computing,” said Faenov, “which is to bring high performance computing capabilities to more users and bring it into new markets beyond traditional HPC.”
Splicing all the parallel computing technologies under the Microsoft umbrella into a coherent-looking whole would be quite a coup for the software maker. As it stands today, clients, clusters and clouds operate more or less in their own worlds. A Hadoop or MapReduce application in the cloud or in a Linux cluster is going to be very different from its implementation on a client. Yet fundamentally, they’re all going to be parallelized in a similar fashion.
“As we pass through this inflection point, as we have to start writing software in a new way… it requires the entire technology industry to have a sea change in the way they think about computational problems,” said Hilf. “We must think of all things in a parallel way.”