Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI...

28
Advanced Topics in Numerical Analysis: High Performance Computing MATH-GA 2012.001 & CSCI-GA 2945.001 Georg (Stadler) Courant Institute, NYU [email protected] Spring 2017, Thursday, 5:10–7:00PM, WWH #512 Feb. 17, 2017 1 / 19

Transcript of Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI...

Page 1: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Advanced Topics in Numerical Analysis:High Performance Computing

MATH-GA 2012.001 & CSCI-GA 2945.001

Georg (Stadler)Courant Institute, [email protected]

Spring 2017, Thursday, 5:10–7:00PM, WWH #512

Feb. 17, 2017

1 / 19

Page 2: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Outline

Organization issues

Last class summary

Memory hierarchies (single CPU)

Tool/command of the week

2 / 19

Page 3: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Organization issues

I I’m looking for a room/time to makeup for the cancelledclasses. Will post options on Piazza–please vote!

I There will be a new homework posted by tomorrow.

3 / 19

Page 4: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Organization issues

I We got access and computing time on Stampede at the TexasAdvanced Computing Center (TACC).

I You’ll hear from Bill concerning registration. We’ll useStampede for homework problems and you can use it for finalprojects (more how to use it, in the next classes).

I Currently, Stampede is #17 on the Top 500 list, but in theprocess of being upgraded to Stampede 2 this summer.

I We share compute time on that resource, so please don’t bewasteful.

4 / 19

Page 5: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Outline

Organization issues

Last class summary

Memory hierarchies (single CPU)

Tool/command of the week

5 / 19

Page 6: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Moore’s law todayI Frequency/clock speed stopped growing in ∼ 2004

I Number of cores per CPUI Moore’s law still holdsI Energy use ∼bounded

0

1

10

100

1000

10000

100000

1000000

10000000

1970 1975 1980 1985 1990 1995 2000 2005 2010

Transistors (Thousands) Frequency (MHz) Power (W) Cores

Source: CS Department, UC Berkeley.

6 / 19

Page 7: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Parallel computing ⊂ high-performance computing

I All major vendors produce multicore chips—need to thinkdifferently about applications.

I How well can applications and algorithms exploit parallelism?

I Memory density (DRAM) grows at slower rate.Loading/writing to memory is slow (O(100) clock cycles)

I Top500 list: leading machines have > 106 processor cores,and often two different kinds of compute chips (CPUs andsome kind of accelerators).

7 / 19

Page 8: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Do we really need larger and faster?

Simulation has become the third pillar of Science:

theory experiment

simulation

HPC computing used in: weather prediction, climate modeling,drug design, astrophysics, earthquake modeling, semiconductordesign, crash test simulations, financial modeling, . . .

8 / 19

Page 9: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Basic CS terms recalled

I compiler: translates human code into machine languageI CPU/processor: central processing unit caries out instructions

of a computer program, i.e., arithmetic/logical operations,input/output

I core: individual processing unit in a CPU, “multicore” CPU;will sometimes use “processors” in a sloppy way, and actuallymean “cores”

I clock rate/frequency: indicator of speed in which instructionsare performed

I floating point operation: multiplication add of two floatingpoint numbers, usually double precision (64 bit, about 16digits)

I peak performance: fastest theoretical flop/sI sustained performance: flop/s in actual computationI memory hierarchy: large memories (RAM/disc/solid state) are

slow; fast memories (L1/L2/L3 cache) are small

9 / 19

Page 10: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Outline

Organization issues

Last class summary

Memory hierarchies (single CPU)

Tool/command of the week

10 / 19

Page 11: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Flop/s versus Mop/sFor many practical applications, memory access is the bottleneck,not floating point operations.

Development of memory versus processor performance.

I Most applications run at < 10% of the theoretical peakperformance.

I Mostly a single core issue; on parallel computers, thingsbecome even more difficult.

11 / 19

Page 12: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Memory hierarchies

Computer architecture is complicated. We need a basicperformance model.

I Processor needs to be “fed” with data to work on.

I Memory access is slow; memory hierarchies help.

I This is a single processor issue, but it’s even more importanton parallel computers.

