Post on 24-Dec-2015
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
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
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?