The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC...

105
The HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy Kepner, Robert Lucas, Rolf Rabenseifner, Daisuke Takahashi SC06, Tampa, Florida Sunday, November 12, 2006 Session S12 1:30-5:00

Transcript of The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC...

Page 1: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

The HPC Challenge (HPCC) Benchmark Suite

Piotr Luszczek, David Bailey,Jack Dongarra, Jeremy Kepner,

Robert Lucas, Rolf Rabenseifner, Daisuke Takahashi

SC06, Tampa, FloridaSunday, November 12, 2006

Session S121:30-5:00

Page 2: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Acknowledgements

• This work was supported in part by the Defense Advanced Research Projects Agency (DARPA), the Department of Defense, the National Science Foundation (NSF), and the Department of Energy (DOE) through the DARPA High Productivity Computing Systems (HPCS) program under grant FA8750-04-1-0219 and under Army Contract W15P7T-05-C-D001

• Opinions, interpretations, conclusions, and recommendations are those of the authorsand are not necessarily endorsed by the United States Government

Page 3: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Introduction

• HPC Challenge Benchmark Suite

– To examine the performance of HPC architectures using kernels with more challenging memory access patterns than HPL

– To augment the TOP500 list

– To provide benchmarks that bound the performance of many real applications as a function of memory access characteristics ― e.g., spatial and temporal locality

– To outlive HPCS

• HPC Challenge pushes spatial and temporal boundaries and defines performance bounds

Page 4: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

TOP500 and HPCC

• TOP500– Performance is represented by

only a single metric– Data is available for an

extended time period(1993-2005)

• Problem:There can only be one “winner”

• Additional metrics and statistics– Count (single) vendor systems

on each list– Count total flops on each list

per vendor– Use external metrics: price,

ownership cost, power, …– Focus on growth trends over

time

• HPCC– Performance is represented by

multiple single metrics– Benchmark is new — so data is

available for a limited time period(2003-2005)

• Problem:There cannot be one “winner”

• We avoid “composite” benchmarks– Perform trend analysis

• HPCC can be used to show complicated kernel/ architecture performance characterizations

– Select some numbers for comparison

– Use of kiviat charts• Best when showing the

differences due to a single independent “variable”

• Over time — also focus on growth trends

Page 5: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

High Productivity Computing Systems (HPCS)

Goal: Provide a new generation of economically viable high productivity computing

systems for the national security and industrial user community (2010)

Impact:Performance (time-to-solution): speedup critical national

security applications by a factor of 10X to 40XProgrammability (idea-to-first-solution): reduce cost and

time of developing application solutions Portability (transparency): insulate research and

operational application software from systemRobustness (reliability): apply all known techniques to

protect against outside attacks, hardware faults, & programming errors

Fill the Critical Technology and Capability GapToday (late 80’s HPC technology)…..to…..Future (Quantum/Bio Computing)

Applications: Intelligence/surveillance, reconnaissance, cryptanalysis, weapons analysis, airborne contaminant

modeling and biotechnology

HPCS Program Focus Areas

Analysis &

Analysis &

Assessment

Assessment

PerformanceCharacterization

& Prediction

SystemArchitecture

SoftwareTechnology

HardwareTechnology

Programming Models

Industry R&D

Industry R&D

Page 6: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCS Program Phases I-III

(Funded Three)

Phase IIR&D

02 05 06 07 08 09 1003

Phase IIIPrototype Development

System DesignReviewIndustry

Milestones

ProductivityAssessment(MIT LL, DOE,

DoD, NASA, NSF)

MP Peta-ScaleProcurements

Year (CY)

Concept Review PDR

EarlyDemo

TechnologyAssessment

Review

(Funded Five)Phase IIndustryConcept

Study

Program Reviews

Critical Milestones

Program Procurements

CDRDRR

1 2 4 5 6 7

04

3

MissionPartners

Mission PartnerPeta-Scale

Application Dev

11

FinalDemo

SWRel 1

SCR

SWRel 2

SWRel 3

SWDev Unit

Deliver UnitsMission PartnerDev Commitment

Mission PartnerSystem Commitment

HPLSPlan

MP Language Dev

Page 7: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCS Benchmark and Application Spectrum

8 HPCchallengeBenchmarks

(~40) Micro & KernelBenchmarks

LocalDGEMMSTREAM

RandomAccess1D FFT

GlobalLinpackPTRANS

RandomAccess1D FFT

Exi

stin

g A

pp

licat

ion

s

Em

erg

ing

Ap

plic

atio

ns

Fu

ture

Ap

plic

atio

ns

ExecutionBounds

ExecutionIndicators

Execution andDevelopment

Indicators

(~10) CompactApplications

Spectrum of benchmarks provide different views of system• HPCchallenge pushes spatial and temporal boundaries; sets performance bounds

• Applications drive system issues; set legacy code performance bounds

• Kernels and Compact Apps for deeper analysis of execution and development time

Rec

on

nai

ssan

ce

Sim

ula

tio

n

In

telli

gen

ce

9 SimulationApplications

System Bounds

DiscreteMath

…Graph

Analysis…

LinearSolvers

…Signal

Processing…

Simulation…

I/O

HPCSSpanning Set

of Kernels

3 ScalableCompact Apps

Pattern MatchingGraph Analysis

Signal Processing

3 Petascale/sSimulation(Compact)

Applications

OthersClassroomExperiment

Codes

Page 8: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Motivation of the HPCC Design

Spatial Locality

Tem

po

ral L

oca

lity

DGEMM

HPL

PTRANS

STREAM

FFT

RandomAccess

Mission Partner

Applications

Low

Hig

h

High

Page 9: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Measuring Spatial and Temporal Locality (1/2)

HPC Challenge Benchmarks

Select Applications

0.00

0.20

0.40

0.60

0.80

1.00

0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00

Spatial Locality

Tem

po

ral l

oca

lity

HPL

Test3D

CG

OverflowGamess

RandomAccess

AVUS

OOCore

RFCTH2

STREAM

HYCOM

• Spatial and temporal data locality here is for one node/processor — i.e., locally or “in the small”

Generated by PMaC @ SDSC

FFT

Page 10: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Measuring Spatial and Temporal Locality (2/2)

HPC Challenge Benchmarks

Select Applications

0.00

0.20

0.40

0.60

0.80

1.00

0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00

Spatial Locality

Tem

po

ral l

oca

lity

HPL

Test3D

CG

OverflowGamess

RandomAccess

AVUS

OOCore

RFCTH2

STREAM

HYCOM

Generated by PMaC @ SDSCHigh Temporal LocalityGood Performance onCache-based systemsSpatial Locality occurs

in registers

