United States Change | All Microsoft Sites
Microsoft Home | Servers and Tools
Get up to speed quickly with these developer resources for Windows HPC Server 2008.
This white paper presents benchmark results obtained running MG-ALFA on an IBM® System x™ iDataPlex cluster with IBM DX360 M2 quad-core Intel® Xeon® x5550 (Nehalem) processors running Windows HPCS. The benchmark results are outstanding, demonstrating not only raw computational speed, but also excellent scalability using up to 200 computational cores.
This tutorial presents a classic HPC development scenario—data parallelism in the context of image processing. Written for the C and C++ developer, this tutorial walks you through the steps of designing, writing, debugging, and profiling a parallel application for Windows HPC. When you complete the tutorial, you’ll have the skills and expertise necessary to deliver high-performance, cluster-wide applications for Windows HPC.
Download the tutorial with project files and source code here.
Performance-oriented compilers, tools, and libraries are now available for Windows HPC Server 2008. This tutorial reviews compute-intensive compiler technologies, resources for parallel programming using OpenMP and MPI, parallel debugging and profiling tools, and an introduction to Fortran programming within Microsoft Visual Studio 2008.
Never written a parallel application? This tutorial takes you through the process of discovering the world of parallel programming.
This paper presents novel algorithms for computing discrete Fourier transforms with high performance on GPUs as well as hierarchical, mixed radix FFT algorithms for both power-of-two and non-power-of-two sizes. Our hierarchical FFT algorithms efficiently exploit shared memory on GPUs using a Stockham formulation.
This tutorial walks you through the use of MPI.NET. MPI.NET is a high-performance, easy-to-use implementation of the Message Passing Interface (MPI) for the Microsoft .NET environment. MPI is the de facto standard for writing parallel programs running on a distributed memory system, such as a compute cluster, and is widely implemented. Most MPI implementations provide support for writing MPI programs in C, C++, and Fortran. MPI.NET provides support for all of the .NET languages (C#, F#, Python, …) and includes significant extensions (such as automatic serialization of objects) that make it far easier to build parallel programs that run on clusters. Tutorials are available for C# and IronPython and F#.
This tutorial presents development scenarios for using F# on Windows HPC. The document includes a short walk-through of F# basics as well. This tutorial uses MPI.Net for writing parallel code.
There are many tools and utilities from Microsoft and its partners that make UNIX-to-Windows migration tractable and straightforward. Whether you need to migrate applications for use on Windows as part of an overall Windows migration strategy or you simply wish to extend support for an HPC application into mixed Windows HPC Server 2008 and UNIX environments, this guide will explain the options you have and the steps you can take to achieve your UNIX-to-Windows HPC migration goals.
This paper focuses on the current state of mathematical libraries available for Microsoft Windows, with a focus on HPC use and specifically Windows HPC Server 2008.
To help you successfully navigate the challenges associated with analyzing the complexities of parallel code, tutorials for four tools are provided for your debugging and profiling needs, including:
The Marmot system can be used to dynamically check your MPI code for correctness.
Vampir is a rich analysis framework for event-based performance tracing. You can use the tracing mechanisms in Windows HPC to collect detailed information about your program’s behavior, and visualize the traces using Vampir.
The Event Tracing for Windows system has been enhanced to collect detailed program behavior data, which can aid in understanding, turning, and troubleshooting your code. The tracing infrastructure can generate data for viewing with tools such as JumpShot and Vampir (OTF).
Visual Studio 2008 SP1 plug-in that complements the built-in debugger by adding a range of parallel-specific capabilities such as variable lamination, group operations and, parallel stacks.
HPC Basic Profile Web Service Part 1 (or the HPCBP for short) is a Web service built using the Windows Communication Foundation (WCF) that provides access to some of Windows HPC Server 2008 core job submission functionality. This is the first in a series of videos that provides a description of the Basic Execution Service (BES), Job Submission Description Language (JSDL), customization of BES with a defined security model, file staging extension of HPCBP, and Linux and Windows scheduler interop.
The HPC SDK contains elements required for writing HPC SOA applications. Covered in this video are: API in C#, XML schema, setting up and running the Java client example, WSDL generation, example implementation details, code signing/certificate generation, and head-node configuration.
This video shows you how to submit a SOA job, discusses the Job Submission Description Language (JSDL), how to run a job, and viewing the output of the job.
Submitting a job with File Staging. Users need to set up a place to store files for a job. This video demonstrates how download and upload files are supported using the file staging extension of JDSL.
SOA Sessions. This video provides a brief description of the WCF Broker model, HPCBP-SOA xml schema, and controlling the SOA Session.
Join Program Manager Robert Palmer as he illustrates new MPI tracing features using Event Tracing for Windows.
Windows HPC WCF Integration Part 1Windows HPC WCF Integration Part 2Windows HPC WCF Integration Part 3Windows HPC WCF Integration Part 4In these videos, Lead Program Manager Ming Xu explains the new WCF architecture on Windows HPC and illustrates, step by step, how to create WCF High Performance Computing applications.
Compilers
Visual Studio: C++, C#, F#, Intel Fortran, PGI Fortran
Gnu compiler chain
Debuggers
Visual Studio MPI debugger
Allinea DDT-Lite Visual Studio Add-in
Vampir for Windows
Profilers
Visual Studio Profiler
MPI tracer/profiler
Xperf
Vampir and JumpShot for Windows
Libraries
Intel Math libraries
AMD Math libraries
NAG, Visual Numerics
Parallel Runtimes
MPI, MPI.Net
OpenMP
Multicore Runtimes for C++ and .Net (Pfx)
Dedicated to Windows HPC, most aspects around application development.
Dedicated to all aspects of Message Passing Interface (MPI) on Windows HPC Server 2008 and Windows Compute Cluster Server 2003.
Dedicated to all aspects of UNIX integration with Windows HPC Server 2008 and Windows Compute Cluster Server 2003.
The manycore shift provides exciting opportunities for developers to create innovative natural and immersive computing experiences that utilize the performance power of multi- and manycore processors. Multi- and manycore architectures have immediate applications in games, digital media, computer-aided-design, business intelligence, data mining and virtual worlds.
Windows HPC Server 2008 introduces a new feature that will allow users to run general-purpose computation on graphics-processor units (GPGPU) programs through the Windows HPC Server 2008 Job Scheduler.
Developer Resources