57
Terry Leeper Terry Leeper Director Platform Strategy Director Platform Strategy EMEA EMEA 64-bit and High 64-bit and High Performance Performance Computing Computing

Terry Leeper Director Platform Strategy EMEA 64-bit and High Performance Computing

Embed Size (px)

Citation preview

Terry LeeperTerry LeeperDirector Platform StrategyDirector Platform StrategyEMEAEMEA

64-bit and High 64-bit and High Performance Performance ComputingComputing

AgendaAgenda 64-bit Architectures and Review64-bit Architectures and Review OS Release InformationOS Release Information Developer RoadmapDeveloper Roadmap Scientific Computing FeaturesScientific Computing Features Server 2003 HPCServer 2003 HPC

Introduction: Why 64-bit?Introduction: Why 64-bit?

Eliminates the 4GB Eliminates the 4GB memory barrier inherent memory barrier inherent in 32-bit systemsin 32-bit systems

Same familiar Windows Same familiar Windows environmentenvironment

Speeds Time to MarketSpeeds Time to Market Leverages existing Leverages existing

Windows development Windows development skillsskills

Improves Reliability and Improves Reliability and AvailabilityAvailability

Improves Performance Improves Performance and Scalabilityand Scalability

Same familiar Windows Same familiar Windows environmentenvironment

Reduces the number of Reduces the number of systems you need to systems you need to managemanage

Reduces Total Cost of Reduces Total Cost of Ownership (TCO)Ownership (TCO)

Leverages existing Leverages existing Windows administration Windows administration skillsskills

64-bit Functionality 64-bit Functionality Benefits…Benefits…

RDBMS RDBMS Scientific computingScientific computing Data modellingData modelling Physical system simulationPhysical system simulation CAD/CAECAD/CAE ImagingImaging Data miningData mining ERP / Manufacturing / Process modellingERP / Manufacturing / Process modelling Shared application hostingShared application hosting Server consolidationServer consolidation

HW Platform OverviewHW Platform Overview 64-bit computing is not new to PC platforms64-bit computing is not new to PC platforms

1993: 64-bit DEC Alpha started shipping1993: 64-bit DEC Alpha started shipping 1996: Sun Ultra™ w/64-bit UltraSPARC ™1996: Sun Ultra™ w/64-bit UltraSPARC ™

May 2001: Intel ships Itanium™May 2001: Intel ships Itanium™ July 2002: Intel ships ItaniumJuly 2002: Intel ships Itanium22™™ April 2003: AMD ships Opteron™April 2003: AMD ships Opteron™ 64-bit machines enable high-performance 64-bit machines enable high-performance

computingcomputing Larger word sizeLarger word size Larger address spaceLarger address space Excellent for large data sets of precise numbersExcellent for large data sets of precise numbers

Seismic data, High-energy physics, Turbulent Seismic data, High-energy physics, Turbulent flow calculations/prediction (e.g. weather)flow calculations/prediction (e.g. weather)

Supported ArchitecturesSupported Architectures

x64x64(64-bit Extensions)(64-bit Extensions)

IPFIPF(Intel® Itanium® Processor Family)(Intel® Itanium® Processor Family)

Based on 64-bit Based on 64-bit extensions to the x86 extensions to the x86 instruction setinstruction set

Lets customers take Lets customers take advantage of their advantage of their investment in 32-bit investment in 32-bit Windows applications, Windows applications, while also powering the while also powering the latest 64-bit technologylatest 64-bit technology

Based on Explicitly Based on Explicitly Parallel Instruction Parallel Instruction Computing (EPIC) Computing (EPIC) architecture.architecture.

Gives customers the Gives customers the highest levels of highest levels of scalability on the scalability on the Windows platform Windows platform delivering a cost-delivering a cost-effective alternative to effective alternative to RISC architecturesRISC architectures

ItaniumItanium R&D started in ’94 with HP and IntelR&D started in ’94 with HP and Intel

Instruction set took shape ~1997Instruction set took shape ~1997