No Temporal or Spatial LocalityPoor Performance onCache-based systems

High Spatial LocalityModerate Performance on

Cache-based systems

FFT

High Spatial LocalitySufficient Temporal LocalitySatisfactory Performance on

Cache-based systems

Page 11: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Supercomputing Architecture Issues

Registers

Cache

Local Memory

Disk

Instr. Operands

Blocks

Pages

Remote Memory

MessagesCPU

RAM

Disk

CPU

RAM

Disk

CPU

RAM

Disk

CPU

RAM

Disk

Standard ParallelComputer Architecture

CPU

RAM

Disk

CPU

RAM

Disk

CPU

RAM

Disk

CPU

RAM

Disk

Network Switch

CorrespondingMemory Hierarchy

PerformanceImplications

Incre

asin

g B

and

wid

th

Incre

asin

g L

ate

ncy

Incre

asi

ng

Cap

acit

y

Incre

asin

g P

rog

ram

mab

ilit

y

• Standard architecture produces a “steep” multi-layered memory hierarchy

– Programmer must manage this hierarchy to get good performance

• HPCS technical goal

– Produce a system with a “flatter” memory hierarchy that is easier to program

Page 12: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCS Performance Targets

Registers

Cache

Local Memory

Disk

Instr. Operands

Blocks

Pages

Remote Memory

Messages

HPC ChallengeBenchmark

CorrespondingMemory Hierarchy

HPCS Targets(improvement)

• Top500: solves a systemAx = b

• STREAM: vector operationsA = B + s x C

• FFT: 1D Fast Fourier TransformZ = FFT(X)

• RandomAccess: random updates

T(i) = XOR( T(i), r )

bandwidth

latency

2 Petaflops(8x)

6.5 Petabyte/s(40x)

0.5 Petaflops(200x)

64,000 GUPS(2000x)

• HPCS program has developed a new suite of benchmarks (HPC Challenge)

• Each benchmark focuses on a different part of the memory hierarchy

• HPCS program performance targets will flatten the memory hierarchy, improve real application performance, and make programming easier

Page 13: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Official HPCC Submission Process

1. Download2. Install3. Run4. Upload results5. Confirm via @email@

6. Tune

7. Run

8. Upload results

9. Confirm via @email@

Optional

● Only some routines can be replaced● Data layout needs to be preserved● Multiple languages can be used

Provide detailedinstallation and

execution environment

Prequesites:● C compiler

● BLAS● MPI

Results are immediately available on the web site:● Interactive HTML● XML● MS Excel● Kiviat charts (radar plots)

Page 14: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC as a Framework (1/2)

• Many of the component benchmarks were widely used before the HPC Challenge suite of Benchmarks was assembled

– HPC Challenge has been more than a packaging effort

– Almost all component benchmarks were augmented from their original form to provide consistent verification and reporting

• We stress the importance of running these benchmarks on a single machine — with a single configuration and options

– The benchmarks were useful separately for the HPC community, meanwhile

– The unified HPC Challenge framework creates an unprecedented view of performance characterization of a system

• A comprehensive view with data captured the under the same conditions allows for a variety of analyses depending on end user needs

Page 15: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC as a Framework (2/2)

• HPCC unifies a number of existing (and well known) codes in one consistent framework

• A single executable is built to run all of the components

– Easy interaction with batch queues

– All codes are run under the same OS conditions – just as an application would

• No special mode (page size, etc.) for just one test (say Linpack benchmark)

• Each test may still have its own set of compiler flags– Changing compiler flags in the same executable may inhibit inter-

procedural optimization

• Why not use a script and a separate executable for each test?

– Lack of enforced integration between components• Ensure reasonable data sizes

• Either all tests pass and produce meaningful results or failure is reported

– Running a single component of HPCC for testing is easy enough

Page 16: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Base vs. Optimized Run

• HPC Challenge encourages users to develop optimized benchmark codes that use architecture specific optimizations to demonstrate the best system performance

• Meanwhile, we are interested in both– The base run with the provided reference implementation– An optimized run

• The base run represents behavior of legacy code because– It is conservatively written using only widely available programming languages

and libraries– It reflects a commonly used approach to parallel processing sometimes referred

to as hierarchical parallelism that combines• Message Passing Interface (MPI)• OpenMP Threading

– We recognize the limitations of the base run and hence we encourage optimized runs

• Optimizations may include alternative implementations in different programming languages using parallel environments available specifically on the tested system

• We require that the information about the changes made to the original code be submitted together with the benchmark results

– We understand that full disclosure of optimization techniques may sometimes be impossible

– We request at a minimum some guidance for the users that would like to use similar optimizations in their applications

Page 17: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Base Submission

• Publicly available code is required for base submission

1. Requires C compiler, MPI 1.1, and BLAS

2. Source code cannot be changed for submission run

3. Linked libraries have to be publicly available

4. The code contains optimizations for contemporary hardware systems

5. Algorithmic variants provided for performance portability

• This to mimic legacy applications’ performance

1. Reasonable software dependences

2. Code cannot be changed due to complexity and maintenance cost

3. Relies on publicly available software

4. Some optimization has been done on various platforms

5. Conditional compilation and runtime algorithm selection for performance tuning

Baseline code has over 10k SLOC — there must more productive way of coding

Page 18: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Optimized Submission

• Timed portions of the code may be replaced with optimized code• Verification code still has to pass

– Must use the same data layout or pay the cost of redistribution– Must use sufficient precision to pass residual checks

• Allows to use new parallel programming technologies– New paradigms, e.g. one-sided communication of MPI-2:

MPI_Win_create(…);MPI_Get(…);MPI_Put(…);MPI_Win_fence(…);

– New languages, e.g. UPC:• shared pointers• upc_memput()

• Code for optimized portion may be proprietary but needs to use publicly available libraries

• Optimizations need to be described but not necessarily in detail – possible use in application tuning

• Attempting to capture: invested effort per flop rate gained– Hence the need for baseline submission

• There can be more than one optimized submission for a single base submission (if a given architecture allows for many optimizations)

Page 19: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Base Submission Rules Summary

• Compile and load options

– Compiler or loader flags which are supported and documented by the supplier are allowed

– These include porting, optimization, and preprocessor invocation

• Libraries

– Linking to optimized versions of the following libraries is allowed• BLAS

• MPI

• FFT

– Acceptable use of such libraries is subject to the following rules:• All libraries used shall be disclosed with the results submission.

Each library shall be identified by library name, revision, and source (supplier). Libraries which are not generally available are not permitted unless they are made available by the reporting organization within 6 months.

• Calls to library subroutines should have equivalent functionality to that in the released benchmark code. Code modifications to accommodate various library call formats are not allowed

