accelerating applications using hpc server 2008

Post on 11-Feb-2016

23 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

SVR01. Accelerating Applications using HPC Server 2008. Ming Xu Principal Program Manager Microsoft Corporation. Serial vs. Scale-out Execution 3 minutes vs. 7 seconds. video. Session Objectives and Take- aways. Objectives Categorize HPC Application Patterns & Solutions - PowerPoint PPT Presentation

TRANSCRIPT

Accelerating Applications using HPC Server 2008

Ming XuPrincipal Program ManagerMicrosoft Corporation

SVR01

Serial vs. Scale-out Execution3 minutes vs. 7 seconds

video

Session Objectives and Take-aways> Objectives

> Categorize HPC Application Patterns & Solutions

> Introduce HPC SOA Programming Model> Leverage HPC Server 2008 to scale-out

workstation applications

> Take-aways> HPC Server reduces time-to-solution> Application performance model and fine-

tune skills

Asian Option Price Spreadsheet

// From Simon Benninga’s Book// “Financial Modeling” for (col = 0; col < 10; col++) for (row = 0; row < 10; row++) { Cell[row, col] = PriceAsianOption(…); Calculate average/stddev }

10rows

10 columns

PriceAsianOptions(…) contains 1,000,000 * 20 calculations

NoInter-loopdependency

Asian Option Pricing algorithm

Asian Option• 20 periods’ pay-off• stock’s up/down determined by mean and volatility

• u – up price jump• d - down price

jump 

Asian Option Pricing Algorithm Stock price

1. Using Monte-carlo simulation

to generate sample paths for a

stock S, P is the probability for

the stock to go down•   rand var > P: S up• rand var<= P: S

down

2. Calculate payoff• up: payoff += S * u• down: payoff -= S* d

3. Repeat 1 and 2 1M times and calculate the average payoff

4. Use risk-neutral rate to discount the Asian Option payoff: price = payoff / Rn

Asian Option Pricing Algorithm1. Using Monte-carlo

simulation to generate sample paths for a stock S, P is the probability for the stock to go down

•   rand var > P:S up

• rand var<= P: S down

2. Calculate payoff• up: payoff += S *

u• down: payoff -=

S* d3. Repeat 1 and 2 N

times and calculate the average and payoff

4. Use risk-neutral rate to discount the Asian Option payoff:

price = payoff / Rn

Code: Monte Carlo Pricing// Randomly generate 1000,000 pathsfor (int index = 0; index < 1000000; index++){ double sumPricePath = initial; // generate a path of 20 periods for (int i = 1; i <= 20; i++){ pricePath[0] = initial; double rn = rand.NextDouble(); if (rn > pidown){ pricePath[i] = pricePath[i - 1] * up; } else{ pricePath[i] = pricePath[i - 1] * down; } sumPricePath += pricePath[i]; } priceAverage = sumPricePath / (periods + 1); callPayOff = Math.Max(priceAverage-exercise, 0);  temp += callPayOff;}temp /= runs; // average payoffreturn temp / Math.Pow(interest, periods);

Monte Carlo Serial App

Ming XuPrincipal Program ManagerHPC

demo

Windows HPC Server 2008• Complete and integrated platform for computational

clustering• Built on top of the proven Windows Server 2008

platform• Integrated development environment, Visual StudioWindows Server

2008 HPC Edition

• Secure, Reliable, Tested

• Support for high performance hardware (x64, high-speed interconnects)

HPC Pack 2008

• HPC SOA Platform• Job Scheduler• Cluster Management• Message Passing

Interface

Microsoft Windows HPC Server 2008

• Integrated Solution out-of-the-box

• Leverages investment in Windows administration and tools

• Makes cluster operation easy as a single box

Available from http://www.microsoft.com/hpc

Parallel Programming Concepts

> Tightly Coupled

> Loosely-coupled

> Compute-driven/loop parallelfor (i = 0; i< 1000, i++)

{ … }> Data-driven/data-

parallelvar results = from baby in babies

where baby.Name == queryName &&

baby.State == queryState &&

baby.Year >= yearStart &&

baby.Year <= yearEnd orderby baby.Year ascending select baby;

Relationship amongProcessing Elements

Program Structure

HPC Application Patterns

Tightly-coupled Loosely-coupledRelationship

AmongProcessingElements

ProgramStructure

