+ All Categories
Home > Documents > back the point of diminishing returns for parallel performance · Challenges impacting exascale...

back the point of diminishing returns for parallel performance · Challenges impacting exascale...

Date post: 19-Aug-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
13
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear Security Administration under contract DE-AC04-94AL85000. Pushing back the point of diminishing returns for parallel performance Workshop on Exascale Programming Challenges July 27 – 29 USC/ISI Marina del Rey, CA Curtis Janssen, Sandia National Laboratories [email protected]
Transcript
Page 1: back the point of diminishing returns for parallel performance · Challenges impacting exascale application performance Schroeder and Gibson, Journal of Physics: Conference Series,

Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company,

for the United States Department of Energy’s National Nuclear Security Administration under contract DE-AC04-94AL85000.

Pushing back the point of diminishing returns for parallel performance

Workshop on Exascale Programming Challenges July 27 – 29

USC/ISI Marina del Rey, CA

Curtis Janssen, Sandia National Laboratories

[email protected]

Page 2: back the point of diminishing returns for parallel performance · Challenges impacting exascale application performance Schroeder and Gibson, Journal of Physics: Conference Series,

Challenges impacting exascale application performance

Schroeder and Gibson, Journal of Physics: Conference Series, 78 (2007) 012022, SciDAC 2007 Proceedings.

Generated using David A. Wheeler's 'SLOCCount'

Page 3: back the point of diminishing returns for parallel performance · Challenges impacting exascale application performance Schroeder and Gibson, Journal of Physics: Conference Series,

Example application: Hartree-Fock theory  Approximate solution to Schrödinger's equation

 Electron interact with average of other electrons, giving rise to a generalized eigenvalue problem  Major steps (assuming spin restricted closed shell):

– Integral computation:

– Fock matrix formation:

– Diagonalization:

– Density computation:

H = 12

∇i2

i

n

∑ − qaria

+ 1rij+ qaqb

raba<b

N

∑i< j

n

∑a

N

∑i

n

Fpq = Hpq + Prs vpqrs +12vprqs

⎛⎝⎜

⎞⎠⎟

Ppq = 2 CpaCqaa

N /2

FC = SCe CSCT = 1

Spq = χ p (r)χq (r)dr∫

Gpqrs = χ p (r1)χq (r1)1r12

χ r (r2 )χ s (r2 )dr1 dr2∫

Hpq = χ p (r) ∇2 − qarAa

N

∑⎛⎝⎜

⎞⎠⎟χq (r)dr∫

Page 4: back the point of diminishing returns for parallel performance · Challenges impacting exascale application performance Schroeder and Gibson, Journal of Physics: Conference Series,

Unteasing concurrency from applications FFoorrmm tthhee aattoommiicc oorrbbiittaall FFoocckk,, FF,, aanndd oovveerrllaapp,, SS SSyynncchhrroonniizzee ssoo tthhaatt FF iiss ccoommpplleettee oonn aallll nnooddeess BBeeggiinn iitteerraattiivvee eeiiggeennssoollvveerr FFoorr eeaacchh sseett ooff iinnddeeppeennddeenntt sshheellll ppaaiirrss CCoommppuuttee tthhee rroottaattiioonn mmaattrriixx SSyynncchhrroonniizzee ssoo rroottaattiioonn mmaattrriixx iiss ccoommpplleettee RRoottaattee FF aanndd SS SSyynncchhrroonniizzee ssoo tthhaatt FF aanndd SS aarree ccoommpplleettee EEnndd lloooopp oovveerr iinnddeeppeennddeenntt sshheellll ppaaiirrss EEnndd eeiiggeennssoollvveerr iitteerraattiioonnss

Traditional imperative formulation

graph

Elementary operations

Simulated timings

Page 5: back the point of diminishing returns for parallel performance · Challenges impacting exascale application performance Schroeder and Gibson, Journal of Physics: Conference Series,

Comparison of data dependencies�with and without synchronization

With synchronization: Without synchronization:

Synchronization increases the number of data dependencies. Thus, the overall potential for parallelization is reduced by synchronizing

operations such as barriers and collectives.

Page 6: back the point of diminishing returns for parallel performance · Challenges impacting exascale application performance Schroeder and Gibson, Journal of Physics: Conference Series,

Hierarchical decomposition needed for�locality and scalabilty

  Hierarchical in terms of operations   Eigenvectors constructed from Fock matrix

constructed from integrals   Hierarchical in terms of data

  Large blocks containing small blocks, etc.   Map data hierarchy to memory hierarchy   CCSD example:

Contract

Contract

Contract Contract

Contract Contract

Contract

Contract

t2(0,0,0,1)

SumSum Sum

Contract Contract

Sum

Contract

t2(0,0,1,0)

Sum Sum

ContractContract

Contract

Contract Contract

Contract Contr

Sum

Contract

f_vo(0,0)

Contract Contract Contract