Page 20: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Optimized Submission Rules Summary

• Only computational (timed) portion of the code can be changed– Verification code can not be changed

• Calculations must be performed in 64-bit precision or the equivalent– Codes with limited calculation accuracy are not permitted

• All algorithm modifications must be fully disclosed and are subject to review by the HPC Challenge Committee– Passing the verification test is a necessary condition for such an

approval– The replacement algorithm must be as robust as the baseline

algorithm• For example — the Strassen Algorithm may not be used for the

matrix multiply in the HPL benchmark, as it changes the operation count of the algorithm

• Any modification of the code or input data sets — which utilizes knowledge of the solution or of the verification test — is not permitted

• Any code modification to circumvent the actual computation is not permitted

Page 21: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Tests at a Glance

1. HPL

2. DGEMM

3. STREAM

4. PTRANS

5. RandomAccess

6. FFT

7. b_eff

• Scalable framework — Unified Benchmark Framework

– By design, the HPC Challenge Benchmarks are scalable with the size of data sets being a function of the largest HPL matrix for the tested system

Page 22: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Testing Scenarios

1. Local

1.Only single process computes

2. Embarrassingly parallel

1.All processes compute and do not communicate (explicitly)

3. Global

1.All processes comput and communicate

4. Network only

M

PP

M

PP

M

PP

M

PP

Network

M

PP

M

PP

M

PP

M

PP

Network

M

PP

M

PP

M

PP

M

PP

Network

Page 23: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Naming Conventions

HPLSTREAM

FFT…

RandomAccess

S

EP

G

system

CPU

thread

Examples:2. G-HPL3. S-STREAM-system

Page 24: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Tests - HPL

• HPL = High Performance Linpack

• Objective: solve system of linear equationsAx=b A∈Rn×n x,b∈R

• Method: LU factorization with partial row pivoting

• Performance: ( 2/3n3 + 3/2n2 ) / t

• Verification: scaled residuals must be small|| Ax-b || / (ε ||A|| ||x|| n)

• Restrictions:

– No complexity reducing matrix-multiply• (Strassen, Winograd, etc.)

– 64-bit precision arithmetic through-out • (no mixed precision with iterative refinement)

Page 25: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPL:TOP500 and HPCC Implementation Comparison

ContinuousContinuousBi-annualReporting frequency

NoNoYesN-half reported

YesYesNoNumerics of solution

reported

YesYesYesFloating-point in 64-

bits

DescribeReference codeNot requiredDisclose code

HPCC Optimized

HPCC BaseTOP500

Page 26: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC HPL: Further Details

• Linear system solver (requires all-to-all communication)

• Stresses local matrix multiply performance

• DARPA HPCS goal: 2 Pflop/s (8x over current best)

• High Performance Linpack (HPL) solves a system Ax = b

• Core operation is a LU factorization of a large MxM matrix

• Results are reported in floating point operations per second (flop/s)

P0 P2

P1 P3

P0 P2

P1 P3

P0 P2

P1 P3

P0 P2

P1 P3

LUFactorization

A

L

P0 P2

P1 P3

P0 P2

P1 P3

P0 P2

P1 P3

P0 P2

P1 P3

U

2D block cyclic distributionis used for load balancing

Registers

Cache

Local Memory

Disk

Instr. Operands

Blocks

Pages

Remote Memory

Messages

Parallel Algorithm

Page 27: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Tests - DGEMM

• DGEMM = Double-precision General Matrix-matrix Multiply

• Objective: compute matrixC ← αAB + βC A,B,C∈Rn×n α,β∈R

• Method: standard multiply (maybe optimized)• Performance: 2n3/t• Verification: Scaled residual has to be small

|| x – y || / (ε n || y || )where x and y are vectors resulting from multiplication by a random vector of left and right hand size of the objective expression

• Restrictions:– No complexity reducing matrix-multiply

• (Strassen, Winograd, etc.)

– Use only 64-bit precision arithmetic

Page 28: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Tests - STREAM

• STREAM is a test that measures sustainable memory bandwidth (in Gbyte/s) and the corresponding computation rate for four simple vector kernels

• Objective: set a vector to a combination of other vectorsCOPY: c = aSCALE: b = α cADD: c = a + bTRIAD: a = b + α c

• Method: simple loop that preserves the above order of operations

• Performance: 2n/t or 3n/t• Verification: scalre residual of computed and reference

vector needs to be small|| x – y || / (ε n || y || )

• Restrictions:– Use only 64-bit precision arithmetic

Page 29: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Original and HPCC STREAM Codes

Whole memory,

Runtime

Whole memory,

Runtime

Exceeds caches,

Compile timeVectors’ size

PossiblePossibleNoReporting Multiple of Number

of Processors

OS-specificOS-specificImplicitData alignment

AnyC onlyFortran (or C)Programming Language

HPCC Optimized

HPCC BaseSTREAM

Page 30: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC STREAM: Further Details

• Basic operations on large vectors (requires no communication)

• Stresses local processor to memory bandwidth

• DARPA HPCS goal: 6.5 Pbyte/s (40x over current best)

• Performs scalar multiply and add

• Results are reported in bytes/second

Registers

Cache

Local Memory

Disk

Instr. Operands

Blocks

Pages

Remote Memory

Messages

Parallel Algorithm

A=B+

s x C

Np-1...10

Np-1...10

Np-1...10

Page 31: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Tests - PTRANS

• PTRANS = Parallel TRANSpose

• Objective: update matrix with sum of its transpose and another matrix

A=AT+B A,B∈Rn×n

• Method: standard distributed memory algorithm

• Performance: n2/t

• Verification: scaled residual between computed and reference matrix needs to be small

|| A0 – A || / ( ε n || A0 || )

• Restrictions:

– Use only 64-bit precision arithmetic

– The same data distribution method as HPL

Page 32: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC PTRANS: Further Details

987987987

654654654

321321321

987987987

654654654

321321321

987987987

654654654

321321321

987654321

987654321

987654321

987654321

987654321

987654321

987654321

987654321

987654321

• matrix: 9x9 •3x3 process grid• Communicating pairs:

• 2-4, 3-7, 6-8

• matrix: 9x9•1x9 process grid• Communicating pairs:

• 1-2, 1-3, 1-4, 1-5, 1-6,1-7, 1-8, 1-9, 2-3, …,8-9• 36 pairs!

Page 33: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Tests - RandomAccess

• RandomAccess calculates a series of integer updates to random locations in memory

• Objective: perform computation on TableRan = 1;for (i=0; i<4*N; ++i) { Ran= (Ran<<1) ^ (((int64_t)Ran < 0) ? 7:0); Table[Ran & (N-1)] ^= Ran;}

