a solver that learns - cray user group · a solver that learns a solver that learns tom elken...

27
A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group Conference Minneapolis, Minnesota

Upload: others

Post on 11-Mar-2020

29 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

A Solver That LearnsA Solver That Learns

Tom ElkenMember of Technical Staff: Math Libraries

Silicon Graphics, Inc.

41st Cray User Group

Conference

Minneapolis, Minnesota

Page 2: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

2

OverviewOverview

¥ Sparse linear solvers at SGI

¥ Matrix ordering options

¥ New ordering options

¥ Performance results

¥ Other Enhancements to Sparse Solver

¥ Ideas for the Future

¥ (much of this was joint work with Cheng Liao, SGI)

Page 3: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

3

Sparse linear solvers at SGI

SCSL / complib

¥ PSLDLT: symmetric

¥ PSLDU: structurally symmetric

On DeveloperÕs Toolbox:

¥ sparse iterative solver

LIBSCI (PVP)

¥ iterative, symmetric, structurally symmetricand general solvers

Page 4: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

4

Sparse linear solvers at SGI

¥ Introduced ~1995

¥ First offered to ISVs as static libraries toenhance applications

¥ Sometimes offered 5-10x advantage

¥ Added to complib and then SCSL

¥ Now, public domain versions exist & they are anindustry standard

¥ Need to keep enhancing them

Page 5: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

5

What is sparse-matrix ordering?

¥ In solving Mx=b, first factor M into LDLT.Lij entries can become non-zero when Mij are zero.

¥ Solve by solving Lz=b; Dy=z; LTx=y .

¥ Fill (non-zeroes) can be up to 50X in L compared to M.

¥ Factoring a permuted matrix PMPT can dramaticallyreduce the work to factorize M. A permutation is a re-ordering.

Page 6: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

6

PSLDLT/PSLDU ordering options

0. No re-ordering

1. Approximate Minimum Fill (AMF)

¥ fairly fast ordering, moderate quality

2. Nested Dissection Hybrid

¥ Ed Rothberg & Bruce Hendrickson originalauthors

¥ AKA: Extreme ordering or BEND

¥ more ordering time, better quality

Page 7: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

7

Algorithmic ideas

¥ Finding the best ordering of rows is an NP-complete(very difficult) problem

¥ Currently, matrix ordering is a serial computation

¥ Very different quality of orders can be producedusing different Òstarting pointsÓ

¥ ==> Do more orders using embarrassing parallelism& use the best

¥ Internally referred to as Extreme2 ordering

Page 8: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

8

New ordering options

3. Multiple Nested Dissection orders

¥ default is OMP_NUM_THREADS orders

¥ repeatable quality

4. Multiple ND orders using feedback file

information

¥ default is 2 x OMP_NUM_THREADS orders

¥ file is at most 5KB, up to 200 records

¥ feedback file is binary

¥ A solver that learns

Page 9: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

9

Other Changes to SGI Sparse Solvers

¥ New default for ordering optionÐ Extreme ordering (Method 2) is now the default

¥ Out-of-core solver optionÐ Was in recent SCSL version, but now is documentedÐ Single-processor onlyÐ Striped file system usefulÐ Simple interface and performs well

Page 10: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

10

Choosing a default method

¥ Should default be best forwhich size model?

¥ Decided to optimize formedium or largerproblems (at least 5000equations)

¥ Extreme2 (3) about 3%faster than Extreme, but isnew tech., so we useMethod 2 as the newdefault.

0

500

1000

1500

2000

2500

3000

3500

1 2 3 4

Ordering Method

Total Time for Nine models

Page 11: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

11

Out-of-core (OOC) Option

¥ Performance 15% slowerhere than extreme(Method 2) ordering in-core...

¥ but faster than AMF (1)

¥ This used 4-way striping onfile system -- 140 MB/s onsome reads

¥ Allowed 128MB in-core forfactor storage

0200400600800

10001200140016001800

1 2 3 4 OOCOrdering Method / Factor

Storage

Total Time for Nine models(1-CPU runs)

Page 12: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

12

New Sparse SolverEnvironment Variables

¥ SPARSE_NUM_ORDERS can be used to change the number of

orderings performed from the default of