EPICEPIC Explicitly Parallel Instruction ComputingExplicitly Parallel Instruction Computing Lessons from RISC and used multiple Lessons from RISC and used multiple

optimizationsoptimizations Predication Predication SpeculationSpeculation Instruction-levelInstruction-level

parallelismparallelism Register StackRegister Stack

ArchitectureArchitecture

Architecture Overview: x64Architecture Overview: x64Architecture Overview: x64Architecture Overview: x64

Stretch x86 architectureStretch x86 architecture Runs legacy x86 at machine speedsRuns legacy x86 at machine speeds Increased register width of x86 Increased register width of x86

registers to 64-bitregisters to 64-bit 8 additional general purpose registers8 additional general purpose registers

REX instruction prefix addresses the new REX instruction prefix addresses the new registersregisters

8 additional 128 bit XMM registers8 additional 128 bit XMM registers VC++ does not generate x87 nor MMX codeVC++ does not generate x87 nor MMX code

Stretch x86 architectureStretch x86 architecture Runs legacy x86 at machine speedsRuns legacy x86 at machine speeds Increased register width of x86 Increased register width of x86

registers to 64-bitregisters to 64-bit 8 additional general purpose registers8 additional general purpose registers

REX instruction prefix addresses the new REX instruction prefix addresses the new registersregisters

8 additional 128 bit XMM registers8 additional 128 bit XMM registers VC++ does not generate x87 nor MMX codeVC++ does not generate x87 nor MMX code

Platform PositioningPlatform Positioning

Scalability

32-bit x86

64-bit x64

64-bit IPF

Mainstream

Versatile

Most Scalable

Core 64-bit Developer Core 64-bit Developer ValueValue

Microsoft developer strategy for 64-bit:Microsoft developer strategy for 64-bit: Provide a well defined migration for developers Provide a well defined migration for developers

porting their Win32 code to Windows 64-bit versionsporting their Win32 code to Windows 64-bit versions Provide high performance, demanding code Provide high performance, demanding code

developers solutions today for native C++ as well developers solutions today for native C++ as well at .NET codeat .NET code

Provide mainstream developers 64 bit power in .NET Provide mainstream developers 64 bit power in .NET Framework 2.0 and Visual Studio 2005Framework 2.0 and Visual Studio 2005 ““It just works” goalIt just works” goal Simple guidelines for code portability between hardware Simple guidelines for code portability between hardware

architecturesarchitectures .NET Framework 1.1 will run in 32-bit mode (WoW64) .NET Framework 1.1 will run in 32-bit mode (WoW64)

using Windows Server 2003 SP1using Windows Server 2003 SP1 Visual Studio 2005 runs on WoW64 – remote debug Visual Studio 2005 runs on WoW64 – remote debug

supportedsupported

Microsoft ProductMicrosoft Product 32-bit32-bit 64-bit64-bit

x86x86 IPFIPF x64x64

Windows XP Professional x64 EditionWindows XP Professional x64 Edition

Windows Server 2003 Web EditionWindows Server 2003 Web Edition

Windows Server 2003 Standard EditionWindows Server 2003 Standard Edition

Windows Server 2003 Enterprise EditionWindows Server 2003 Enterprise Edition

Windows Server 2003 Datacenter EditionWindows Server 2003 Datacenter Edition

.NET Framework.NET Framework

MS SQL ServerMS SQL Server

Product RoadmapProduct Roadmap

Available now

Scheduled for release in 1H05

Scheduled for release in 1H05

* *

* Support for 32-bit .Net Framework version 1.1 with OS builds 1172 and higher for IPF and x64.

32-bit Application Support32-bit Application Support 64-bit Windows supports 32-bit code via a 64-bit Windows supports 32-bit code via a

32-bit emulation component called Windows 32-bit emulation component called Windows on Windows 64 (WOW64)on Windows 64 (WOW64)

Most 32-bit applications operate seamlesslyMost 32-bit applications operate seamlessly Applications using 16-bit application Applications using 16-bit application

installersinstallers 64-bit Windows does not run 16-bit code 64-bit Windows does not run 16-bit code

