Microsoft HPC++ CompFin Lab Architecture White Paper
< Go Back
This white paper describes an incubation project from HPC++ Labs called the HPC++ CompFin Lab. The lab explores the hosting of data-centric, high-performance computing (HPC) and high-productivity computing solutions by providing a computational finance service for academic use.
HPC++ Labs has hosted a 64-node\256-core compute cluster for universities and researchers to use via the Internet. The HPC++ CompFin Lab is an initial data-centric HPC service from HPC++ Labs designed for university computational finance courses and research. The lab brings together Microsoft Windows HPC Server, a central market data database, and Microsoft productivity products to provide university courses with an online service to publish, execute, and manage computational finance models. The HPC++ CompFin Lab includes a central market dataset, a Microsoft Office Excel HPC task pane, model execution status notifications, and the computing resources of the lab. The lab promotes a common programming pattern for parameter sweep models based on Windows Communication Foundation (WCF) services.
Typically, the professor develops a model in Microsoft Visual Studio 2008 in the professor’s choice of Microsoft .NET language. The model is then published to the students via the HPC++ CompFin Lab portal. The model is comprised two files: an Excel workbook template and a cabinet file. The Excel workbook template is the user interface to the model, and the template enables students to create workbooks for different input combinations and result layouts. A cabinet file contains the .NET assemblies that implement the model’s split, calculation, and other operations that run on the Web server and the cluster. Once published, students can create workbooks based on the models’ workbook templates, specify input, and submit the model to the service for execution via the Excel task pane. The user enters the model’s input and clicks the Submit button in the HPC Excel task pane to submit the model for execution.




