28
What is HYBRID and Why? Jason Wang (LSTC) 1/24/2018 http://ftp.lstc.com/anonymous/outgoing/jason/Slides

What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

What is HYBRID and Why?

Jason Wang (LSTC)

1/24/2018http://ftp.lstc.com/anonymous/outgoing/jason/Slides

Page 2: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Outline

• Introduction

• Numerical variations

• Evolution of crashworthness modelling

• Evolution of CPU technology

• SMP and MPP

• Summary

Page 3: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Introduction - SMP vs MPPShared memory

SMP (Shared Memory Parallel)

Start and base from serial code

Using OpenMP directives to split the tasks

(fine grained parallelism)

Consistent results with different cores

Only run on SMP (single image) computers

Scalable up to ~16 CPUs

Telapse=Tcpu+Tsys+Tomp

Clusters

MPP (Message Passing Parallel)

Using domain decomposition

Using MPI for communications between sub-domains

(coarse grained parallelism)

Results change with different cores

Work on both SMP machines and clusters

Scalable >> 16 CPUs

Telapse=Tcpu+Tsys+Tmpp

Page 4: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

MPP performance

2 4 8 16 32 64 128 224 256 512 10240

50000

100000

150000

200000

250000

300000

350000

400000

450000

500000

550000

600000

Cray XT4(2x1) AMD Opteron 2.6GHz

HP CP3000+InfiniBand (2x1) Xeon 3.0GHz

HP CP3000+InfiniBand (2x2) Xeon 3.0GHz

Number of CPU

Ela

pse

d T

ime

(S

eco

nd

s)

Model (car2car model):2,500,000+ nodes and elementsFully integrated (type 16) shells

For 1024 cores, max. speedup is 251(2007)!

Page 5: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Numerical Variations - SMP

2

E1,f1 E3,f3

E2,f2 E4,f4

4 elements using 4 SMP threads

Force at node 2 h2= ((f1 + f2) + f3) +f4

MPP domain 0

h2 != h2 != h2 ! = h2

SMP ncpu=4, no special treatmentBased on the system load with 4 different runs

Force at node 2 h2= ((f3 + f1) + f2) +f4

Force at node 2 h2= ((f4 + f1) + f3) +f4

Force at node 2 h2= ((f4 + f2) + f3) +f1

SMP ncpu=-4, special treatment

Force assembly is outside of element loop:

Force at node 2 h2= ((g1+g2)+g3)+g4

Consistent results but ~10% slow down

Force at node 2 from e2 g2= f2

Force at node 2 from e3 g3= f3

Force at node 2 from e4 g4= f4

It may create 4 different results!

Force at node 2 from e1 g1= f1

Page 6: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Numerical Variations - SMP

2

E1,f1 E3,f3

E2,f2 E4,f4

2/4 SMP threads

Thread 1: Force at node 2 from e1 g1= f1

MPP domain 0

SMP ncpu=-2

SMP ncpu=-4

Force assembly is outside of element loop

Summing up nodal force in a specific order:

Force at node 2 h2= ((g1+g2)+g3)+g4

The results from ncpu=-2 and ncpu=-4 are identical.

Thread 2: Force at node 2 from e2 g2= f2

Thread 1: Force at node 2 from e4 g4= f4

Thread 2: Force at node 2 from e3 g3= f3

Thread 1: Force at node 2 from e1 g1= f1

Thread 2: Force at node 2 from e2 g2= f2

Thread 3: Force at node 2 from e4 g3= f3

Thread 4: Force at node 2 from e3 g4= f4

Page 7: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Numerical Variations - MPP

2

E1, f1 E3,f3

E2,f2 E4,f4

2

E1,f1 E3,f3

E2,f2 E4,f4

2

4 elements in one MPP domain

New domain line

Force at node 2 h2=((f1+f2)+f3)+f4

h2=((10.1+4.01)+5.05)+3.06)

=(14.1+5.05)+3.06

=19.1+3.06

=22.1

Processor 0 node 2 p0=f1+f2

Processor 1 node 2 p1=f3+f4

Force at node 2 h2 = p0 + p1

p0= 10.1+4.01= 14.1

p1= 5.05+3.06=8.11

h2 =14.1+8.11=22.2

MPP domain 0MPP domain 0 MPP domain 1

h2 ! = h2

22.1 != 22.2

Change MPP ranks

Example with 3

significant digits:

f1=10.1

f2=4.01

f3=5.05

f4=3.06

MPP consistency? Very expansive!

Page 8: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

VOLVO XC90 GEN II Crash CAE model 2014

• CrachFEM materials

• Detailed HAZ welds

• Multiple airbags

• Rolling wheels

• New powertrain models

• New chassis models

• Steering mechanics from

wheel to steering wheel

• Total number of elements: 10 000 000+

• Number of CPU’s: 480

• Run time ~ 40 hours

Courtesy of: VOLVO CAR CORPORATION

Page 9: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Solid elements!

0

2000

4000

6000

8000

10000

12000

14000

16000

1994 1996 1998 1999 2000 2002 2004 2006 2008 2014 2016

Model size for Satety Analysis

Turn around time ~16h-48h

BT shell

Fully integrated shellMore sophisticatedmat model

Serial Serial+SMP SMP/MPP MPPcores/job 1 4 8 24 48 96 192

Smaller elementsSolid spotweld clusterMulti-Physics

Mo

del S

ize (

x1000)

Transition from

SMP to MPP

35M in 3 yrs

SMP

MPP

Page 10: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

MPP performance – topcrunch.org (2007)

2 4 8 16 32 64 128 224 256 512 10240

50000

100000

150000

200000

250000

300000

350000

400000

450000

500000

550000

600000