Applications that require 32-bit file system Applications that require 32-bit file system filter drivers or other kernel-mode driversfilter drivers or other kernel-mode drivers 64-bit Windows requires all such drivers to be 64-64-bit Windows requires all such drivers to be 64-

bit nativebit native Applications that explicitly install and require a Applications that explicitly install and require a

32-bit kernel-mode system 32-bit kernel-mode system

WoW… It Works!WoW… It Works!WoW… It Works!WoW… It Works! Windows on Windows 64 (WOW64)Windows on Windows 64 (WOW64) Isolates 32-bit ApplicationsIsolates 32-bit Applications

Notably file and registry isolationNotably file and registry isolation ConsoleConsole GUIGUI ServicesServices

Separate DLLsSeparate DLLs Performance hit?Performance hit?

Substantial on ItaniumSubstantial on Itanium Little to none on x64Little to none on x64

Windows on Windows 64 (WOW64)Windows on Windows 64 (WOW64) Isolates 32-bit ApplicationsIsolates 32-bit Applications

Notably file and registry isolationNotably file and registry isolation ConsoleConsole GUIGUI ServicesServices

Separate DLLsSeparate DLLs Performance hit?Performance hit?

Substantial on ItaniumSubstantial on Itanium Little to none on x64Little to none on x64

Support for .NET Framework-Support for .NET Framework-based Applicationsbased Applications

Support for the 32-bit .NET Framework Support for the 32-bit .NET Framework version 1.1 version 1.1 Support for both x64 and Itanium versions of Support for both x64 and Itanium versions of

Windows server and clientWindows server and client Supports 32-bit managed applications on Supports 32-bit managed applications on

64-bit Windows64-bit Windows The 64-bit and 32-bit .NET Framework is The 64-bit and 32-bit .NET Framework is

due in H1 2005 as part of the Whidbey due in H1 2005 as part of the Whidbey release of Visual Studiorelease of Visual Studio

When the 64-bit .NET Framework is When the 64-bit .NET Framework is released, 32-bit managed applications will released, 32-bit managed applications will be able to run on the 64-bit CLR be able to run on the 64-bit CLR seamlesslyseamlessly

Support for J# will be for 32-bit version Support for J# will be for 32-bit version of .NET frameworkof .NET framework

.NET Framework for 64-bit .NET Framework for 64-bit Current .NET Framework (v1.0 and Current .NET Framework (v1.0 and

v1.1) are not supported natively on 64-v1.1) are not supported natively on 64-bitbit .NET Framework v1.1 will run on WoW64 .NET Framework v1.1 will run on WoW64

on Windows Server SP1on Windows Server SP1 Native support delivered in .NET Native support delivered in .NET

Framework v2.0Framework v2.0 Typical pure .NET applications work Typical pure .NET applications work

with no recompilationwith no recompilation Code can be portable across processor Code can be portable across processor

architecturesarchitectures x86 ↔ IA64 ↔ AMD64x86 ↔ IA64 ↔ AMD64 Optional compiler/project switches to Optional compiler/project switches to

specify target if requiredspecify target if required

Writing Managed Code with Writing Managed Code with an eye on 64-bitan eye on 64-bit VerifiableVerifiable

No native code (IL only)No native code (IL only) No pointer arithmeticNo pointer arithmetic

Follow Interop RulesFollow Interop Rules Know Architecture DifferencesKnow Architecture Differences Be careful when using Floating PointBe careful when using Floating Point

Use new Floating Point models in Use new Floating Point models in Whidbey compilerWhidbey compiler

• “ “Orcas” releaseOrcas” release

• Windows “Longhorn” Windows “Longhorn” integrationintegration

• New UI tools and New UI tools and designers designers

• Extensive managed Extensive managed interfacesinterfaces

Visual Studio Visual Studio “Longhorn”“Longhorn”

Visual StudioVisual Studio.NET 2003.NET 2003

• “ “Everett Release”Everett Release”

• Windows Server 2003 Windows Server 2003 integrationintegration

• Support for .NET Support for .NET Compact Framework Compact Framework and device and device development development

