Microsoft Windows HPC Server 2008 R2 for the Cluster Developer

Similar documents
"Charting the Course to Your Success!" MOC A Developing High-performance Applications using Microsoft Windows HPC Server 2008

Windows Communication Foundation (WCF) Visual Studio 2008

Microsoft Official Courseware Course Introduction to Web Development with Microsoft Visual Studio

Updating your Database Skills to Microsoft SQL Server 2012

Introduction to Web Development with Microsoft Visual Studio 2010

Provisioning SQL Databases

Introduction to Web Development with Microsoft Visual Studio 2010 (10267A)

Developing Windows Communication Foundation Solutions with Microsoft Visual Studio 2010

Configuring and Operating a Hybrid Cloud with Microsoft Azure Stack

DE Introduction to Web Development with Microsoft Visual Studio 2010

Administering Microsoft SQL Server Databases

Introduction to Web Development with Microsoft Visual Studio 2010

"Charting the Course... MOC A Introduction to Web Development with Microsoft Visual Studio Course Summary

Implementing a SQL Data Warehouse

DNWSH - Version: 2.3..NET Performance and Debugging Workshop

MOC 6461A C#: Visual Studio 2008: Windows Communication Foundation

20462C - Version: 1. Administering Microsoft SQL Server Databases

MS-20487: Developing Windows Azure and Web Services

Microsoft Windows PowerShell v2 For Administrators

Course Outline: Course 10267A: Introduction to Web Development with Microsoft Visual Studio 2010 Learning Method: Instructor-led Classroom Learning

Microsoft Implementing a SQL Data Warehouse

Deccansoft Software Services

COURSE OUTLINE: OD10267A Introduction to Web Development with Microsoft Visual Studio 2010

Microsoft Implementing and Managing Microsoft Server Virtualisation

Administer System Center Configuration Manager for Desktop Support

Developing Windows Communication Foundation Solutions with Microsoft Visual Studio 2010

10267 Introduction to Web Development with Microsoft Visual Studio 2010

20480B - Version: 1. Programming in HTML5 with JavaScript and CSS3

Administering Microsoft SQL Server 2012/2014 Databases

SQL Server Course Administering a SQL 2016 Database Infrastructure. Length. Prerequisites. Audience. Course Outline.

COURSE 10977A: UPDATING YOUR SQL SERVER SKILLS TO MICROSOFT SQL SERVER 2014

Microsoft SharePoint 2010, Application Development

Administering Microsoft SQL Server Databases

20767B: IMPLEMENTING A SQL DATA WAREHOUSE

DE-2310 Developing Web Applications Using Microsoft Visual Studio 2008 SP1

: 20488B: Customized Developing Microsoft SharePoint Server

Administering a SQL Database Infrastructure (M20764)

"Charting the Course... MOC B Updating Your SQL Server Skills to Microsoft SQL Server 2014 Course Summary

Administering System Center Configuration Manager and Intune

Developing Microsoft Azure and Web Services. Course Code: 20487C; Duration: 5 days; Instructor-led

20767: Implementing a SQL Data Warehouse

Parallel Computing. Hwansoo Han (SKKU)

Automating Administration with Windows PowerShell

Microsoft Microsoft SharePoint 2010 Application Development

Implementing a SQL Data Warehouse

ExecuTrain Course Outline MOC 6460A: Visual Studio 2008: Windows Presentation Foundation

Programming with Message Passing PART I: Basics. HPC Fall 2012 Prof. Robert van Engelen

20486-Developing ASP.NET MVC 4 Web Applications

Administering System Center Configuration Manager and Intune

Microsoft Administering Microsoft SQL Server 2014 Databases

Developing Web Applications Using Microsoft Visual Studio 2008 SP1

NE Administering System Center Configuration Manager and Intune

Performance Tuning & Optimizing SQL Databases Microsoft Official Curriculum (MOC 10987)

The Great SharePoint 2016/2013 Adventure for Developers

Planning and Administering SharePoint 2016

Implementing a SQL Data Warehouse

Developing Windows Azure and Web Services

20532D: Developing Microsoft Azure Solutions

[MS10962]: Advanced Automated Administration With Windows PowerShell

Microsoft SharePoint Server

Administering a SQL Database Infrastructure Microsoft Official Curriculum (MOC 20764)

Developing Microsoft Azure Solutions

2310C VB - Developing Web Applications Using Microsoft Visual Studio 2008 Course Number: 2310C Course Length: 5 Days

10987: Performance Tuning and Optimizing SQL Databases

