Warnung Icon Sie haben in Ihrem Browser Javascript deaktiviert! Bitte aktivieren Sie Javascript um eine korrekte Darstellung und Funktionsweise von IT-Schulungen zu gewährleisten. Warnung Icon
Header Background
Header Image
 
 
 

MOC 50291 Developing High-performance Applications using Microsoft Windows HPC Server 2008

Seminardauer: 5 Tage

Das Seminar "MOC 50291 Developing High-performance Applications using Microsoft Windows HPC Server 2008" wurde abgekündigt. Wir können Ihnen diese Schulung in Form eines Workshops in Ihrem Unternehmen anbieten.

zur unverbindlichen Anfrage

Ziele

In dieser Schulung lernen die Entwickler - High-Performance Computing (HPC) Anwendungen für Microsoft Windows HPC Server 2008 zu entwickeln.
Das Produkt Microsoft Windows HPC Server 2008, die Vorgehensweisen für Design, Debugging, Tuning und Betrieb von High-Performance Computing-Anwendungen unter HPC Server 2008 kennen.

Sowie Technologien für das Erstellen von HPC-Anwendungen werden vorgestellt, einschließlich Parametric Sweep, Multithreading, OpenMP, .NET Task Parallel Library, MPI, MPI.NET und der SOA-basierte Ansatz für HPC Server.

Die Teilnehmer entwickeln in Visual C++ sowie C# und arbeiten sowohl mit verwaltetem (managed) als auch nicht-verwaltetem (unmanaged) Code.

Zielgruppe

Softwareentwickler

Voraussetzungen

Entwickler mit sehr guten Kenntnissen bezüglich Windows Plattformen

Visual Studio

C++ und/oder C#

Agenda

Introduction to High-Performance Computing and HPC Server 2008

  • Motivation for HPC
  • Brief product history of CCS and HPCS
  • Brief overview of HPC Server 2008 - components, job submission, scheduler
  • Product differentiators
  • Software development technologies: parametric sweep, threads, OpenMP, MPI, SOA, etc.
  • Measuring performance - linear speedup
  • Predicting performance - Amdahl’s law

Multi-threading for Performance

  • Multi-threading for responsiveness and performance
  • The costs of multi-threading
  • Structured, fork-join parallelism
  • Multi-threading in C# using the .NET Thread class
  • Multi-threading in VC++ using the Windows API
  • Load balancing
  • Scheduling multi-threaded apps on Windows HPC Server

The Dangers of Multithreading

  • Race conditions
  • Critical sections
  • Starvation
  • Livelock
  • Deadlock
  • Compiler and language implications
  • Memory models
  • Locks
  • Interlocking
  • Lock-free designs

The HPCS Job Scheduler

  • Throughput vs. performance
  • Nodes vs. sockets vs. cores
  • Jobs vs. Tasks
  • Job and task states
  • Default scheduling policies
  • The impact of job priorities and job preemption
  • Job resources and dynamic growing / shrinking
  • Submission and activation filters

Parallel Application Design

  • Two sample design problems…
  • Foster’s method
  • Common problem decompositions
  • Common communication patterns
  • Computation vs. communication
  • Design patterns: master-worker, pipeline, map-reduce, SOA, parametric sweep, and more

Introduction to OpenMP

  • What is OpenMP?
  • Shared-memory programming
  • Using OpenMP in Visual Studio with VC++
  • Parallel regions
  • Execution model
  • Data parallelism
  • Load balancing, static vs. dynamic scheduling
  • Scheduling OpenMP apps on Windows HPC Server

Running and measuring performance on the cluster

  • Barriers
  • Critical sections
  • Synchronization approaches
  • Implementing common design patterns - conditional, task, master-worker, nested
  • Data coherence and flushing
  • Environment variables
  • Common pitfalls

Introduction to the .NET Task Parallel Library

  • What is the TPL?
  • Moving from threads to tasks
  • Using the TPL in Visual Studio with C#
  • Execution model
  • Parallel.For
  • Data and task parallelism
  • Synchronization approaches
  • Concurrent data structures
  • Scheduling TPL-based apps on Windows HPC Server