• Improved performanceImproved performance

Visual Studio Visual Studio 20052005

• “ “Whidbey” releaseWhidbey” release

• SQL Server integrationSQL Server integration

• 64-bit Framework64-bit Framework

• Improved IDE Improved IDE productivity and productivity and community supportcommunity support

• Extended support for Extended support for XML Web servicesXML Web services

• Office programmabilityOffice programmability

Developer RoadmapDeveloper Roadmap

Using COM ComponentsUsing COM Components

COM is nativeCOM is native Neutral apps may use platform specific Neutral apps may use platform specific

COM componentsCOM components No COM interop between architecturesNo COM interop between architectures Component may not exist on 64-bitComponent may not exist on 64-bit May elect to run in WoW onlyMay elect to run in WoW only

Porting your native application to 64-bitPorting your native application to 64-bit Pretty StraightforwardPretty Straightforward Compiler switch (-Wp64)Compiler switch (-Wp64) 64-bit brings differences – LLP6464-bit brings differences – LLP64

T*, size_t: 64 bitT*, size_t: 64 bit int, long: built-in integers are ALL 32 bitint, long: built-in integers are ALL 32 bit long long: 64bit alwayslong long: 64bit always

Alignment changesAlignment changes Misalignment can be fatal on ItaniumMisalignment can be fatal on Itanium

APIAPI Data Data ModelModel intint longlong pointerpointer

Win32Win32 ILP32ILP32 3232 3232 3232

Win64Win64 LLP64LLP64 3232 3232 6464

UNIXesUNIXes LP64LP64 3232 6464 6464

Win32 for 64-bitWin32 for 64-bit Pointers and types derived from Pointers and types derived from

pointer, e.g. handles, are 64-bit longpointer, e.g. handles, are 64-bit long A few others go 64, e.g. WPARAM, A few others go 64, e.g. WPARAM,

LPARAM, LRESULT, SIZE_T LPARAM, LRESULT, SIZE_T Rest are the same, e.g., 32-bit INT, Rest are the same, e.g., 32-bit INT,

DWORD, LONGDWORD, LONG Only five replacement APIs!Only five replacement APIs!

Four for Window/Class DataFour for Window/Class Data Replaced by Polymorphic (_ptr) Replaced by Polymorphic (_ptr)

versionsversions Updated constants used by these APIsUpdated constants used by these APIs

One (_ptr) version for flat scroll bars One (_ptr) version for flat scroll bars propertiesproperties

Avoiding Alignment Avoiding Alignment ProblemsProblemsAllocate on aligned boundariesAllocate on aligned boundaries

Use __declspec(align) to align data to Use __declspec(align) to align data to specific boundryspecific boundry

Example: __declspec(align) int abc;Example: __declspec(align) int abc; Can use dynamically with _aligned_malloc() Can use dynamically with _aligned_malloc()

family of runtime routinesfamily of runtime routines__unaligned__unaligned keyword tells compiler to keyword tells compiler to generate code to handle misalignmentgenerate code to handle misalignment Generally not recommendedGenerally not recommended

x64 handles alignment faults in x64 handles alignment faults in hardwarehardware

__unaligned Example__unaligned Example

char *a;char *a;

long *b;long *b;

// Code doing stuff for a and b// Code doing stuff for a and b

b = (long *)a;b = (long *)a;

long c = *b; // uh-oh EXCEPTIONlong c = *b; // uh-oh EXCEPTION

__unaligned Example__unaligned Example

char *a;char *a;

_unaligned_unaligned long *b; long *b;

// Code doing stuff for a and b// Code doing stuff for a and b

b = (long *)a;b = (long *)a;

long c = *b;long c = *b; // just a // just a performanceperformance

// hit// hit

Alignment violation fix-upsAlignment violation fix-ups

It’s slightly different for each platformIt’s slightly different for each platform x86x86

Exception ThrownException Thrown EXCEPTION_DATATYPE_MISALIGNMENTEXCEPTION_DATATYPE_MISALIGNMENT OS fixes it upOS fixes it up