Cray XT4(2x1) AMD Opteron 2.6GHz

HP CP3000+InfiniBand (2x1) Xeon 3.0GHz

HP CP3000+InfiniBand (2x2) Xeon 3.0GHz

Number of CPU

Ela

pse

d T

ime

(S

eco

nd

s)

Model (car2car model):2,500,000+ nodes and elementsFully integrated (type 16) shells

251 times120 times

Page 11: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Courtesy of: Steve Kan, Dhafer Marzougui (CCSA, George Mason University)

MPP scaling

• Contact occurs in a small region

• Long simulation time

• Hard to scale with MPP

1

6

11

16

21

26

31

16 116 216 316 416CPU

Per

form

an

ceideal

Total

element

contact

rigidbody

Scaling of contact

Page 12: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

CPU technology - Moore’s Law

Do you notice cores/socket increase?

Do you see clockrate increase?Intel Code name Min. feature sz Rel. core/sck Clockrate Instruction

Bloomfield 45nm 2008 4 3.2 GHz SSE

Westmere 32nm 2010 6 2.4 GHz SSE

SandyBridge 32nm 2011 6 3.1 GHz AVX

Haswell 22nm 2013 18 2.5GHz AVX2

Skylake 14nm 2015 28 2.5GHz AVX512

Data collected from Wikipedia

AMD Min. feature sz Rel. core/sck Clockrate Instruction

Epyc 14nm 2017 32 2.2GHz AVX2

Page 13: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

SMP and MPP – HYBRID

MPP message

12core/2socket 4 nodes clusters

96 MPP ranks

MPP

Telapse=Tcpu+Tsys+Tmpp

(8,16) MPP ranks(12,6) SMP threads

HYBRID

Telapse=Tcpu+Tsys+Tmpp+Tomp

SMP

SMP

SMP

SMP

SMP

SMP

SMP

SMP

Page 14: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Message latency - Tmpp

MPI ranks reducing

from 96 to 16/8

Each message size

increasing a little

Page 15: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Message size comparison

CPU core counts

SMP MPP HYBRID

1 16 512 5,000+

• Total message size and latency reduced by ~ thread2 (Tmpp )

• Number of local files reduced by ~ thread (Tsys )

Page 16: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Explicit vs Implicit

Disk

SSD Disk

NVMe Disk

DRAM

L3$

L1$

L2$

S

p

e

e

d

Explicit:CPU bounded

Implicit:CPU bounded

Memory bounded

IO bounded

Capacities

Page 17: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Numerical consistency

SMP

ncpu= - # (~10% slower)

To give identical results while changing threads

MPP - keep same number of MPP ranks

lstc_reduce (~2% slower)

To give identical results while changing CPU cores

rcblog

To preserve the domain lines to reduce the noise from

changing meshes

HYBRID = SMP + MPP

Page 18: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Multi-core/Multi-socket clusters

Explicit MPP/Hybrid Performance

NCAC model

2.5M elements, 53 contacts, type 16 shell

35 mph frontal

100 ms

Page 19: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Multi-core/Multi-socket clusters

Explicit MPP/Hybrid Performance

Nodes to monitor

Page 20: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Varying SMP threads but

fixed decomposition

Explicit MPP/Hybrid Performance

Tomp

Tmpp~Tmpp+Tomp

Page 21: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Explicit MPP/Hybrid Consistency

Page 22: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Explicit MPP/Hybrid Consistency

Page 23: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Model CYL0P5E6 – Intel 6core 2.95 GHz

Implicit Hybrid Performance

Node x MPI x OMP N=2 N=4 N=8 N=16

Nx1x1 5074 2761 1500 850

Nx1x4 1564 918 571 373

Nx1x6 1209 720 465 318

Page 24: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Performance on Linux AMD64 systems

No. of cores

(node x socket x core)

WCT of Factor

Matrix

(seconds)

WCT for job to

complete

(seconds)

16 x 4 x 1 2055 14417

16 x 4 x 2 985 13290

16 x 4 x 4 582 29135

16 x 4 x 4omp (Hybrid) 960 9887

Implicit MPP/Hybrid Performance

Telapse=Tcpu+Tsys +Tmpp +Tomp

Page 25: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Dynapower 2cars models (Dr. Makino)

6 contacts, type 16 shell, 8 M/16M

35 mph frontal

20 ms

Hybrid Performance vs Model Size

Page 26: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Ls-dyna R9.1 SVN:117280, 240 cores/job

0

5000

10000

15000

20000

25000

1 2 3 4 5 6 7

Others

Contact

Element

Ela

pse

d t

ime

(Sec

on

ds)

8 M

16 M

Explicit Hybrid Performance vs Model Size

2 threads

Tmpp > Tmpp+Tomp

Page 27: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

How to choose your executable

Explicit analysis

• SMP - 1-2 cores

• MPP - 2-100 cores

• HYBRID

– More than 100 cores

– Run under different core counts but need consistent answers

Implicit analysis

• HYBRID

– Keep as much data in memory for incore solution

– Reduce IO bottleneck

– Reduce amount of data transferring in the network

Page 28: What is HYBRID and Why? - Oasys software | Oasys · Shared memory SMP (Shared Memory Parallel) Start and base from serial code ... Model (car2car model): 2,500,000+ nodes and elements

Summary

For better prediction and to reduce cost of prototyping

• Models involve coupled multi physics, HAZ, CPM airbag, etc.

• Mesh becomes finer and critical parts are using solids

• More sophisticated contact (mortar) for better behavior

• Gives better scaling for explicit analysis with more then 100

cores

• Gives better performance in most of the implicit analysis

• Hybrid has already used in production (stable)

• More capabilities will become OpenMP enabled to get better

speedup

Thank you !