t1(0,0)

Contract ContractContract Contract ContractContractContractContractContractContract

Contract Contrac

Contract

Contract

Contract Contract Contract ContractContract ContractContract Contract ContractContract Contract Contract Contract

Contract

Contract

Contract

Contract

f_vo(1,0)

Contract

t1(0,1)

Contract Contract Contract Contract

Contract

Contract ContractContract ContractContract ContractContract Contract

Contract

v_vvvv(0,0,0,1)

Sum

v_vvvv(0,1,0,1)

Sum

h_vv(0,1)

Sum

v_vvvv(0,0,1,0)

Sum

v_vvvv(0,1,1,0)

Sum

h_vv(1,0)

Sum

v_vvvv(1,0,0,1)

Sum

v_vvvv(1,1,0,1)

Sum

h_vv(1,1)

Sum

v_vvvv(1,0,1,0)

Sum

v_vvvv(1,1,1,0)

Sum

h_oo(0,0)

Sum

v_oooo(0,0,0,0)

Sum SumSum

v_oovv(0,0,0,0)

Sum

Contract Contract

Sum

Contract

Sum

ContractContract

v_oovv(0,0,0,1)

Contract

Sum

Sum

Sum

Sum

Contract

v_oovv(0,0,1,0)

Contract

Sum

Sum

Contract

v_oovv(0,0,1,1)

Sum

Sum

Sum

v_ooov(0,0,0,0)

Sum

Sum

v_ooov(0,0,0,1)

Sum

Sum

v_ovvv(0,0,0,1)

Sum

Sum

v_ovvv(0,0,1,1)

Sum

v_ovvv(0,1,0,0)

Sum Sum

v_ovvv(0,1,1,0)

Sum

r2(0,0,0,0)

r2_10(0,0,0,0)

k(0,0,0,0)

T(0,0,0,0) T(0,0,1,0)

t1t1(0,0,1,0)

Sum

k(0,1,0,0)

k_2(0,1,0,0)3(0,1,0,0) k_4(0,1,0,0)

Sum Contract

r2_2(0,0,0,0)

a(0,0,0,0)

a_3a_4(0,0,0,0)

tau(0,0,0,0)

ContractContract

tau(0,0,0,1)

t1t1(0,0,0,1)

Contract

tau(0,0,1,0)

Contract

tau(0,0,1,1)

Contract

b_2(1,1,0,0)

r2_4(0,0,0,0)

g_vv(1,0)

g_vv_2(1,0) g_vv_3(1,0)

vv_vvvo(1,0,0,0) vv_vvvo(1,1,0,0)

r2_5(0,0,0,0)

g_oo(0,0)

g_oo_2(0,0)

g_oo_3(0,0)

vv_ovoo(0,0

r2_7(0,0,0,0)

vvt_oovo(0,0,0,0)

vt_oovo(0,0,0,0)

Contract

r2_8(0,0,0,0)

jk(0,0,0,0)

j(0,0,0,0)

j_4(0,0,0,0) j_5(0,0,0,0)

vv_vvoo(0,0,0,0) vv_vvoo(0,1,0,0)

Contract

jk(0,1,0,0)

j(0,1,0,0)

j_2(0,1,0,0)

j_3(0,1,0,0) j_4(0,1,0,0) j_5(0,1,0,0)

vv_vvoo(1,0,0,0) vv_vvoo(1,1,0,0)

t2t2(0,0,0,0)

Contract

t2t2(0,0,1,0)r2_9(0,0,0,0)

r2(0,0,0,1)

r2_10(0,0,0,1)

k(0,0,0,1)

k_4(0,0,0,1)

T(0,0,0,1) T(0,0,1,1)

Sum

k(0,1,0,1)

Sum

r2_2(0,0,0,1)

r2_3(0,0,0,1)

b(0,0,0,1)

b_2(0,0,0,1)b_3(0,0,0,1)

b(0,1,0,1)

b_2(0,1,0,1) b_3(0,1,0,1)

b(1,0,0,1)

b_2(1,0,0,1)b_3(1,0,0,1)

b(1,1,0,1)

b_2(1,1,0,1)b_3(1,1,0,1)

r2_4(0,0,0,1) r2_5(0,0,0,1)

r2_6(0,0,0,1)

vt_ovvv(0,0,0,1)

r2_7(0,0,0,1)

r2_8(0,0,0,1)

t2t2(0,0,0,1)

Contract

t2t2(0,0,1,1)r2_9(0,0,0,1)

r2(0,0,1,0)

r2_10(0,0,1,0)

r2_2(0,0,1,0)r2_3(0,0,1,0)

b(0,0,1,0)

,0,1,0) b_3(0,0,1,0)

b(0,1,1,0)

b_2(0,1,1,0) b_3(0,1,1,0)

b(1,0,1,0)

b_2(1,0,1,0)b_3(1,0,1,0)

b(1,1,1,0)