Data-drivendata-parallel

Compute-drivenLoop-parallel

SearchData-mining

Seismic

CrashSim

Structure Analysis

Weather

SolutionsPLINQ (Multi-core)Dryad-LINQ (Scale-out)

SolutionsTPL (Multi-core)HPC SOA (Scale-out)Parametric Sweep jobs (Scale-out)

SolutionsOpenMP (Multi-core)MPI (Scale-out)

Focus of this session

Real-timeRiskVaR

Excel UDF

Actuarialprocessing

DerivativeProduct pricing

DCC RenderingGenetic algorithms

Gene Sequencing

HPC SOA API

Excel Calculation Scale-out

Asian Option Pricing Algorithm1. Using Monte-carlo simulation to

generate sample paths for a stock S, P is the probability for the stock to go down

•   rand var > P: S up• rand var<= P: S down

2. Calculate payoff• up: payoff += S * u• down: payoff -= S* d

3. Repeat 1 and 2 N times and calculate the mean payoff

4. Use risk-neutral rate to discount the Asian Option payoff:

price = payoff / Rn

Parallel invocations

Visual Studio Tools for Office

FAQs

1. Which distributed computing framework to use?2. How to host the calculation logic on the compute

nodes?3. How do I invoke the calculation remotely?4. How do I debug my services on the compute nodes,

printf()?5. Remote invocations incur high overhead, do you

have any performance tips?6. When I move to the cloud, do I have to use a new

API?

Windows Communication Foundation

Client Service

MessageABC A B C

A B C

Address Binding Contract(Where) (How) (What)

Scenario: build to run

Visual Studio

Build Deploy

Client

Service DLLs

Package Run

Developers Administrators

Dev / Testenvironment

Production environment

Users

Install

CopyService DLLs

Register

Service

Service Deployment

Options for Service Deployment

service

DLLs

service

DLLs

service

DLLs

service

DLLs

service

DLLs

文件服务器

Local DeploymentService DLLs on the local drives

High PerfHard to update

Often used for ISV apps

Central DeploymentService DLLs on central file servers

Easy to updatePerf limited to the file server scalability

Often used for in-house apps

service

DLLs

File server

service

DLLs

Hybrid DeploymentFrequently updated dlls on central serverOther dlls on local drives

Often used for apps that use ISV’s services as well as in-house services

File server

service

DLLs

service

DLLs

service

DLLs

A Hello-world example

Ming XuPrincipal Program ManagerHPC

demo

Coding SummaryIt’s Easy>Established SOA Platform – WCF & tools

support>Add service reference makes service data

types & methods available to an application with just a few clicks

>Streamlined debugging>Yes, I don’t have to worry about where

these services run or how to talk to them individually

Client

Broker Node

Compute

Node

Compute

Node

Compute

Node

Head Node

Architecture Overview

JobScheduler

NodeMgr

. . .

NodeMgr

NodeMgr

ServiceInstanc

e

ServiceInstanc

eServiceInstanc

e

ServiceInstanc

eServiceInstanc

e

ServiceInstanc

e

1. Create Session

2. Launch Services

2. Launch Broker

Broker3. Service Calls

Future: Service instances in the cloud

Scale-out Asian Option Pricing Application

Ming XuPrincipal Program ManagerHPC

demo

Broker

How can the solution span code developed in different languages and frameworks?

HTTPNetTcp

Custom

HpcServiceHost

WCF Wrappper Service

Native DLL

CustomService

A Performance Problem DiscussionCustomer: how come my HPC SOA application doesn’t

perform? The machines’ utilization is less than 80%

Solution Specialist: what’s the message size per service call, what’s the measured throughput?

Customer: about 16k & 700 msgs/secSolution Specialist: What’s the service call duration?Customer: 2 secondsSolution Specialist: how many cores are you

requesting?Customer: 2000 Solution Specialist: let me do the math…oh, you’ve

exceeded your sustainable service instances (SSI)Customer: what’s S.S.I?

Round-trip latency

1 2 4 8 16 32 64 128

256

51210

2420

4840

9681

9216

384

00.20.40.60.8

11.21.41.6

SOA Pingpong, Small Message Latency

WSDIPoIBGige

Message Size ( bytes )

Roun

d Tr

ip L

aten

cy (

ms

)

Service Call ProfilingNumber ofServiceInstances