ItaniumItanium Same as x86, except the OS does not fix it Same as x86, except the OS does not fix it

upup Exceptions are visible to the applicationExceptions are visible to the application

AMD64AMD64 Hardware does not generate exceptionHardware does not generate exception

Fix up done at the hardware levelFix up done at the hardware level

How Expensive is it?How Expensive is it?

Clearly not very cheap!Clearly not very cheap!From whitepaper on data alignmentFrom whitepaper on data alignment

Common Issues Moving to 64BitCommon Issues Moving to 64Bit

Assignment of ptr to int and vice versaAssignment of ptr to int and vice versa Inadvertent casting (DWORD vs. Inadvertent casting (DWORD vs.

LPARAM)LPARAM) Don’t assume bitnessDon’t assume bitness

0xffffffff != -10xffffffff != -1 Testing the most significant bit?Testing the most significant bit?

Bit operations on integral valuesBit operations on integral values 1 << 33 = ?1 << 33 = ?

Algorithms dependant on the bit sizeAlgorithms dependant on the bit size Hashing pointersHashing pointers

Floating Point Architecture Floating Point Architecture IssuesIssues Floating Point ExpressionsFloating Point Expressions

Don’t compare for equalityDon’t compare for equality Expression evaluation will differ on each Expression evaluation will differ on each

platformplatform

Understand IEEE-754 standardUnderstand IEEE-754 standard Sin(x)Sin(x) may give answer outside [-1, 1] may give answer outside [-1, 1] CRT routines may return different resultsCRT routines may return different results

Software Migration TipsSoftware Migration Tips Use portable data types instead of non-Use portable data types instead of non-

portable onesportable ones Use Use sizeof()sizeof() to determine data type sizes at to determine data type sizes at

compile timecompile time Use FIELD_OFFSET macro to determine the Use FIELD_OFFSET macro to determine the

offset of a field in a structure at compile timeoffset of a field in a structure at compile time Avoid platform dependent assembler code Avoid platform dependent assembler code Develop/use well-isolated, abstract interfaces Develop/use well-isolated, abstract interfaces

into platform dependent codeinto platform dependent code Avoid explicit structure packing unless Avoid explicit structure packing unless

absolutely necessaryabsolutely necessary

Will Code Run Faster on Will Code Run Faster on 64bit?64bit? Maybe… Depends on a lot of factorsMaybe… Depends on a lot of factors Is memory a bottleneck?Is memory a bottleneck? Are there pointers in the working set Are there pointers in the working set

data?data? Is it instruction cache bound?Is it instruction cache bound? Is it floating point intensive?Is it floating point intensive? Does the use exceptions for control Does the use exceptions for control

flow?flow?

struct node { char *l;

struct tnode *prev;struct node *next;int i;char s;

}

Reordering Types on 64bit Can Save Reordering Types on 64bit Can Save SpaceSpace

struct node { char *l; char s; struct tnode *prev; int i; struct node *next;}

4 8 12 16 20 24 28 32 36

4 128 16 20 24 28

padding padding

Exception HandlingException Handling

Throw exceptions for exceptional Throw exceptions for exceptional casescases What exactly does that mean?What exactly does that mean?

Throwing/catching exceptions is Throwing/catching exceptions is expensiveexpensive Adding try-blocks to the code is cheap at Adding try-blocks to the code is cheap at

execution timeexecution time Adds to the image size (increases .pdata Adds to the image size (increases .pdata

section size)section size)

Visual Studio SupportVisual Studio SupportVisual Studio 2005Visual Studio 2005 Visual Studio 2005 runs on x86, IA64 and Visual Studio 2005 runs on x86, IA64 and

AMD64 processorsAMD64 processors Visual Studio 2005 runs in the WoW64 on 64-Visual Studio 2005 runs in the WoW64 on 64-

bit hardwarebit hardware Supports remote debugging across Supports remote debugging across

architectures e.g. x86 architectures e.g. x86 IA64 IA64 Language support:Language support:

Support for the .NET Framework and associated Support for the .NET Framework and associated languageslanguages