• Method: loop iterations may be independent• Performance: 4N/t• Verification: up to 1% of updates can be incorrect• Restrictions:

– Use at least 64-bit integers– About half of memory used for ‘Table’– Parallel look-ahead limited to 1024 (limit locality)

Page 34: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC RandomAccess: Further Details

• Randomly updates memory (requires all-to-all communication)

• Stresses interprocessor communication of small messages

• DARPA HPCS goal: 64,000 GUPS (2000x over current best)

• Randomly updates N element table of unsigned integers• Each processor generates indices, sends to all other processors, performs

XOR• Results are reported in Giga Updates Per Second (GUPS)

Registers

Cache

Local Memory

Disk

Instr. Operands

Blocks

Pages

Remote Memory

Messages

Parallel Algorithm

Generate random indices

0

Table

Send, XOR,Update

1 Np-1

0 1 NP-1

. .

. .

Page 35: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Tests - FFT

• FFT = Fast Fourier Transform

• Objective: compute discrete Fourier Transformzk=Σxj exp(-2π√-1 jk/n) x,z∈Cn

• Method: any standard framework (maybe optimized)

• Performance: 5nlog2n/t

• Verification: scaled residual for inverse transform of computed vector needs to be small

|| x – x(0) || / (ε log2 n )

• Restrictions:

– Use only 64-bit precision arithmetic

– Result needs to be in-order (not bit-reversed)

Page 36: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC FFT: Further Details

• FFT a large complex vector (requires all-to-all communication)

• Stresses interprocessor communication of large messages

• DARPA HPCS goal: 0.5 Pflop/s (200x over current best)

• 1D Fast Fourier Transforms an N element complex vector

• Typically done as a parallel 2D FFT

• Results are reported in floating point operations per second (flop/s)

Registers

Cache

Local Memory

Disk

Instr. Operands

Blocks

Pages

Remote Memory

Messages

Parallel Algorithm

0

0

1

:

Np-1

FFT rows

FFT columns

corner turn

1 Np-1. .

Page 37: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Tests – b_eff

• b_eff measures effective bandwidth and latency of the interconnect

• Objective: exchange 8 (for latency) and 2000000 (for bandwidth) messages in ping-pong, natural and random ring patterns

• Method: use standard MPI point-to-point routines

• Performance: n/t (for bandwidth)

• Verification: simple checksum on received bits

• Restrictions:

– The messaging routines have to conform to the MPI standard

Page 38: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Awards Overview

• Goals

– Increase awareness of HPCC

– Increase awareness of HPCS and its goals

– Increase number of HPCC submissions• Expanded view of largest supercomputing installations

• Means

– HPCwire sponsorships and press coverage

– HPCS mission partners’ contribution

– HPCS vendors’ contribution

Page 39: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Awards Rules

• Class 1: Best Performance– Figure of merit:

raw system performance– Submission must be valid

HPCC database entry• Side effect: populate HPCC

database

– 4 categories: HPCC components

• HPL• STREAM-system• RandomAccess• FFT

– Award certificates• 4x $500 from HPCwire

• Class 2: Most Productivity– Figure of merit: performance

(50%) and elegance (50%)• Highly subjective• Based on committee vote

– Submission must implement at least 3 out of 4 Class 1 tests

• The more tests the better

– Performance numbers are a plus

– The submission process:• Source code• “Marketing brochure”• SC06 BOF presentation

– Award certificate• $1500 from HPCwire

Page 40: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Awards Committee

• David BaileyLBNL NERSC

• Jack Dongarra (Co-Chair)Univ. of Tenn/ORNL

• Jeremy Kepner (Co-Chair)MIT Lincoln Lab

• Bob LucasUSC/ISI

• Rusty LuskArgonne National Lab

• Piotr LuszczekUniv. of Tennessee

• John McCalpinAMD

• Rolf RabenseifnerHLRS Stuttgart

• Daisuke TakahashiUniv. of Tsukuba

Page 41: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

SC|05 HPCC Awards Class 1 - HPL

May 9, 03 Jan 14, 04 Sep 20, 04 May 28, 05 Feb 2, 060.1

1

10

100

1000

Tflo

p/s

259 Tflop/s

110 Gflop/s

HPCS goal: 2000 Tflop/s

SC04 SC|05

1. IBM BG/L 259 (LLNL)2. IBM BG/L 67 (Watson)3. IBM Power5 58 (LLNL)

x7TOP500: 280 Tflop/s

TOP500 Systemsin HPCC database:

#1, #2, #3, #4, #10, #14, #17, #35, #37, #71, #80

InitialHPCC AwardsAnnoucement

Page 42: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

SC|05 HPCC Awards Class 1 – STREAM-sys

May 9, 03 Jan 14, 04 Sep 20, 04 May 28, 05 Feb 2, 0610

100

1000

10000

100000

1000000

GB

/s

160 TB/s

27 GB/s

HPCS goal: 6500 TB/s

SC04 SC|05

1. IBM BG/L 160 (LLNL)2. IBM Power5 55 (LLNL)3. IBM BG/L 40 (Watson)

x40

InitialHPCC AwardsAnnoucement

Page 43: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

SC|05 HPCC Awards Class 1 – FFT

May 9, 03 Jan 14, 04 Sep 20, 04 May 28, 05 Feb 2, 061

10

100

1000

10000

Gflo

p/s

2311 Gflop/s

4 Gflop/s

HPCS goal: 500 Tflop/s

SC|05SC04

1. IBM BG/L 2.3 (LLNL)2. IBM BG/L 1.1 (Watson)3. IBM Power5 1.0 (LLNL)

x200

InitialHPCC AwardsAnnoucement

Page 44: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

SC|05 HPCC Awards Class 1 –RandomAccess

May 9, 03 Jan 14, 04 Sep 20, 04 May 28, 05 Feb 2, 060.001

0.01

0.1

1

10

100

GU

PS

35 GUPS

0.01 GUPS

HPCS goal: 64000 GUPS

SC04 SC|05

1. IBM BG/L 35 (LLNL)2. IBM BG/L 17 (Watson)3. Cray X1E 8 (ORNL)

x1800

InitialHPCC AwardsAnnoucement

Page 45: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

SC|05 HPCC Awards Class 2

√√HPF

√√StarP

√√OpenMP, C++

√√MPT C

√√√√Parallel Matlab

√√√√Cilk

√√√UPCx3

√√Cray MTA C

√√√√pMatlab

√√Python+MPI

FFTSTREAMRandomAccessHPLLanguage Sample submission

fromcommitteemembers

Winners

Finalists

Page 46: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