DEVELOPING MICROSOFT SHAREPOINT SERVER 2013 ADVANCED SOLUTIONS. Course: 20489A; Duration: 5 Days; Instructor-led

Developing Microsoft.NET Applications for Windows (Visual Basic.NET)

Designing Database Solutions for Microsoft SQL Server 2012

Enabling and Managing Office 365 (NI152) 40 Hours MOC 20347A

CMB-207-1I Citrix Desktop Virtualization Fast Track

Developing Microsoft SharePoint Server 2013 Core Solutions

20347: Enabling and Managing Office hours

Azure Development Course

Designing Database Solutions for Microsoft SQL Server 2012

Microsoft Administering System Center Configuration Manager and Intune

Parallelism paradigms

6231B - Version: 1. Maintaining a Microsoft SQL Server 2008 R2 Database

Course 20488A: Developing Microsoft SharePoint Server 2013 Core Solutions

Course Outline. Performance Tuning and Optimizing SQL Databases Course 10987B: 4 days Instructor Led

Course 10324A: Implementing and Managing Microsoft Desktop Virtualization

MS-20696: Managing Enterprise Devices and Apps using System Center Configuration Manager

Implementing a Data Warehouse with Microsoft SQL Server 2012

SHAREPOINT DEVELOPMENT FOR 2016/2013

Super SQL Bootcamp. Price $ (inc GST)

Configuring and Deploying a Private Cloud DURATION: Days

Developing Rich Internet Applications Using Microsoft Silverlight 4

SQL Server Administration 10987: Performance Tuning and Optimizing SQL Databases. Upcoming Dates. Course Description.

20537A: Configuring and Operating a Hybrid Cloud with Microsoft Azure Stack

[MS10987A]: Performance Tuning and Optimizing SQL Databases

COURSE 20487B: DEVELOPING WINDOWS AZURE AND WEB SERVICES

Planning and Administering SharePoint 2016

Administering System Center Configuration Manager and Intune

Windows Presentation Foundation Visual Studio.NET 2008

Implementing and Maintaining Microsoft SQL Server 2008 Integration Services

OpenACC Course. Office Hour #2 Q&A

DNParallel - Version: 3. TPL Dataflow

Advanced Message-Passing Interface (MPI)

Administering Microsoft SQL Server 2012 Databases

Course Outline. Introduction to Azure for Developers Course 10978A: 5 days Instructor Led

Course 20764: Administering a SQL Database Infrastructure

NE Server Virtualization with Windows Server Hyper-V and System Center. Windows Server Summary. Introduction.

Transcription:

50291B - Version: 1 02 May 2018 Microsoft Windows HPC Server 2008 R2 for the Cluster Developer

Microsoft Windows HPC Server 2008 R2 for the Cluster Developer 50291B - Version: 1 5 days Course Description: This five-day instructor-led course provides students with the knowledge and skills to develop high-performance computing (HPC) applications for Microsoft Windows HPC Server 2008 R2. Students learn how to design, debug, tune and run high-performance computing applications under Windows HPC Server 2008 R2. Students also learn the most compelling technologies for building HPC applications, including parametric sweep, multi-threading, MPI, SOA, and Excel. Students program in Visual C++ as well as C#, and work with both managed and unmanaged code. Intended audience: This course is intended for software developers who need to develop long-running, compute-intensive, or data-intensive apps targeting multi-core and cluster-based hardware. No experience in the field of high-performance computing is required. Prerequisites: Before attending this course, students must have: Basic experience using the Windows platform. Basic programming experience on Windows using Visual Studio. 2 or more years of programming experience in C++ or C#. Objectives: Understand the goals of the high-performance computing (HPC) field. Measure and evaluate the performance of HPC apps. Design HPC apps using the a variety of technologies: parametric sweep, tasks, MPI, and SOA.

Design HPC apps targeting a variety of hardware: from single-core to multi-core to cluster-based. Implement HPC apps using C++ or C#. Integrate HPC apps with Windows HPC Server 2008 R2, including a client-friendly front-end. Performance tune HPC applications under Windows HPC Server 2008. Design HPC apps that take advantage of Azure compute resources. Design HPC apps that take advantage of HPC Services for Excel 2010. Topics: Module 1: Introduction to High-Performance Computing and HPC Server 2008 R2 Motivation for HPC Brief product history of CCS, HPCS, and HPCS 2008 R2 Brief overview of HPC Server 2008 R2 components, job submission, scheduler Product differentiators Measuring performance linear speedup Predicting performance Amdahl s law Lab : Introduction to HPC And Windows HPC Server 2008 º Submitting and monitoring jobs º Running an HPC app º Measuring performance º Measuring the importance of data locality Module 2: Developing Software for HPC Server 2008 R2 Design challenges Design patterns Common problem decompositions Common communication patterns Computation vs. communication Available HPC technologies: multi-threading, GPUs, MPI, SOA, etc. Data-mining and Parametric Sweep