More CS terms:

I latency: time it takes to load/write data from/at a specificlocation in RAM to/from the CPU registers (in seconds)

I bandwidth: rate at which data can be read/written (for largedata); in (bytes/second);

Bandwidth grows faster than latency.

12 / 19

Page 13: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Memory hierarchies

Computer architecture is complicated. We need a basicperformance model.

I Processor needs to be “fed” with data to work on.

I Memory access is slow; memory hierarchies help.

I This is a single processor issue, but it’s even more importanton parallel computers.

More CS terms:

I latency:

time it takes to load/write data from/at a specificlocation in RAM to/from the CPU registers (in seconds)

I bandwidth: rate at which data can be read/written (for largedata); in (bytes/second);

Bandwidth grows faster than latency.

12 / 19

Page 14: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Memory hierarchies

Computer architecture is complicated. We need a basicperformance model.

I Processor needs to be “fed” with data to work on.

I Memory access is slow; memory hierarchies help.

I This is a single processor issue, but it’s even more importanton parallel computers.

More CS terms:

I latency: time it takes to load/write data from/at a specificlocation in RAM to/from the CPU registers (in seconds)

I bandwidth: rate at which data can be read/written (for largedata); in (bytes/second);

Bandwidth grows faster than latency.

12 / 19

Page 15: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Memory hierarchies

Computer architecture is complicated. We need a basicperformance model.

I Processor needs to be “fed” with data to work on.

I Memory access is slow; memory hierarchies help.

I This is a single processor issue, but it’s even more importanton parallel computers.

More CS terms:

I latency: time it takes to load/write data from/at a specificlocation in RAM to/from the CPU registers (in seconds)

I bandwidth:

rate at which data can be read/written (for largedata); in (bytes/second);

Bandwidth grows faster than latency.

12 / 19

Page 16: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Memory hierarchies

Computer architecture is complicated. We need a basicperformance model.

I Processor needs to be “fed” with data to work on.

I Memory access is slow; memory hierarchies help.

I This is a single processor issue, but it’s even more importanton parallel computers.

More CS terms:

I latency: time it takes to load/write data from/at a specificlocation in RAM to/from the CPU registers (in seconds)

I bandwidth: rate at which data can be read/written (for largedata); in (bytes/second);

Bandwidth grows faster than latency.

12 / 19

Page 17: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Memory hierarchies

Computer architecture is complicated. We need a basicperformance model.

I Processor needs to be “fed” with data to work on.

I Memory access is slow; memory hierarchies help.

I This is a single processor issue, but it’s even more importanton parallel computers.

More CS terms:

I latency: time it takes to load/write data from/at a specificlocation in RAM to/from the CPU registers (in seconds)

I bandwidth: rate at which data can be read/written (for largedata); in (bytes/second);

Bandwidth grows faster than latency.

12 / 19

Page 18: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Memory hierarchiesOn my Mac Book Pro: 32KB L1 Cache, 256KB L2 Cache, 3MB Cache, 8GB RAM

CPU: O(1ns), L2/L3: O(10ns), RAM: O(100ns), disc: O(10ms)

13 / 19

Page 19: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Memory hierarchiesDecreasing memory latency

I Eliminate memory operations by saving data in fast memoryand reusing them, i.e., temporal locality: Access an item thatwas previously accessed

I Explore bandwidth by moving a chunk of data into the fastmemory: spatial locality: Access data nearby previous accesses

I Overlap computation and memory access (pre-fetching; mostlyfigured out by compiler, but the compiler often needs help)

More CS terms:

I cache-hit: required data is available in cache ⇒ fast access

I cache-miss: required data is not in cache and must be loadedfrom main memory (RAM) ⇒ slow access

14 / 19

Page 20: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Memory hierarchiesDecreasing memory latency

I Eliminate memory operations by saving data in fast memoryand reusing them, i.e., temporal locality: Access an item thatwas previously accessed

I Explore bandwidth by moving a chunk of data into the fastmemory: spatial locality: Access data nearby previous accesses

I Overlap computation and memory access (pre-fetching; mostlyfigured out by compiler, but the compiler often needs help)