SC06 HPCC Awards BOF

Awards will be presented at the SC06 HPC Challenge BOF

Tuesday, November 14, 2006

In Ballroom B-C

12:15-1:15

Page 47: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC b_eff Analysis Outline

• How HPC Challenge Benchmark (HPCC) data can be used to analyze the balance of HPC systems

• Details on ring based benchmarks

• Resource based ratios• Inter-node bandwidth and

• memory bandwidth

• versus computational speed

• Comparison mainly based on public HPCC data

Page 48: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC and Computational Resources

Computational resources

CPUcomputational

speed

Memorybandwidth

NodeInterconnect

bandwidth

HPL(Jack Dongarra)

STREAM(John McCalpin)

Random & NaturalRing Bandwidth & Latency(my part of the HPCC Benchmark Suite)

Page 49: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Random and Natural Ring B/W and Latency

• Parallel communication pattern on all MPI processes ( )

– Natural ring

– Random ring

• Bandwidth per process – Accumulated message size / wall-clock time / number of processes

– On each connection messages in both directions

– With 2xMPI_Sendrecv and MPI non-blocking best result is used

– Message size = 2,000,000 bytes

• Latency– Same patterns, message size = 8 bytes

– Wall-clock time / (number of sendrecv per process)

Page 50: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Inter-node B/W on Clusters of SMP Nodes

• Random Ring

– Reflects the other dimension of a Cartesian domain decomposition and

– Communication patterns in unstructured grids

– Some connections are inside of the nodes

– Most connections are inter-node

– Depends on #nodes and #MPI processes per node

Page 51: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Accumulated Inter-node B/W on Clusters of SMPs

• Accumulated bandwidth

:= bandwidth per process x #processes

~= accumulated inter-node bandwidth _

1 – 1 / #nodes

similar tobi-section bandwidth

Page 52: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Balance Analysis with HPCC Data

• Balance can be expressed as a set of ratios

– e.g., accumulated memory bandwidth / accumulated Tflop/s rate

• Basis – Linpack (HPL) Computational Speed

– Random Ring Bandwidth Inter-node communication

– Parallel STREAM Copy or Triad Memory bandwidth

• Be careful:

– Some data are presented for the total system

– Some per MPI process (HPL processes), e.g., ring bandwidth

– i.e., balance calculation always with accumulated data on the total system

Page 53: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Balance: Random Ring B/W and HPL

hpcc_2006-09-14_analysis.ppt Als Webseite speichern hpcc_2006-09-14_analysis-Diagramme/image005.gif

•Ratio measures balance between

inter-node communication and computational speed (Linpack).

• It varies between systems by a factor of ~20.

Status Sep. 14, 2006

Page 54: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Balance: Random Ring B/W and CPU Speed

Same as on previous slide,but linear ...

hpcc_2006-09-14_analysis.ppt Als Webseite speichern hpcc_2006-09-14_analysis-Diagramme/image006.gif

Page 55: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Balance: Memory and CPU SpeedHigh memory bandwidth ratio on vector-type systems (NEC SX-8, Cray X1 & X1E),but also on Cray XT3.

•Balance: Variation between systems only about 10.

hpcc_2006-09-14_analysis.ppt Als Webseite speichern hpcc_2006-09-14_analysis-Diagramme/image011.gif

Page 56: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Balance: FFT and CPU

hpcc_2006-09-14_analysis.ppt Als Webseite speichern hpcc_2006-09-14_analysis-Diagramme/image015.gif

• Ratio ~20.

Page 57: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Balance: PTRANS and CPU

•Balance: Variation between systems larger than 20.

hpcc_2006-09-14_analysis.ppt Als Webseite speichern hpcc_2006-09-14_analysis-Diagramme/image013.gif

Page 58: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Acknowledgments

• Thanks to– all persons and institutions that have uploaded HPCC results.– Jack Dongarra and Piotr Luszczek

for inviting me into the HPCC development team. – Matthias Müller, Sunil Tiyyagura and Holger Berger

for benchmarking on the SX-8 and SX-6 and discussions on HPCC.– Nathan Wichmann from Cray for Cray XT3 and X1E data.

• References– S. Saini, R. Ciotti,B. Gunney, Th. Spelce, A. Koniges, D. Dossa, P. Adamidis,

R. Rabenseifner, S. Tiyyagura, M, Müller, and R. Fatoohi: Performance Evaluation of Supercomputers using HPCC and IMB Benchmarks. In the proceedings of the IPDPS 2006 Conference.

– R. Rabenseifner, S. Tiyyagurra, M. Müller: Network Bandwidth Measurements and Ratio Analysis with the HPC Challenge Benchmark Suite (HPCC). Proceedings of the 12th European PVM/MPI Users' Group Meeting, EuroPVM/MPI 2005

Page 59: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Conclusions

• HPCC is an interesting basis for • benchmarking computational resources

• analyzing the balance of a system

• scaling with the number of processors

• with respect to application needs

• HPCC helps to show the strength and weakness of super-computers

• Future super computing should not focus only on Pflop/s in the TOP500

• Memory and network bandwidth are as same as important to predict real application performance

Page 60: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Reporting Results - Etiquette

• The HPC Challenge Benchmark suite has been designed to permit academic style usage for comparing

– Technologies

– Architectures

– Programming models

• There is an overt attempt to keep HPC Challenge significantly different than “commercialized” benchmark suites

– Vendors and users can submit results

– System “cost/price” is not included intentionally

– No “composite” benchmark metric

• Be cool about comparisons!

• While we can not enforce any rule to limit comparisons observe rules of

– Academic honesty

– Good taste

Page 61: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Total Number of HPCC Submissions

2 0 0 3 - 0 5 - 0 9 2 0 0 4 - 0 1 - 1 4 2 0 0 4 - 0 9 - 2 0 2 0 0 5 - 0 5 - 2 8 2 0 0 6 - 0 2 - 0 2 2 0 0 6 - 1 0 - 1 00

1 0

2 0

3 0

4 0

5 0

6 0

7 0

8 0

9 0

1 0 0

1 1 0

1 2 0

Page 62: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Based vs. Optimized Submission

• Optimized G-RandomAccess is a UPC code

– ~125x improvement

G-HPL G-PTRANSG-Random

Access G-FFTEG-STREAM

Triad

EPSTREAM

TriadEP

DGEMM

RandomRing

Bandwidth

RandomRing

LatencySystem - Processor Speed Count TFlop/s GB/s Gup/s GFlop/s GB/s GB/s GFlop/s GB/s usecCray mfeg8 X1E 1.13GHz 248 opt 3.3889 66.01 1.85475 -1 3280.9 13.229 13.564 0.29886 14.58