2*OMP_NUM_THREADS; Examples:

Ð Ôsetenv SPARSE_NUM_ORDERS 100Õ to get a best-case orderinginformation into the feedback file

Ð Ôsetenv SPARSE_NUM_ORDERS 1Õ when you have run a numberof matrix orderings already (with method=4)

¥ SPARSE_FEEDBACK_FILE can be set to the path and filename where the feedback information will be kept. The

default feedback file used otherwise is

$HOME/.sparseFeedback.

Page 13: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

13

Comparison of ordering methods

¥ Structural model with ~36K degrees of freedom

¥ Shows extra ordering time for new options

¥ Time reflects 1 preprocess, 4 factorizations & 2 solves

¥ Ò4 with historyÓ ==> Ôsetenv SPARSE_NUM_ORDERS 1Õ since

already have good info in SPARSE_FEEDBACK_FILE

Matrix BCSSTK01 nnzAA':1906964, n:35991 R10K/250Total time

CPUs 1 2 3 4 4 w/ hist 4h v. 21 71 60 50.1 47.7 45.7 1.312 44.6 34.5 29 28.9 28.9 1.194 26.8 23.8 22.3 21.2 19.7 1.21

Ordering timeCPUs 1 2 3 4 4 w/ hist

1 1.4 1.5 1.9 2.8 1.92 1.5 1.6 2.2 3 1.94 1.4 1.7 3.2 3.9 2.4

Orderingmethod

Page 14: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

14

Using the learning

¥ After doing a 4, 2 and 1thread solves (history of 14orderings), repeat usingÔsetenvSPARSE_NUM_ORDERS 1Õ

¥ Small advantage on these 9matrices, more resultsshown soon.

0

500

1000

1500

2000

2500

3000

3500

1 2 3 4

4/hi

st.

Ordering Method

Total Time for Nine models(1, 2 & 4 CPU runs)

Page 15: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

15

Performance Results

Overview

¥ Applications already integrating new solver:Ð AbaqusÐ CPLEX

¥ PSLDLT performanceÐ Case studyÐ Large / dense model scalability

¥ Comparison to a public domain solver --

SPOOLES

Page 16: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

16

ABAQUS: first to use

Uses a default of 36 orderings

¥ Can be changed (BEST_HIGH env var)

¥ Best seed can be output by settingDUMP_EXTREME_INFO

¥ Seed can be input by SEED env var

ABAQUS a good use of this technology

¥ one ordering is used hundreds of times

Page 17: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

17

ABAQUS Performance

¥ 12 of 28

benchmarks

shown here

¥ Extreme2 shows:

18%

improvementover extreme;

10%

improvement

over METIS(public domain

S/W)

0.00

0.20

0.40

0.60

0.80

1.00

1.20

1.40

1.60

1.80

2.00

benc

h_3d

_160

bm

14

lgast

lgmst

nas1

na

s2

nas3

p2

g8t43

Wa2

2_sm

60S

benc

h_2d

ro

adsh

k sh

ellcu

be

fact

ori

zati

on

sp

eed

up

vs. metisvs extreme

Page 18: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

18

Performance Results:as a CPLEX add-on

0.00 0.50 1.00 1.50 2.00 2.50

gismondi

23-Dec

dfl001

dx2219

pds-20

a15pre

sps83

swest

t20.6k

riad0

cypress

CPLEX 6.X / CPLEX6.5_SGIextreme2

6.0

6.5

¥ ILOG provides

ordering ÔhookÕ so

customer can link SGIextreme2 matrix

ordering w/ CPLEX 6.5.

¥ Speedups vary fromnothing to ~2x.

Average 16% over

default 6.5 on this set

of (mostly high fill-in)models -- 25% over

CPLEX 6.0

¥Uses a ÔhistoryÕ of 50

orderings.

Page 19: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

19

PSLDLT: Scalability to 8 CPUs

¥ Measured: Elapsed time

for 1 preprocess, 2

factorizations, 2 solves.

¥ # f.p. ops to factor &

preprocess time :

Ð Gflop secs.Ð fleet10 383 27Ð gismondi 133 3Ð th2 34 18Ð 280Kdof 18 15

0

1

2

3

4

5

6

7