b_2(1,1,1,0) b_3(1,1,1,0)

r2_4(0,0,1,0)

g_vv(0,1)

g_vv_3(0,1)

vv_vvvo(0,0,1,0) vv_vvvo(0,1,1,0)

g_vv(1,1)

g_vv_2(1,1)

g_vv_3(1,1)

r2_5(0,0,1,0)

r2_6(0,0,1,0)

vt_ovvv(0,1,1,0)

r2_7(0,0,1,0)

vvt_oovo(0,0,1,0)

vt_oovo(0,0,1,0)

r2_8(0,0,1,0)

jk(0,0,1,0)

j(0,0,1,0)

j_2(0,0,1,0)

j_3(0,0,1,0)

j_4(0,0,1,0) j_5(0,0,1,0)

jk(0,1,1,0)

j(0,1,1,0)

j_4(0,1,1,0)j_5(0,1,1,0)

r2_9(0,0,1,0)

r2(0,0,1,1)

r2_10(0,0,1,1)r2_2(0,0,1,1)

r2_4(0,0,1,1)

r2_5(0,0,1,1)

r2_7(0,0,1,1)

r2_8(0,0,1,1)

r2_9(0,0,1

Expand in terms of tensor subblocks

Page 7: back the point of diminishing returns for parallel performance · Challenges impacting exascale application performance Schroeder and Gibson, Journal of Physics: Conference Series,

Be careful for what you ask …

Am I asking for a monolithic runtime system?  No – this is the problem with MPI. Need a lightweight, portable, and low-level

primitives.  Varying levels of sophistication can be built upon this low-lying interface.

Am I asking for new languages?  Yes and no – general purpose languages spoken and developed by a wide community will always play a role. Libraries, DSLs (to generate the underlying code), and embedded DSLs (to supplement the underlying language) will be essential to hide machine complexity.

Introduction of DSL for two electron integrals (code too for

compilers of the era was subsequently removed)

Introduction of DSL for many-body terms

Page 8: back the point of diminishing returns for parallel performance · Challenges impacting exascale application performance Schroeder and Gibson, Journal of Physics: Conference Series,

Supplemental Slides

Page 9: back the point of diminishing returns for parallel performance · Challenges impacting exascale application performance Schroeder and Gibson, Journal of Physics: Conference Series,

Motivation: complexity of parallel machines is accelerating, but tools to manage this are not

 Several complexity issues affect apps: – Extreme parallelism – More computation power enables more

– More complex software – Numerical issues

– Dropping mean time between failure – Energy enters optimization objective function

 Human effort does not scale easily to such a complex environment – Can another approach to programming solve some of these problems?

 Outline of current work: – Hartree-Fock theory selected due to its expense and scaling issues

  Basis for many other electronic structure methods –  Examine traditional implementation of Hartree-Fock theory –  Show preliminary results of applying an alternative programming approach to

Hartree-Fock and compare this to traditional implementations.

Improvements to chip performance over the

Page 10: back the point of diminishing returns for parallel performance · Challenges impacting exascale application performance Schroeder and Gibson, Journal of Physics: Conference Series,

Illustration of numerical issues using�Hartree-Fock theory as an example

Large systems are ill-conditioned: smallest overlap eigenvalue for linear alkane rapidly decrease as system grows for diffuse basis sets

Eliminating near linear dependencies

can change energies—even in the limit of an exact linear dep.

Errors due to keeping the nearly linear

dep. functions grow like s1-3, and we

need the difference between large numbers:

Page 11: back the point of diminishing returns for parallel performance · Challenges impacting exascale application performance Schroeder and Gibson, Journal of Physics: Conference Series,

Elementary operations for Hartree-Fock�in terms of data dependencies

Two electron integrals formation, G: Output: (ij|kl) for a shell quartet

Fock matrix formation, F: Input: Two electron integrals and density matrix Output: Fock matrix elements for a shell pair

Jacobi transform formation, J: Input: Fock and overlap matrix elements Output: Rotation matrix diagonalizing the sub-block

Matrix transformation, R: Input: Fock or overlap matrix elements and Jacobi transform Output: Transformed matrix elements

Note: output has a sequence number that ensures rotations are done in the correct order. Both J and R must be aware of sequence number

Page 12: back the point of diminishing returns for parallel performance · Challenges impacting exascale application performance Schroeder and Gibson, Journal of Physics: Conference Series,

Hartree-Fock data dependencies

 Computes the diagonal blocks of the Fock matrix after a single Jacobi sweep for a three shell system.  Certain input data has been omitted to simplify the graph.  Operations on the same row (ovals) can be computed in parallel  Some parallelism can be exploited among operation on different rows

Page 13: back the point of diminishing returns for parallel performance · Challenges impacting exascale application performance Schroeder and Gibson, Journal of Physics: Conference Series,

Simulated timings for 16 shells on 8 processors


Recommended