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
Gesicherter Termin

Microsoft Azure Administrator

AZ-104T00 - Online im Virtual Classroom mit Azure MVP als Trainer

-

Gesicherter Termin am 08.12.2020 zum Aktionspreis!
Jetzt noch anmelden!

Gesicherter Termin

Microsoft Azure Fundamentals

-

Gesicherter online Termin am 07.12.2020 zum Sonderpreis!

Jetzt teilnehmen!

Virtual Classroom Schulungen
 
 
 

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.

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
 

Christine Röppenack
Seminarberaterin
Telefon: 0911 6500 8 222
Email: info@it-schulungen.com
 

Diese Seite weiterempfehlen:

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