0 2 4 6 8 10

# of CPUs

Sp

eed

up

fleet10

gismondi

th2

280Kdof

Page 20: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

20

Scalability: Factorization Mflops

¥ AmdahlÕs law resp. for

much of lack of scaling

in previous chart

¥ Over 11 Gflops

achieved on gismondi

on 48 CPUs

¥ More can be done to

improve memory

placement

¥ These results used

DSM_ROUND_ROBIN data

placement 0

500

1000

1500

2000

2500

3000

3500

0 5 10

# of CPUs

Fac

tori

zati

on

Mfl

op

s

gismondi

fleet10

th2

280Kdof

Page 21: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

21

PSLDLT Perf. Results

0 0.5 1 1.5 2

BCSSTK01

dx2219

copter

dfl001

CRYSTK03

GISMONDI

Speedups of Method 4 vs. 2

4 CPUs

2

1Extreme2 with

feedback (method 4)

vs. old extreme

speedups

Speedups can vary

by #CPUs based on

how super-nodes

split into panels

Page 22: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

22

A Public Domain Alternative

SPOOLES Library: Sparse Object-Oriented LinearEquation Solver

¥ As Object-Oriented as C allows

¥ Solves Real/Complex, Symmetric/Non-symm.

¥ With or without pivoting for stability

¥ Serial or Parallel (Pthreads or MPI)

Comes with various example programs -- the following

results are from the LinSol MT wrapper object and driver

Page 23: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

23

Factorization comparison

36Kdo

f-136

Kdof-4

3DTU

BE-13D

TUBE-4

A15-1

A15-4

SPOOLESPSLDLT0

500

1000

1500

2000

Factorization Mflops

¥ PSLDLT faster on 1-CPU

and better scalability

Ð (in chart,-1 ==> 1 CPU-4 ==> 4 CPUs )

¥ A15 has a few large,

dense supernodes -PSLDLT has been

designed to handle

¥ Not a fair comparison:

Ð PSLDLT has kernels (in C)hand-optimized forMIPS CPUs & largecaches;

Ð SPOOLES is moregeneral; has pivotingoption

Page 24: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

24

Triangular Solve Comparison

¥ SPOOLES abouttwice as fast on thesolve after thefactorization

¥ Solve time is small% of total:Ð 1.5% (SPOOLES)Ð 5% (PSLDLT)

¥ We have some

work to do0 1 2 3

3DTUBE-4

3DTUBE-2

3DTUBE-1

36Kdof-4

36Kdof-2

36Kdof-1

elapsed seconds

PSLDLTSPOOLES

Page 25: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

25

Preprocessing comparison

¥ Time: PSLDLT -Method 3 - does 1 ordering per thread & is

generally faster; SPOOLES/LinSol uses 2 methods in serial

¥ Quality: PSLDLT (3) generally fewer factorization ops and

can improve with more threads

SPOOLES PSLDLT SPOOLES PSLDLT Matrix CPUs

36Kdof 1 2.61 1.40 3.60 3.96 2 2.61 1.60 3.60 3.96 4 2.67 2.15 3.60 3.73

3DTUBE 1 6.95 3.18 13.60 12.10 2 6.96 3.64 13.60 12.10 4 6.95 4.33 13.60 12.00

TH2 1 47.52 12.41 38.90 35.80 2 45.14 14.25 38.90 33.80 4 47.41 17.08 38.90 30.50

elapsed seconds factor ops (billions)

Page 26: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

26

Summary

¥ New default ordering option: Extreme (bigspeedups for larger/denser models)

¥ New matrix ordering option: Extreme2Ð Primarily useful when many factorizations will be done

on one non-zero structure

¥ Out-of-core capabilities available (single-

processor)

Page 27: A Solver That Learns - Cray User Group · A Solver That Learns A Solver That Learns Tom Elken Member of Technical Staff: Math Libraries Silicon Graphics, Inc. 41st Cray User Group

27

Possible futures for sparse solvers

¥ Tuning & algorithm improvements:Ð ordering and factorization scalabilityÐ triangular solve performance

¥ General sparse solver with pivoting?

¥ Port to IA-64 & IA-32? Linux or NT?

¥ Hybrid direct / iterative methods