Learning Parallel Programming --- from shared-memory multi-threading to distributed-memory multi-processing

We're working with Microsoft to develop several tutorials introducing developers to high-performance computing, parallel programming, and Windows HPC Server 2008.  Our first tutorial (for experienced HPC developers, "Exploiting Data Parallelism with OpenMP, MPI and HPC Server 2008"), is available here.  We are working on our second tutorial, "From Sequential to Parallel Development", which is nearing completion.  This is more introductory in nature, taking the traditional "sequential" developer step-by-step into the world of parallel programming.  The tutorial is extensive, currently 50 pages in length, complete with source code, lab exercises, and solutions in both VC++ and C#.

We start with a GUI-based Mandelbrot application, and show various ways to parallelize the application via multi-threading --- explicitly with .NET threads, then implicitly with OpenMP and the TPL (Task Parallel Library in the upcoming PFx, or Parallel Extensions to .NET).  We then architect a client-server version of the Mandelbrot app, introduce Windows HPC Server 2008, and show how to parallelize the app across a cluster.  This includes a discussion of many topics, including:

  • Multi-threading
  • Multi-processing
  • BackgroundWorker and Thread classes
  • OpenMP
  • TPL
  • MPI
  • MPI.NET
  • programming against the HPC Server 2008 API
  • automating application deployment and job submission

The goal is to show developers how to take a sequential, GUI-based application and parallelize this app across both multi-core and cluster-based hardware.  Here's the current draft of the tutorial document:  SeqToParallelHPC.pdf.  The current download including source code and lab exercises:  SeqToParallelHPC.zip.  Any and all feedback greatly appreciated.  Enjoy!


Posted Aug 18 2008, 09:29 PM by joe-hummel

Comments

Catching up after vacation « Tales from a Trading Desk wrote Catching up after vacation « Tales from a Trading Desk
on 08-19-2008 5:28 PM

Pingback from  Catching up after vacation « Tales from a Trading Desk

Academia.NET wrote RTM for HPC Server 2008 is now available
on 09-25-2008 2:41 PM

In case you missed it, RTM for Windows HPC Server 2008 is now available here . Don't forget to grab

Windows High Performance Computing (HPC) and Programming Resources « Angel “Java” Lopez on Blog wrote Windows High Performance Computing (HPC) and Programming Resources « Angel “Java” Lopez on Blog
on 11-05-2008 2:54 AM

Pingback from  Windows High Performance Computing (HPC) and Programming Resources « Angel “Java” Lopez on Blog

Angel "Java" Lopez wrote Recursos de Windows High Performance Computing (HPC) y Programación
on 11-08-2008 6:45 AM

Desde el último año, estuve investigando sobre computación distribuida y en grilla. Encontré bastantes

Recursos de Windows High Performance Computing (HPC) y Programaci??n | Buanzolandia wrote Recursos de Windows High Performance Computing (HPC) y Programaci??n | Buanzolandia
on 11-08-2008 5:13 PM

Pingback from  Recursos de Windows High Performance Computing (HPC) y Programaci??n | Buanzolandia

Recursos de Windows High Performance Computing (HPC) y Programaci??n | Buanzolandia wrote Recursos de Windows High Performance Computing (HPC) y Programaci??n | Buanzolandia
on 11-09-2008 3:15 AM

Pingback from  Recursos de Windows High Performance Computing (HPC) y Programaci??n | Buanzolandia

Fractal application revisited « Angel “Java” Lopez on Blog wrote Fractal application revisited « Angel “Java” Lopez on Blog
on 12-17-2008 2:47 AM

Pingback from  Fractal application revisited « Angel “Java” Lopez on Blog

Angel "Java" Lopez wrote Fractal revisitado
on 12-19-2008 6:20 AM

Este año, había escrito una demostración de generación de fractal, usando DSS/CCR, ver: Distributed Agents

Angel "Java" Lopez wrote Fractales usando MPI.NET y HPC
on 12-28-2008 11:50 AM

Actualicé mi ejemplo de fractal y ahora soporta MPI.NET (Message Passing Interface with .NET) y tasks

Add a Comment

(required)  
(optional)
(required)  
Remember Me?