C++, Visual CC++, Visual C##, Visual Basic from , Visual Basic from MicrosoftMicrosoft

Support for “native” Visual C++Support for “native” Visual C++

Further ResourcesFurther Resources

Developer Tools Roadmap 2004-6Developer Tools Roadmap 2004-6http://msdn.microsoft.com/vstudio/productinfo/roadmap.aspxhttp://msdn.microsoft.com/vstudio/productinfo/roadmap.aspx

Microsoft Platform SDKMicrosoft Platform SDKhttp://msdn.microsoft.com/library/default.asp?url=/library/en-uhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/win64/win64/introducing_64_bit_windows.asps/win64/win64/introducing_64_bit_windows.asp

.NET Show.NET Show“Getting Ready for Win64”“Getting Ready for Win64”http://msdn.microsoft.com/theshow/Episode005/default.asphttp://msdn.microsoft.com/theshow/Episode005/default.asp

Visual Studio 2005 Scientific Visual Studio 2005 Scientific Programming FeaturesProgramming Features

OpenMP 2.0 SupportOpenMP 2.0 Support New Floating Point ModelNew Floating Point Model

//fp:fastfp:fast /fp:precise/fp:precise /fp:strict/fp:strict

Parallel DebuggingParallel Debugging Profile-Guided FeedbackProfile-Guided Feedback

Profile Guided Profile Guided Optimization?Optimization?Profile Guided Profile Guided Optimization?Optimization?

Static compiler can’t answer everything…Static compiler can’t answer everything… Static compiler can’t answer everything…Static compiler can’t answer everything…

if(a < b) foo(); else baz();

if(a < b) foo(); else baz();

for(i = 0; i < count; ++i) bar();for(i = 0; i < count; ++i) bar();

How often is a < b? What is the typical value of count?

Compile with /GLSource Object files

Profile Guided OptimizationProfile Guided Optimization

InstrumentedImage

Scenarios Output Profile data

Object files Link with /LTCG:PGI InstrumentedImage

Profile data

Object files

Link with /LTCG:PGOOptimized

Image

How Much Performance How Much Performance Does PGO Buy You?Does PGO Buy You?How Much Performance How Much Performance Does PGO Buy You?Does PGO Buy You? Performance increase is architecture Performance increase is architecture

and application specificand application specific Itanium tends to benefit the mostItanium tends to benefit the most Large applications tend to benefit more Large applications tend to benefit more

than smallthan small

If you understand your real-world If you understand your real-world scenarios then PGO is almost always a scenarios then PGO is almost always a winwin

Performance increase is architecture Performance increase is architecture and application specificand application specific Itanium tends to benefit the mostItanium tends to benefit the most Large applications tend to benefit more Large applications tend to benefit more

than smallthan small

If you understand your real-world If you understand your real-world scenarios then PGO is almost always a scenarios then PGO is almost always a winwin

PGO Improvement Over LTCGPGO Improvement Over LTCG

•0

•5

•10

•15

•Intel Itanium2 •AMD AMD64 •Intel x86

• % Im

pro

vem

ent

Ov

er L

TC

G

•SPECInt •SPECfp

Some Benefits of PGOSome Benefits of PGO

Switch expansionSwitch expansion Better inlining decisionsBetter inlining decisions Basic block layoutBasic block layout Dead block separationDead block separation

Wins: Wins: Switch ExpansionSwitch Expansion

Most frequent values are pulled out.Most frequent values are pulled out.

// 90% of the // 90% of the // time i = 10;// time i = 10; switch (i) {switch (i) {

case 1: …case 1: …case 2: …case 2: …case 3: …case 3: …default:…default:…

}}

InliningInlining

Profile Guided uses call graph path Profile Guided uses call graph path profiling.profiling.

foo

bat

bar baz

a

100

foo

bat

20 50bar baz

15bar

baz

InliningInlining

Profile Guided uses call graph path Profile Guided uses call graph path profiling.profiling.

a10 75

bar

baz15

foo

bat

20 125bar baz

10015bar baz