Cray X1E X1E MSP 1.13GHz 252 base 3.1941 85.204 0.014868 15.54 2440 9.682 14.185 0.36024 14.93

System Information RunType

Page 63: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Exploiting Hybrid Programming Model

• The NEC SX-7 architecture can permit the definition of threads and processes to significantly enhance performance of the EP versions of the benchmark suite by allocating more powerful “nodes”

– EP-STREAM

– EP-DGEMM

G-HPL G-PTRANSG-Random

Access G-FFTEG-STREAM

Triad

EPSTREAM

TriadEP

DGEMM

RandomRing

Bandwidth

RandomRing

LatencySystem Speed Count Threads Processes TFlop/s GB/s Gup/s GFlop/s GB/s GB/s GFlop/s GB/s usecNEC SX-7 0.552GHz 32 16 2 0.2174 16.34 0.000178 1.34 984.3 492.161 140.636 8.14753 4.85NEC SX-7 0.552GHz 32 1 32 0.2553 20.546 0.000964 11.29 836.9 26.154 8.239 5.03934 14.21

System Information

Page 64: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Kiviat Charts: Comparing Interconnects

• AMD Opteron clusters

– 2.2 GHz

– 64-processor cluster

• Interconnects

1. GigE

2. Commodity

3. Vendor

• Cannot be differentiated based on:

– HPL

– Matrix-matrix multiply

• Available on HPCC website

Kiviat chart (radar plot)

Page 65: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Augmenting TOP500’s 26th Edition with HPCC

1.270.7855299442021Jaguar10

27Stella9

28MareNostrum8

36Earth

Simulator7

1.281.011184418133336Red Storm6

38Thunderbird5

1.440.223021914752Columbia4

3.250.2967445765863ASC Purple3

0.2521.684501728491BGW2

0.2635.52311160374259281BlueGene/L1

B/WLatencyGUPSFFTSTREAMPTRANSHPLRmaxComputer

Page 66: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Augmenting TOP500’s 27th Edition with HPCC

B/WLatencyGUPSFFTSTREAMPTRANSHPLRmaxComputer

35.86Earth

Simulator10

1.1497.971.02111843.581813.0632.9936.19Red Storm9

37.33BlueGene eServer

8

38.18Fire x46007

38.27Thunderbird6

42.9Tera-105

0.8964.230.252292091.3146.7851.87Columbia (*)4

3.1845.11.038425555357.975.8ASC Purple3

0.1594.7021.61123550171.5583.991BGW (*)2

0.1595.9235.4723111604665.9259.2280.6BlueGene/L1

Page 67: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Normalize with Respect to Peak flop/s

17.52555.90.00286.9%NEC SX-8

3.5308.70.00371.9%SGI Altix

6.1435.70.08970.6%IBM BG/L

15.5703.50.00353.5%IBM POWER5

13.4696.10.42267.3%Cray X1E

38.31168.80.03181.4%Cray XT3

FFTSTREAMRandomAccessHPLComputer

Normalizing with peak flop/s cancels out number of processors:

G-HPL / Rpeak = (local-HPL*P) / (local-Rpeak*P) = local-HPL / local-Rpeak

Good: can compare systems with different number of processors.Bad: it’s easy to scale peak and harder to scale real calculation.

Page 68: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Correlation: HPL vs. Theoretical Peak

HPL versus Theoretical Peak

0

5

10

15

20

25

30

0 5 10 15 20 25

HPL (Tflop/s)

Th

eore

tica

l P

eak

(Tfl

op

/s)

• How well does HPL data correlate with theoretical peak performance?

Cray XT3

NEC SX-8

SGI Altix

Page 69: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Correlation: HPL vs. DGEMMHPL versus DGEMM

0

5000

10000

15000

20000

25000

30000

0 5 10 15 20 25

HPL (Tflop/s)

DG

EM

M (

Gfl

op

/s)

• Can I Run Just Run DGEMM Instead of HPL?

• DGEMM alone overestimates HPL performance

• Note the 1,000x difference in scales! (Tera/Giga)

• Exercise: correlate HPL versus Processors*DGEMM

Cray XT3

NEC SX-8

SGI Altix

Page 70: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Correlation: HPL vs. STREAM-Triad

HPL versus STREAM Triad

0

5000

10000

15000

20000

25000

30000

0 5 10 15 20 25

HPL (Tflop/s)

ST

RE

AM

Tri

ad (

GB

/s)

• How well does HPL correlate with STREAM-Triad performance?

Cray XT3NEC SX-8

SGI Altix

Cray X1E/opt

Page 71: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Correlation: HPL vs. RandomAccess

HPL versus G-RandomAccess

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

0 5 10 15 20 25

HPL (Tflop/s)

G-R

and

om

Acc

ess

(GU

PS

)

• How well does HPL correlate withG-RandomAccess performance?

• Note the 1,000x difference in scales! (Tera/Giga)

Cray XT3

NEC SX-8

SGI Altix

Cray X1E/opt

IBM BG/L

Rackable

Page 72: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Correlation: HPL vs. FFT

HPL versus FFT

0

100

200

300

400

500

600

700

800

900

1000

0 5 10 15 20 25

HPL (Tflop/s)

FF

T (

Gfl

op

/s)

• How well does HPL correlate with FFT performance?

• Note the 1,000x difference in scales! (Tera/Giga)

Cray XT3

NEC SX-8

SGI Altix

Page 73: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Correlation: STREAM vs. PTRANS

Global Stream versus PTRANS

0

100

200

300

400

500

600

700

800

900

1000

0 5000 10000 15000 20000 25000 30000

Global STREAM (GB/s)

PT

RA

NS

(G

B/s

)

• How well does STREAM data correlate with PTRANS performance?

Cray XT3

NEC SX-8

Page 74: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Correlation: RandomRing B/W vs. PTRANS

RandomRing Bandwidth versus PTRANS

0

100

200

300

400

500

600

700

800

900

1000

0 2 4 6 8 10 12 14 16

RandomRing Bandwidth (GB/s)

PT

RA

NS

(G

B/s

)

• How well does RandomRing Bandwidth data correlate with PTRANS performance

• Possible bad data?

Cray XT3

NEC SX-8

NEC SX-7

Page 75: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Correlation: #Processors vs. RandomAccess

Number of Processors versus G-RandomAccess

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

0 1000 2000 3000 4000 5000 6000

Number of Processors

G-R

an

do

mA

cc

es

s (

GU

PS

)

• Does G-RandomAccess scale with the number of processors?

Cray XT3

SGI Altix

Cray X1E/opt

IBM BG/LRackable

Page 76: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Correlation: Random-Ring vs. RandomAccess

