Just Published: Five learning samples for Windows HPC with Burst to Windows Azure covering Parametric Sweep, Cluster SOA, and Excel UDF offloading Programming Models


If you have CPU intensive jobs that require 100s of Cores on Azure or on HPC on-premise cluster, I’ve just uploaded five easy-to-learn samples with lab instructions. (See figure 3) These samples have been added to the same location of the white paper, Windows HPC with Burst to Windows Azure: Application Models and Data Considerations.  The minimum requirement for Windows Azure Burst configuration is one on-premise (local) computer with Windows HPC Server installed.  This extremely low barrier for entry allows anyone to create a mini-super computer on Azure with powerful HPC scheduling mechanism.

Download Page for Samples and White Paper

I will be making them available on the MSDN Learning center for Windows HPC and Technical Computing in the next few days.  I have chosen these examples based HPC Server SP1’s capability and what our users are already familiar with.  These samples work on the beta release of Sp2 as well.  Please see the SP2 beta that was announced this week.

1. Parametric sweep

Parametric sweep is the simplest, fastest way to scale out your embarrassingly parallel codes. You are simply running an executable 1000s of times load balanced across many compute nodes using the HPC job scheduler. Please see figure 1.

· CPU spinner – The simplest example for parametric sweep.

· Image rendering of a CFD simulation:   (includes AzureblobCopy example code).  Video Link in HD   You will also need to download the HPCAzureBurstSampleData.zip on the same page.

2. SOA

Service-oriented architecture (SOA) is an architectural style designed for building distributed systems. The SOA actors are services: independent software packages that expose their functionality by receiving data (requests) and returning data (responses). SOA is designed to support the distribution of an application across computers and networks, which makes it a natural candidate for scaling on a cluster. The SOA support provided by Windows HPC Server 2008 R2 is based on Windows Communication Foundation (WCF), a .NET framework for building distributed applications. Windows HPC Server 2008 R2 SP1 improves SOA support by hosting WCF services inside Windows Azure nodes, in addition to on-premises nodes.

· Square Service – A simple sample of Square Service now running on Azure burst mode.

· Asian options Service – Visual studio Tools for office front end, Cluster SOA engine on the back end.

3. Excel offloading

The execution of compute intensive Microsoft Excel workbooks with independent calculations can be sometimes scaled using a cluster. The Windows HPC Server 2008 R2 SP1 integration with Windows Azure supports User Defined Functions (UDFs) offloading. Excel workbook calculations that are based on UDFs defined in an XLL file can be installed on the cluster’s nodes (on-premises and/or Windows Azure nodes). With the XLL installed on the cluster, the user can perform the UDF calls remotely on the cluster instead of locally on the machine where the Excel workbook is open.

· Asian Options in UDF – Same as the Excel Asian options service, but using the UDF offloading feature right from Excel.  Please see figure 4.  I bet you didn’t expect excel could do that.


I hope you find these samples useful to you.  I will be making some of my more complex demos mentioned in this blog into documented training in the near future. Please stay tuned and feel free to ask me questions or leave feedback.

Thank you for reading this blog.


Figure 1.  Parametric sweep job dialog.




Figure 2. Asian options demo uses Visual Studio Tools for Office as a front end.



Figure 3.  Asian options uses SOA for backend calculation.  As an embarrassingly parallel app, it can fully utilize all CPUs from both on premise (cray01-08), and Azure nodes.  (320 Azure cores + 48 on-premise cores).  For access to Azure, the minimum configuration is 1 on-premise machine acting as the HPC head node.



Figure 4.  Excel UDF, connect to your cluster from the Advanced options dialog box.