More CS terms:

I cache-hit:

required data is available in cache ⇒ fast access

I cache-miss: required data is not in cache and must be loadedfrom main memory (RAM) ⇒ slow access

14 / 19

Page 21: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Memory hierarchiesDecreasing memory latency

I Eliminate memory operations by saving data in fast memoryand reusing them, i.e., temporal locality: Access an item thatwas previously accessed

I Explore bandwidth by moving a chunk of data into the fastmemory: spatial locality: Access data nearby previous accesses

I Overlap computation and memory access (pre-fetching; mostlyfigured out by compiler, but the compiler often needs help)

More CS terms:

I cache-hit: required data is available in cache ⇒ fast access

I cache-miss: required data is not in cache and must be loadedfrom main memory (RAM) ⇒ slow access

14 / 19

Page 22: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Memory hierarchiesDecreasing memory latency

I Eliminate memory operations by saving data in fast memoryand reusing them, i.e., temporal locality: Access an item thatwas previously accessed

I Explore bandwidth by moving a chunk of data into the fastmemory: spatial locality: Access data nearby previous accesses

I Overlap computation and memory access (pre-fetching; mostlyfigured out by compiler, but the compiler often needs help)

More CS terms:

I cache-hit: required data is available in cache ⇒ fast access

I cache-miss:

required data is not in cache and must be loadedfrom main memory (RAM) ⇒ slow access

14 / 19

Page 23: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Memory hierarchiesDecreasing memory latency

I Eliminate memory operations by saving data in fast memoryand reusing them, i.e., temporal locality: Access an item thatwas previously accessed

I Explore bandwidth by moving a chunk of data into the fastmemory: spatial locality: Access data nearby previous accesses

I Overlap computation and memory access (pre-fetching; mostlyfigured out by compiler, but the compiler often needs help)

More CS terms:

I cache-hit: required data is available in cache ⇒ fast access

I cache-miss: required data is not in cache and must be loadedfrom main memory (RAM) ⇒ slow access

14 / 19

Page 24: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Memory hierarchySimple model

1. Only consider two levels in hierarchy, fast (cache) and slow(RAM) memory

2. All data is initially in slow memory3. Simplifications:

I Ignore that memory access and arithmetic operations canhappen at the same time

I assume time for access to fast memory is 0

4. Computational intensity: flops per slow memory access

q =f

m, where f . . .#flops,m . . .#slow memop.

Actual compute time:

ftf +mtm = ftf (1 +tmtf

1

q),

where tf is time per flop, and tm the time per slow memory access.Computational intensity should be as large as possible.

15 / 19

Page 25: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Memory hierarchyExample: Matrix-matrix multiply

Comparison between naive and blocked optimized matrix-matrixmultiplication for different matrix sizes.

Comparison between optimized and naive matrix-matrix multiplication on old hardware with peak of 330MFlops.

Source: J. Demel, Berkely

BLAS: Optimized Basic Linear Algebra Subprograms16 / 19

Page 26: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Memory hierarchy

To summarize:

I Temporal and spatial locality is key for fast performance.

I Simple performance model: fast and slow memory; onlycounts loads into fast memory; computational intensity shouldbe high.

I Since arithmetic is cheap compared to memory access, one canconsider making extra flops if it reduces the memory access.

I In distributed-memory parallel computations, the memoryhierarchy is extended to data stored on other processors, whichis only available through communication over the network.

https://github.com/NYU-HPC17/lecture2

17 / 19

Page 27: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

Outline

Organization issues

Last class summary

Memory hierarchies (single CPU)

Tool/command of the week

18 / 19

Page 28: Advanced Topics in Numerical Analysis: High Performance ...stadler/hpc17/material/hpc17_2.pdfI Processor needs to be \fed" with data to work on. I Memory access is slow; memory hierarchies

The module command

Allows to switch the user environment (programs, compilers etc).Available on all UNIX-based systems, i.e., on CIMS computers,compute servers etc.

module listmodule avail . . .module load python/3.4module unload texlive-2016module whatis gcc-6.1.0

19 / 19