RandomRing Bandwidth versus G-RandomAccess

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

0 2 4 6 8 10 12 14 16

RandomRing Bandwidth (GB/s)

G-R

and

om

Acc

ess

(G

UP

S)

• Does G-RandomAccess scale with the RandomRing Bandwidth?

• Possible bad data?

Cray X1E/opt

NEC SX-8NEC SX-7

Page 77: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Correlation: Random-Ring vs. RandomAccess

RandomRing Bandwidth versus G-RandomAccess

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

RandomRing Bandwidth (GB/s)

G-R

and

om

Acc

ess

(GU

PS

)

• Does G-RandomAccess scale with RandomRing Bandwidth?

• Ignoring possible bad data…

Cray X1E/opt

Page 78: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Correlation: Random-Ring vs. RandomAccess

RandomRing Latency versus G-RandomAccess

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

0 10 20 30 40 50 60

RandomRing Latency (usec)

G-R

and

om

Acc

ess

(GU

PS

)

• Does G-RandomAccess scale with RandomRing Latency ?

Cray X1E/opt

Rackable

Page 79: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Correlation: RandomAccess Local vs. Global

Single Processor RandomAccess versus G-RandomAccess(per System)

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

0 20 40 60 80 100 120 140 160 180 200

Single Processor RandomAccess (GUPS)

G-R

an

do

mA

cc

es

s (

GU

PS

)

• Does G-RandomAccess scale with single processor RandomAccess performance (per system)?

Cray X1E/opt

Cray XT3Rackable

Page 80: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Correlation: RandomAccess Local vs. Global

Single Processor RandomAccess versus G-RandomAccess(per Processor)

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

0 0.1 0.2 0.3

Single Processor RandomAccess (GUPS)

G-R

an

do

mA

cc

es

s (

GU

PS

)

• Does G-RandomAccess scale with single processor RandomAccess performance?

Cray X1E/opt

Rackable

Page 81: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Correlation:STREAM-Triad vs.RandomAccess

STREAM Triad versus G-RandomAccess

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

0 5000 10000 15000 20000 25000 30000

STREAM Triad (GB/s)

G-R

and

om

Acc

ess

(GU

PS

)

• Does G-RandomAccess scale with STREAM Triad?

Cray XT3

SGI Altix

Cray X1E/opt

Rackable

NEC SX-8

IBM BG/L

Page 82: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

RandomAccess Correlations Summary

• G-RandomAccess doesn’t correlate with other tests

• Biggest improvement comes from code optimization

– Limit on parallel look-ahead forces short messages• Typical MPI performance killer

• Communication/computation overlap is wasted by message handling overhead

– UPC implementation can be integrated with existing MPI code base to yield orders of magnitude speedup

– Using interconnect topology and lower-level (less overhead) messaging layer is also a big win

• Generalization from 3D torus: hyper-cube algorithm

Page 83: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Principal Component Analysis

• Correlates all the tests simultaneously• Load vectors hint at relationship between original results

and the principal components• Initial analysis:

– 29 tests• Rpeak, HPL, PTRANS (x1)• DGEMM (x2)• FFT, RandomAccess (x3)• STREAM (x8)• b_eff (x10)

– 103 computers• Must have all 29 valid (up-to-date) values

• Principal components (eigenvalues of covariance matrix of zero-mean, unscaled data):– 4.57, 1.17, 0.41, 0.15, 0.0085,

0.0027

• Only 3 (4) components• redundancy or• opportunity to check?

Page 84: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Effective Bandwidth Analysis

HPCS ~102

HPC ~104

Clusters ~106

1.E+03

1.E+06

1.E+09

1.E+12

1.E+15

DARPA

HPC

S G

oals

IBM

BG

/L (LLNL) O

pt

IBM

BG

/L (LLNL)

IBM

Power5

(LLNL)

Cray X

T3 (O

RN

L)

Cray X

T3 (E

RD

C)

Cray X

1 (O

RN

L) Opt

Cray X

1 (O

RN

L)

NEC S

X-8

(HLR

S)

SG

I Altix (N

ASA)

Cray X

1E (A

HPC

RC)

Opteron

(AM

D)

Dell G

igE P6

4 (M

ITLL)

Dell G

igE P3

2 (M

ITLL)

Dell G

igE P1

6 (M

ITLL)

Dell G

igE P8

(MIT

LL)

Dell G

igE P4

(MIT

LL)

Dell G

igE P2

(MIT

LL)

Dell G

igE P

1 (M

ITLL)

Top500 (words/s)STREAM (words/s)FFT (words/s)RandomAccess (words/s)

Systems(in Top500

order)

Meg

aG

iga

Ter

aP

eta

Eff

ecti

ve B

and

wid

th (

wo

rds/

seco

nd

)

• All results in words/second

• Highlights memory hierarchy

• Clusters

– Hierarchy steepens

• HPC systems

– Hierarchy constant

• HPCS Goals

– Hierarchy flattens

– Easier to program

Kilo

Page 85: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Public Web Resources

• Main HPCC website

– http://icl.cs.utk.edu/hpcc/

• HPCC Awards

– http://www.hpcchallenge.org/

• HPL

– http://www.netlib.org/benchmark/hpl/

• STREAM

– http://www.cs.virginia.edu/stream/

• PTRANS

– http://www.netlib.org/parkbench/html/matrix-kernels.html

• FFTE

– http://www.ffte.jp/

Page 86: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Makefile Stucture (1/2)

• Sample Makefiles live inhpl/setup

• BLAS– LAdir – BLAS top directory for other LA-variables– LAinc – where BLAS headers live (if needed)– LAlib – where BLAS libraries live (libmpi.a and friends)– F2CDEFS – resolves Fortran-C calling issues (BLAS is usually

callable from Fortran)• -DAdd_, -DNoChange, -DUpCase, -Dadd__• -DStringSunStyle, -DStringStructPtr, -DStringStructVal, -DStringCrayStyle

• MPI– MPdir – MPI top directory for other MP-variables– MPinc – where MPI headers live (mpi.h and friends)– MPlib – where MPI libraries live (libmpi.a and friends)

Page 87: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Makefile Stucture (1/2)

• Compiler– CC – C compiler– CCNOOPT – C flags without optimization (for

optimization-sensitive code)– CCFLAGS – C flags with optimization

• Linker– LINKER – program that can link BLAS and MPI

together– LINKFLAGS – flags required to link BLAS and MPI

together

• Programs/commands– SHELL, CD, CP, LN_S, MKDIR, RM, TOUCH– ARCHIVER, ARFLAGS, RANLIB

Page 88: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

MPI Implementations for HPCC

• Vendor

– Cray (MPT)