Inlining (cont)Inlining (cont)

Inlining decisions are made at each call Inlining decisions are made at each call site.site.

a10

15

Run buildingRun building

Basic blocks are ordered so that most frequent path falls through.

A

CB

D

100

100

10

10

A

B

C

D

Default layout

A

B

C

D

Optimized layout

SeparationSeparation

Dead basic blocks are placed in a special section.

A

B

C

D

Default layout

A

B

C

D

Optimized layout

A

CB

D

100

100

0

0

Microsoft & HPC TodayMicrosoft & HPC Today

Intel (32bit & 64bit) & AMD x64

Fast Ethernet

Microsoft Addressing HPC TodayMicrosoft Addressing HPC Today

EcosystemEcosystem Special HPC-specific licensing via OEM partnersSpecial HPC-specific licensing via OEM partners Partnerships with ISV to develop on WindowsPartnerships with ISV to develop on Windows Partnership with Cornell Theory CenterPartnership with Cornell Theory Center

Gigabit Ethernet

Technical SolutionTechnical Solution Partner Driven Solution StackPartner Driven Solution Stack

TCP

Infiniband

RDMA

PlatformPlatformPlatformPlatform

InterconnectInterconnectInterconnectInterconnect

ProtocolProtocolProtocolProtocol

OSOSOSOS

MiddlewareMiddlewareMiddlewareMiddleware

Myrinet

GM

WINDOWS

MPI/Pro MPICH WMPI MPI-NT

ApplicationsApplicationsApplicationsApplications Parallel Applications

LSF PBSPro DataSynapse MSTIManagementManagementManagementManagement

Partners - Example ListPartners - Example ListISVISV AltairAltair AnsysAnsys AvakiAvaki Computer Modeling GroupComputer Modeling Group DataSynapseDataSynapse EntropiaEntropia LandmarkLandmark LSTCLSTC MathpointMathpoint MPIMPI MSC SoftwareMSC Software MuPADMuPAD PlatformPlatform PowerellPowerell SchlumbergerSchlumberger United DevicesUnited Devices

and many more...and many more...

Cornell Theory CenterCornell Theory Center

PayoffsPayoffs Seamless HPCSeamless HPC

Reduced or no learning curveReduced or no learning curve Powerful Integrated Development Powerful Integrated Development

ToolsTools Easier CollaborationEasier Collaboration

Standard Open InterfacesStandard Open Interfaces InteroperabilityInteroperability

Performance & EfficiencyPerformance & Efficiency Code ReductionCode Reduction Scalability – Application scale Scalability – Application scale

even as your data growseven as your data grows ReliabilityReliability Better program designBetter program design

TrainingTraining HPC Workshop - Oct 18-19thHPC Workshop - Oct 18-19th

http://www.tc.cornell.edu/http://www.tc.cornell.edu/

Goal : Goal : (1999) To utilize existing commercial supported tools to build clusters(1999) To utilize existing commercial supported tools to build clusters(2004) Enable scientific research through data-driven Science & seamless (2004) Enable scientific research through data-driven Science & seamless HPCHPC

Helping Others Get StartedHelping Others Get StartedCCTP Kit Delivers:

• Hands-on preview of core HPC technologies

• Allows for compatibility testing & tuning

• Free opportunity to preview Windows HPC Solutions

Software Included:• Microsoft Windows XP Professional evaluation version

• Microsoft Windows 2000 Advanced Server evaluation version

• Microsoft Visual Studio .Net DVD evaluation version

• Microsoft Services For Unix 3.0 evaluation version

• MPI/Pro 1.6.4 from MPI Software Technology, Inc. (free up to 32 processor clusters)

• ClusterController 1.5.2 from MPI Software Technology, Inc. (free up to 32 processor clusters)

• MuPAD 2.5.1 Algebra System

• MPI-CH 1.2.4 (open source software)

• PETSc 2.1.4 Suite of Data Structures and Routines

• Intel Vtune Analyzer Evaluation Version

• Intel C++ Compilers Evaluation Version