Call Duration )

N

1

The Nth service instance: Start processing 1st call

End processing 1st callStart processing 2nd call

End processing 2nd callThe sloperepresentsthe throughput(# msgs / sec)

Determined by

1. Client/Broker node capability2. Message size

time

234

Sustainable Service InstancesNumber ofServiceInstances (N)

Call Duration

SustainableServiceInstances ( S )

N <= SHigh Node Utilization

N > SLow Node Utilization

time

S = throughput * call_duration

How to explain the customer’s problem?The measured throughput for 16k messages on customer’s

broker machine:

Throughput = 700 msgs / second

Call duration = 2 secondsSustainable Service Instances = 700 * 2 = 1,400 The session requests 2,000 cores

The session uses (1400 / 2000 = 0.7) 70% of the allocated cores

Buying a faster broker node can be a solution but

are there any other options?

Scalability Tips> Increase call granularity> Reduce message size

> Call-by-reference> Only send pointers to the data NOT the data

itself> Let services (with bigger pipes) load the data

> Avoid sending common, shared data per service call> Use Data Cache Servers to store forward large

data

An Example Architecture

What’s new in HPC Server 2008 R2> In Beta 1 now!

http://connect.microsoft.com> New fire-and-recollect programming

model> Service finalization hooks> Improved Java interoperability> Automatic restart and failover of

broker nodes> Improved management, monitoring,

diagnostics and debugging

File & Recollect // Service Application

[ServiceContract] public interface IService1 { [OperationContract] string Echo(string); }  class Service1 : IService { public string Echo (string input) { return Environment.MachineName + ":" + input; } }

InteractiveConnectedapplicatio

ns

request

response

Client Process (Send

requests)

request

Client Process

(Get responses

)response

HPCSvr 2008

R2

Request &reply

Fire &Recollect

Come to our booth and we’ll show you a demo

Summary Which Distributed Computing Framework to use?

WCF – the framework and tools support How do I host service on compute nodes

HPC Service deployment (compute-node, central and hybrid modes)

How to invoke remove methods? Async method invocation or SendRequests()/GetResponses() –

new in R2 How to debug services on the compute nodes

Using VS HPC SOA debugger add-in Remote invocation is higher, do you have any performance tips

Use SSI to measure your performance goal Right granularity, reduce message sizes

Do I have to use a new API when moving to the cloud? No, we preserve your investment in HPC Server

Parallel Computing and PDC09> Overview

> FT07: The State of Parallel Programming> WKSP08: Patterns of Parallel Programming

> Managed code in Visual Studio 2010> FT03: Manycore and .NET 4: A Match Made in Visual Studio 2010> FT21: PLINQ: LINQ, but Faster!> FT20: F# for Parallel and Asynchronous Programming

> Native code in Visual Studio 2010> SVR18: Developing Applications for Scale-Up Servers Running Windows Server 2008 R2> SVR10: Lighting up Windows Server 2008 R2 Using the ConcRT on UMS> FT19: C++ Forever: Interactive Applications in the Age of Manycore

> HPC Server> SVR01: Accelerating Applications Using Windows HPC Server 2008

> Research and Incubation> VTL02: Axum: A .NET Language for Safe and Scalable Concurrency> VTL32: Concurrency Fuzzing & Data Races> SVR17: Data-Intensive Computing on Windows HPC Server with DryadLINQ> VTL04: Rx: Reactive Extensions for .NET> FT36: Future of Garbage Collection

Track Resources> This session on Video

> http://channel9.msdn.com/shows/The+HPC+Show/ Look for “Windows HPC WCF Integration Part 1-4

> Microsoft HPC 2008 R2 Web site – download Today!> http://connect.microsoft.com

> Windows HPC Community site> http://www.windowshpc.net

> Windows Server x64 information> http://www.microsoft.com/x64/

> Windows Server System information> http://www.microsoft.com/windowsserver

> Get the Facts Web site> http://www.microsoft.com/getthefacts

YOUR FEEDBACK IS IMPORTANT TO US! Please fill out session evaluation

forms online atMicrosoftPDC.com

Learn More On Channel 9> Expand your PDC experience through

Channel 9

> Explore videos, hands-on labs, sample code and demos through the new Channel 9 training courses

channel9.msdn.com/learnBuilt by Developers for Developers….

top related