– IBM (POE)

– SGI (MPT)

– Dolphin, Infiniband (Mellanox, Voltaire, ...), Myricom (GM, MX), Quadrics, PathScale, Scali, ...

• Open Source

– MPICH1, MPICH2 (http://www-unix.mcs.anl.gov/mpi/mpich/)

– Lam MPI (http://www.lam-mpi.org/)

– OpenMPI (http://www.open-mpi.org/)

– LA-MPI (http://public.lanl.gov/lampi/)

• MPI implementation components

– Compiler (adds MPI header directories)

– Linker (need to link in Fortran I/O)

– Exe (poe, mprun, mpirun, aprun, mpiexec, ...)

Page 89: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Fast BLAS for HPCC

• Vendor

– AMD (AMD Core Math Library)

– Cray (SciLib)

– HP (MLIB)

– IBM (ESSL)

– Intel (Math Kernel Library)

– SGI (SGI/Cray Scientific Library)

– ...

• Free implementations

– ATLAShttp://www.netlib.org/atlas/

– Goto BLAShttp://www.cs.utexas.edu/users/flame/goto

http://www.tacc.utexas.edu/resources/software

• Implementations that use Threads

– Some vendor BLAS

– Atlas

– Goto BLAS

• You should never use reference BLAS from Netlib

– There are better alternatives for every system in existence

Page 90: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Tuning Process: Internal to HPCC Code

• Changes to source code are not allowed for submission

• But just for tuning it's best to change a few things

– Switch off some tests temporarily

• Choosing right parallelism levels

– Processes (MPI)

– Threads (OpenMP in code, vendor in BLAS)

– Processors

– Cores

• Compile time parameters

– More details below

• Runtime input file

– More details below

Page 91: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Tuning Process: External to HPCC Code

• MPI settings examples

– Messaging modes• Eager polling is probably not a good idea

– Buffer sizes

– Consult MPI implementation documentation

• OS settings

– Page size• Large page size should be better on many systems

– Pinning down the pages• Optimize affinity on DSM architectures

– Priorities

– Consult OS documentation

Page 92: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Parallelism Examples with Comments

• Pseudo-threading helps but be careful

– Hyper-threading

– Simultaneous Multi-Threading

– ...

• Cores

– Intel (x86-64, Itanium), AMD (x86)

– Cray: SSP, MSP

– IBM Power4, Power5, ...

– Sun SPARC

• SMP

– BlueGene/L (single/double CPU usage per card)

– SGI (NUMA, ccNUMA, DSM)

– Cray, NEC

• Others

– Cray MTA (no MPI !)

Page 93: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Input and Output Files

• Parameter file hpccinf.txt

– HPL parameters• Lines 5-31

– PTRANS parameters• Lines 32-36

– Indirectly: sizes of arrays for all HPCC components

• Hard coded

• Output file hpccoutf.txt

– Must be uploaded to the website

– Easy to parse

– More details later...

• Memory file hpccmemf.txt

– Memory available per MPI processProcess=64

– Memory available per threadThread=64

– Total available memoryTotal=64

– Many HPL and PTRANS parameters might not be optimal

Page 94: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Tuning HPL: Introduction

• Performance of HPL comes from

– BLAS

– Input file hpccinf.txt

• Essential parameters in the input file

– N – matrix size

– NB – blocking factor• Influences BLAS performance and

load balance

– PMAP – process mapping• Depends on network topology

– PxQ – process grid

• Definitions N

NB

=

A x = b

PXPY PZ PX

Page 95: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Tuning HPL: More Definitions

• Process grid parameters: P, Q, and PMAP

P0

P4

P8

P1 P2

P5

P9

P6

P10

P3

P7

P11

P0

P1

P2

P3 P6

P4

P5

P7

P8

P9

P10

P11

P=3

Q=4

PMAP=RPMAP=C

Page 96: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Tuning HPL: Selecting Process Grid

Page 97: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Tuning HPL: Selecting Number of Processors

Prime numbers37

41 43

4753

5961

Page 98: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Tuning HPL: Selecting Matrix Size

Too smallBest performance

Too big6 x 10

Not optimial parameters

Too big12 x 10

Page 99: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Tuning HPL: Further Details

• Much more details from HPL's author:

• Antoine Petitet

• http://www.netlib.org/benchmark/hpl/

Page 100: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Tuning FFT

• Compile-time parameters– FFTE_NBLK

• blocking factor

– FFTE_NP• padding (to alleviate negative cache-line effects)

– FFTE_L2SIZE• size of level 2 cache

• Use FFTW instead of FFTE

– Define USING_FFTW symbol during compilation

– Add FFTW location and library to linker flags

Page 101: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Tuning STREAM

• Intended to measure main memory bandwidth

• Requires many optimizations to run at full hardware speed

– Software pipelining

– Prefetching

– Loop unrolling

– Data alignment

– Removal of array aliasing

• Original STREAM has advantages

– Constant array sizes (known at compile time)

– Static storage of arrays (at full compiler's control)

Page 102: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Tuning PTRANS

• Parameter file hpccinf.txt

– Line 33 — number of matrix sizes

– Line 34 — matrix sizes• Must not be too small – enforced in the code

– Line 35 — number of blocking factors

– Line 36 — blocking factors• No need to worry about BLAS

• Very influential for performance

Page 103: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Tuning b_eff

• b_eff (Effective bandwidth and latency) test can also be tuned

• Tuning must use only standard MPI calls

• Examples

– Persistent communication

– One-sided communication

Page 104: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

HPCC Output File

• The output file has two parts

– Verbose output (free format)

– Summary section• Pairs of the form:name=value

• The summary section names

– MPI* — global results• Example: MPIRandomAccess_GUPs

– Star* — embarrassingly parallel results• Example: StarRandomAccess_GUPs

– Single* — single process results• Example: SingleRandomAccess_GUPs

Page 105: The HPC Challenge (HPCC) Benchmark Suiteicl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdfThe HPC Challenge (HPCC) Benchmark Suite Piotr Luszczek, David Bailey, Jack Dongarra, Jeremy

Optimized Submission Ideas

• For optimized run the same MPI harness has to be run on the same system

• Certain routines can be replaced – the timed regions• The verification has to pass – limits data layout and accuracy of

optimization• Variations of the reference implementation are allowed (within

reason)– No Strassen algorithm for HPL due to different operation count

• Various non-portable C directives can significantly boost performance– Example: #pragma ivdep

• Various messaging substrates can be used– Removes MPI overhead

• Various languages can be used– Allows for direct access to non-portable hardware features– UPC was used to increase RandomAccess performance by orders

of magnitude• Optimizations need to be explained upon results submission