Module 3: 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 Lab : Working with the Job Scheduler º Environment variables in HPC Server 2008 R2 º Exit codes and denoting success / failure º Checkpointing in case of failure º Multi-task jobs and task dependences Module 4: Multicore for Performance Parallel, multicore programming for responsiveness and performance Structured, fork-join parallelism Multicore in C# using the Task Parallel Library in.net 4 Multicore in VC++ using OpenMP and the Parallel Patterns Library Scheduling parallel, multicore apps on Windows HPC Server Lab : OPTIONAL: Multicore Programming in C# using Task Parallel Library º Creating a parallel, multicore app in C# and.net 4 º Running and measuring performance locally º Running and measuring performance on the cluster Module 5: Interfacing with HPCS-based Clusters Cluster Manager Job Manager Job Description Files clusrun Console window

PowerShell Scripts Programmatic access via HPCS API v2.0 Showing job progress Implementing job fault tolerance Lab : Interfacing with Windows HPC Server 2008 º Clusrun is your friend º Scripting º Using the HPCS API to submit and monitor a job Module 6: 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 Lab : Introduction to MPI º Creating a simple MPI app using Send and Receive º Running and measuring performance locally º Running and measuring performance on the cluster Module 7: MPI on the Microsoft Platform MSMPI: Microsoft MPI Data parallelism in MPI A real world example Broadcast Scatter Gather Barriers Reductions Defining your own reduction operator

Common pitfalls Lab : Data Parallelism with MPI s Collective Operations º Parallelizing an existing MPI application º Mapping Sends and Receives to Broadcast, Scanner, Gather, and All_reduce º Running and measuring performance locally º Running and measuring performance on the cluster Module 8: MPI Debugging, Tracing, and Performance Tuning Local MPI debugging with Visual Studio 2010 Remote MPI debugging with Visual Studio 2010 General MPI tracing Tracing with ETW (Event Tracing for Windows) Trace visualization Other tools for MPI developers: perfmon, resmon, and xperf Common performance problems in MPI Module 9: MPI Application Design Hiding latency by overlapping computation and communication Non-blocking communication Safety: detecting and avoiding deadlock MPI.NET Hybrid designs involving both MPI and OpenMP Buffering, error handling, I/O, and large datasets Remote memory access Module 10: Intro to SOA with HPC Server 2008 R2 Service-oriented architectures SOA and WCF Mapping SOA onto Jobs and the Job Scheduler Private vs. shared sessions Secure vs. insecure sessions Volatile vs. durable sessions Lab : Consuming a HPC-based SOA Service

º Deploying a SOA service º Building a desktop client to communicate with a SOA service º Working with volatile SOA sessions º Working with durable SOA sessions Module 11: Create SOA-based Apps with HPC Server 2008 R2 Service-side programming Service configuration Client-side programming options Proxies: Async WCF vs. HPC BrokerClient, Enumeration vs. Callback Lab : SOA-based HPC with HPCS and WCF º Creating a SOA service from scratch º Deploying a SOA service º Develop a client-side app to communicate using WCF proxy º Develop a client-side app to communicate using HPC BrokerClient proxy º Call a service with multiple entry points, concurrently Module 12: SOA Debugging, Tracing, and Performance Tuning Local SOA debugging with Visual Studio 2010 Remote SOA debugging with Visual Studio 2010 Low-level tracing with WCF Enabling WCF tracing via HPC Cluster Manager Common performance problems with SOA-based HPC apps Troubleshooting SOA services Module 13: HPC Services for Excel 2010 Excel as a computation engine Performing Excel computations on Windows HPC Server 2008 R2 Using HPC Services for Excel 2010 to run workbooks on the cluster Using Excel UDFs to run parallel computations on the cluster Module 14: Designing for Workstation and Azure nodes

Additional compute resources: on-premise workstations and off-premise Azure nodes Taking advantage of Workstation nodes Taking advantage of Azure nodes Module 15: Supporting and Emerging Technologies GPU computing with CUDA and HPC Server 2008 R2 Virtual Shared Memory with AppFabric Caching Large data processing with Dryad and DryadLINQ Cluster data reporting via the HPC Server API