Windows HPC 2008 R2 November 2010 Fabrizio Ferri (fabferri@microso0.com)
Agenda Windows HPC 2008 R2 session! Windows HPC 2008 R2 Architecture! Basic funcdonality! Same basic examples to run custom code (demo)! Example of udlizadon of HPC in academic environment
Windows HPC Server 2008 R2 Suite! h"p://www.microso..com/hpc HPC PACK 2008 R2 Enterprise #1 DVD Windows Server 2008 R2 x64 #1 DVD Head node Brokers Compute nodes 3
Win HPC 2008 R2: Architecture (1/2)! HPCS cluster == Windows Server 2008 R2(64- bit) + HPC Pack! HPC Pack == set of HPCS services Head node Job submission Scheduling Cluster mgmt SQL Brokers SW (apps, run-time libraries) HPC Pack R2 Windows Server 2008 R2 HW (real or virtual) Compute nodes Job execution Node mgmt HPC Pack
Windows HPC 2008 R2: Architecture (2/2) Win Desktops to submit jobs IT enterprise infrastructure AD DNS DHCP Enterprise Network Node Manager Management Private Network Application Network Compute Node 1.100 MPI Compute Node Node Manager Management Head Node Admin / User Cons WDS Job Scheduler Management NAT Cluster HPC Job ValidaGon Resource AllocaGon and Controller SQL Scheduler Store 5
COW: Cluster of worstadon! The ability to add Windows 7 workstadons as compute nodes: Windows 7 Professional or Enterprise, 32 or 64- bit (requires AcDve Directory support) Desktops and cluster has to belong to the same AD Domain! Not deploying the workstadon OS! Two policy to join workstadon to cluster: Manual AutomaDc Time of day scheduling for WorkstaDon availability Draining interval for graceful preempdon
COW Define when the availability of the workstation based on a week
Compute node diskless: iscsi boot! Rapid deployment with controlled OS image!!! Diskless client DHCP TFTP Windows DHCP server with TFTP iscsi boot workflow Windows Storage Server 2008 R2 Windows Storage Server iscsi Software Target
Windows HPC 2008 R2: how it works A batch-oriented software system with mainframelike job scheduler An SOA-oriented software system for computeintensive service calls ActiveD ir client Job task Job task Job task Call Call Call Head node... HPCS-based cluster...... Compute Nodes Result R R Broker nodes 9
Core vs. Socket vs. Node! Processes are scheduled onto processors Q: What is meant in HPCS by the term processor? A: 1 core =1 processor Core: Socket: 1 independent execution core 1 physical CPU chip Node: 1 compute node (computer with CPU(s), RAM, HD, NICs, OS) Socket #1 dual quad-core server = 1 node, 2 sockets, 8 cores Quad-core Intel processor All processors share the same RAM, hard disks, NICs Cores may have independent caches, may not C C C C C C C C socket node socket 1 core = 1 processor 10
MCRA: Node/Socket/Core! MulGlevel Computer Resource AllocaGon: Core based, Socket based, Node based! Windows HPC Server can help your applicadon make the best use of muld- core systems allow smart resources allocadon Node 1 Node 2 P0 P1 J1 S0 P2 P3 P0 P1 J1 S2 P2 P3 P0 P1 J1 S1 P2 P3 J3 P0 J3 P1 S3 J3 P2 J3 P3 P0 P2 P0 P2 S0 S2 P1 P3 P1 P3 J2 P0 P2 P0 P2 S1 S3 P1 P3 P1 P3 J1: /numsockets:3 /exclusive: false J3: /numcores:4 /exclusive: false J2: /numnodes:1 11
Job/Task/Process! A job is a set of tasks! A task is an executable program! A program yields one or more processes! A job can contain: basic tasks or/and parametric tasks Job In the case of mpiexec, you have a task that yields one or more processes. Task Task Task Task Task Task Task Task Task Task Proc Serial ApplicaGon Proc Proc one Job one Task Proc MPI ApplicaGon Task Task Parametric sweep applicagon one Job mulgple Tasks Task Task flow 12
Run a job by XML Job Template! Jobs can be saved as template to launch same applicadon later! Just loaded by user (eventually set input case and number of process)! A task is any executable program! User specifies command- line to run program! Examples: C:\Apps\HPCApp.exe arg1 arg2 mpiexec MPIApp.exe arg1 arg2 copy \\headnode\public\file.txt C:\Apps HPCApp.exe arg1 arg2
1 2 Run jobs by Powershell! HPC Server provides a plug- in for Microso0 PowerShell New - HpcJob Scheduler hn Name Test" - RunTime "0:4:00" - Priority "AboveNormal $MyJob = Get- HpcJob Scheduler hn Name Test state configuring 3 4 5 $MyJob = Get- HpcJob Scheduler hn Name Test state configuring $MyJob Add- HpcTask Scheduler hn - WorkDir "%UserProfile%\Documents" - Commandline "dir $MyJob Submit- HpcJob Scheduler hn MyJob.Refresh() $MyJob Get- HpcTask fl 14
Job View and Task Progress (via HPC- API) 15
Job Scheduling Policies! The job scheduler: Single job queue Priority- based, first- come first- served (higher priority may preempt lower) Allocates as many resources N as possible (fastest nodes with most RAM first) Starts 1..N tasks running on those resources Job can acquire more resources ("grow"), lose resources as tasks finish ("shrink")! HPCS job scheduler is performance- oriented: If job requests Min.. Max resources, will assign as close to Max as possible Jobs do not share resources given a core, no other job uses that core 16
Scheduling policy: Exclusive/non- Exclusive! Resource allocadon exclusive vs. non- exclusive use of a node preempdon of a job by a higher- priority job 17
Scheduling policy: Backfill policy! GOAL: Consente increase ai job the aventi udlizadon un breve of cluster, tempo without di esecuzione delaying the di execudon of my high priority work saltare la coda! The user specify Dme, resources required to execute the job; if job scheduler idendfied available resources, small jobs can jump the queue time Hour 3 Hour 2 Hour 1 Job #3 (32 processors) Job #2 64 processors Job #1 32 processors processors 64 processor 18
Service Balanced Scheduling! GOAL: my cluster runs a number of jobs, and I want to dynamically provide resources to the jobs that need them most! Balanced allows to jobs with multiple task to increase (grow) and decrease (shrink) resource allocation over time! Priority Bias allow to highest priority jobs to take resource away from lowpriority job processors time Job 1 Tasks Job 2 Tasks Job 3 High Priority 19
3D Tomography for Art ConservaDon! ApplicaDon of XRAY tomography to Art conservadon! The preservadon of Italy s vast cultural heritage is an intense, muld- disciplinary effort.! Parallel compudng techniques for 3D tomography require experdse in Physics, Art, Computer Science! PROJECT: hpp://www.xraytomography.com/! Reference: Dop. Ssa Rosa Brancaccio/Prof. Levi Giuseppe Radiographies 3D Tomography Virtual Cuts 20
CT system with EBCCD: sequence of OperaDons! ProjecGons are the radiographs of the object at different angles! Sinograms are images that contain all informadon to reconstruct 1 slice at fixed height! The process is computadon- intensive and complex, but each slice can be processed independently FFT of sinograms Electron- Bombarded Charge Coupled Device An EBCCD camera collects the X- ray image on a 30 x 30 cm screen of scingllagng material. The image represents the radiographic projecgon of the object. SelecGon 1 line in FFT space Filter line Reverse FFT Reverse projecgon of result into normal space 5 steps
CT system setup Pixel size: ~= 800µm Pixel number for a whole projection: ~4500x280 detector and the translagon axes (31000 radiographs) X-ray tube globe on a turntable
Globo DanD (~1567) The Map Room ( Sala delle Carte Geografiche ) within Palazzo Vecchio, with the ancient large globe created by Egnazio DanG around 1567, on assignment of Cosimo I de Medici, duke of Florence.
Globo DanD : 14 slices in a planar projecdon 14 secgons in planar projecdon 3D CT ReconstrucDon Perspective distortions must be corrected before performing the CT reconstruction. 280 slices
CT ReconstrucDon on a Windows HPC cluster! The problem lends itself to a parametric sweep approach because of data parallelism: Compute nodes in HPC cluster execute same process on different projecdons, mostly asynchronously! The analysis code was simply recompiled with Visual Studio 2008! Analysis of the same images on a 5- nodes Windows HPC cluster achieved an impressive speedup (>20) compared to standard processing. System Tasks Bit Total time (dd:hh:mm:ss) Speed Rate Factor Unibo single 32 20:15:24:18 1 HPC 240 64 00:17:23:16 28.49 HPC 797 64 00:17:15:43 28.70 HPC 1594 64 00:17:14:18 28.74 Times to reconstruct all 12 secgons as funcgons of tasks number.
Windows HPC 2008 R2 info! Win HPC portal: hpp://www.microso0.com/hpc/en/us/default.aspx! Win HP community: hpp://windowshpc.net/pages/default.aspx! HPC (manual technet): hpp://technet.microso0.com/en- us/library/ee783547(v=ws.10).aspx! MS HPC Pack 2008 SDK: hpp://msdn.microso0.com/en- us/library/cc853440(vs.85).aspx! MPI: hpps://compudng.llnl.gov/tutorials/mpi/! MPI code example: hpp://code.msdn.microso0.com/loperympi! Lizard: Microso0 HPC Pack 2008 R2 Tool Pack hpp://www.microso0.com/downloads/en/details.aspx? FamilyID=3313856B- 02BC- 4BDD- B8B6-541F5309F2CE&displaylang=en! Windows Performance toolkit: hpp://www.microso0.com/whdc/system/sysperf/per0ools.mspx! MPI Cluster Debugger hpp://www.microso0.com/downloads/details.aspx? displaylang=en&familyid=d3993532- bdf8-4024- b164- db2ee8a851f5 hpp://visualstudiogallery.msdn.microso0.com/en- us/90w60d4-0b8c- 472f- 8135-683d3c45f45a 26