• Intel Fortran Compiler for Windows Evaluation Version

• Intel Math Kernel Libraries Evaluation Version

• Computational Cluster Monitor from Cornell Theory Center

• PLAPACK package (open source software)

EnterpriseEnterprise

Financial AnalysisFinancial Analysis 840 Nodes 840 Nodes

RenderingRendering 600 Nodes600 Nodes

Oil Exploration FirmOil Exploration Firm Seismic ProcessingSeismic Processing >17,000 nodes>17,000 nodes

Market Data Market Data AnalysisAnalysis

160-processors160-processors

DOE DOE ContractorContractor

Ship/Sub Ship/Sub EngineeringEngineering

40-processors40-processors

Auto Parts Auto Parts Structural AnalysisStructural Analysis

128-processors128-processors

Genome Data Genome Data AnalysisAnalysis

54-processors54-processors

Petroleum Petroleum EngineeringEngineering

32-processors32-processors

Cancer Treatment Cancer Treatment PlanningPlanning

100-processors100-processors

Windows HPC Customer Examples

Departmental

Transitioning to the futureTransitioning to the future

Windows Server 2003 Windows Server 2003 HPC Edition releaseHPC Edition release

Core TechnologiesCore TechnologiesCore TechnologiesCore Technologies

Key ValueKey ValueKey ValueKey Value

User BenefitsUser BenefitsUser BenefitsUser Benefits

• Based on Windows Server 2003• Support for high performance hardware• Support for industry standards MPI2, RDMA on Ethernet &

Infiniband• Integrated job scheduler and cluster resource management

• Based on Windows Server 2003• Support for high performance hardware• Support for industry standards MPI2, RDMA on Ethernet &

Infiniband• Integrated job scheduler and cluster resource management

• Trusted platform• Greater price/performance• Broad application support• Easy to use, scalable and secure job management

• Trusted platform• Greater price/performance• Broad application support• Easy to use, scalable and secure job management

• Leverages investment in Windows administration and tools• Lower total cost of ownership• Runs the applications that power your business• Makes cluster operation easy and secure as a single system

• Leverages investment in Windows administration and tools• Lower total cost of ownership• Runs the applications that power your business• Makes cluster operation easy and secure as a single system

Mission: Deliver the easiest to deploy and most cost effective solution for solving scaled-out business, engineering and scientific computational problems.

20052005

20062006

20072007

20082008++

HPC Edition Release Roadmap

► Windows Server 2003, HPC Edition Windows Server 2003, HPC Edition

Long term Goals: • Integration with the desktop (desktop cycle stealing, Excel, visualization)• Bring Microsoft's distributed systems management and programming leadership to

HPC (.NET, System Center, Web Services, BizTalk, Trust Bridge)• Bring Microsoft storage leadership to HPC (SQL Server, Storage Server)• Deep OEM/IHV partnerships for complete solutions and price/performance

leadership (network interconnects, computation, storage)

Future HPC Editions*Future HPC Editions*HPC development made easier with managed HPC development made easier with managed

code and .NETcode and .NET MPI .NET Framework integrationMPI .NET Framework integration

Unused desktop compute cycles can be easily Unused desktop compute cycles can be easily harnessed for HPC needsharnessed for HPC needs Unified desktop/cluster architectureUnified desktop/cluster architecture

High performance and efficient management of High performance and efficient management of large data setslarge data sets Data management integrated with schedulerData management integrated with scheduler SQL databases for HPC data managementSQL databases for HPC data management

*Subject to change*Subject to change

Academic HPC PartnersAcademic HPC PartnersWindows HPC team looking for…Windows HPC team looking for… CommunityCommunity

Developers, IT, end usersDevelopers, IT, end users Early AdoptersEarly Adopters

Beta TestersBeta Testers ApplicationsApplications

Close PartnersClose Partners Drive the Design – Feedback, Collaboration, etcDrive the Design – Feedback, Collaboration, etc Engage beyond clusters Engage beyond clusters

Scientific & Technical ApplicationsScientific & Technical Applications

Interested?Interested?

© 2003-2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.