Interfacing with HPCS-based Clusters

  • Cluster Manager
  • Job Manager
  • Job Description Files
  • clusrun
  • Console window
  • PowerShell
  • Scripts
  • Programmatic access via HPCS API v2.0

Intro to SOA with HPC Server 2008

  • Service-oriented architectures
  • SOA and WCF
  • Mapping SOA onto Jobs and the Job Scheduler
  • Private vs. shared sessions
  • Secure vs. insecure sessions

Create SOA-based Apps with HPC Server 2008

  • Service-side programming
  • Service configuration
  • Client-side programming
  • WCF configuration and tracing

General Performance Tuning of Parallel Applications

  • Performance counters
  • Heat map in Windows HPC Server 2008
  • Customizing the heat map
  • perfmon
  • xperf (aka the Windows Performance Toolkit)
  • SOA tuning
  • What to look for…
  • Other tools

Introduction to MPI

  • Shared-memory vs. distributed-memory
  • The essence of MPI programming - message-passing SPMD
  • Microsoft MPI
  • Using MSMPI in Visual Studio with VC++
  • Execution model
  • MPI Send and Receive
  • mpiexec
  • Scheduling MPI apps on Windows HPC Server

Data Parallelism and MPI’s Collective Operations

  • Data parallelism in MPI
  • A real world example
  • Broadcast
  • Scatter
  • Gather
  • Barriers
  • Reductions
  • Defining your own reduction operator
  • Common pitfalls

MPI.NET

  • Why MPI.NET?
  • Using MPI.NET in Visual Studio with C#
  • Type-safe Send and Receive
  • Collective operations in MPI.NET
  • Execution model
  • Scheduling MPI.NET apps on Windows HPC Server

Using MPI - Debugging, Tracing, and Other Tools

  • Local debugging with Visual Studio
  • Remote debugging with Visual Studio
  • General MPI tracing
  • Tracing with ETW (Event Tracing for Windows)
  • Trace visualization
  • Other tools for MPI developers

Designing MPI Applications

  • Hiding latency by overlapping computation and communication
  • Avoiding deadlock
  • Hybrid designs involving both MPI and OpenMP
  • Buffering
  • Error handling
  • I/O and large datasets

MPI-2

  • Groups
  • Communicators
  • Topologies
  • Non-scalar data: packing/unpacking, non-contiguous arrays, and user-defined datatypes
  • MPI I/O
  • Remote memory access
  • [ Dynamic process creation is not supported in MSMPI ]

Excel-based HPC Apps

  • Excel as a computation engine
  • Performing Excel computations on Windows HPC Server 2008
  • Using Excel Services
  • Using Excel UDFs
  • Future versions of Excel and HPC Server

Porting UNIX apps to Windows HPC Server 2008

  • The most common porting issues
  • 32-bit to 64-bit
  • UNIX calls
  • Manual porting of UNIX code
  • Cygwin
  • MinGW
  • Microsoft SUA - Subsystem for UNIX-based Applications

Open Grid Forum HPC Basic Profile

  • What is the OGF HPC Basic Profile?
  • Platform-neutral job submission
  • JSDL - Job Submission Description Language
  • Enabling in Windows HPC Server 2008

Setup and Administration of Windows HPC Server 2008

  • Hardware requirements
  • Software requirements
  • Initial decisions
  • Headnode setup
  • Compute node setup
  • Broker node setup
  • Developer machine setup
  • Diagnostics
  • Maintenance - including performance
  • Troubleshooting

Schulungsunterlagen

nach Absprache
 
 

Europaweit unter den Besten
Unser Education Center wird seit 2012 beim jährlichen Leistungsaudit für das ITCR - International Training Center Rating® jeweils in der höchsten Leistungsstufe mit 5 von 5 Sternen ausgezeichnet.
Das bestätigt unseren langjährigen Premium-Status als Bildungsanbieter und beweist gleichzeitig, dass wir zu den besten Schulungshäusern in Europa gehören.

IT-Schulungen.com 5 Sterne

 Microsoft Learning Partner

Linux Foundation Training Partner

LPI Gold Approved Training Partner

 
 

Diese Seite weiterempfehlen:

Merkzettel Icon
0
Merkzettel öffnen
0
Besuchsverlauf ansehen
IT-Schulungen.com Control Panel