Overreaching with Outreach: Is HPC in Reach? Maggie Myers Robert - - PowerPoint PPT Presentation

overreaching with outreach is hpc in reach
SMART_READER_LITE
LIVE PREVIEW

Overreaching with Outreach: Is HPC in Reach? Maggie Myers Robert - - PowerPoint PPT Presentation

Overreaching with Outreach: Is HPC in Reach? Maggie Myers Robert van de Geijn Are we crazy? Three Massive Open Online Courses: Linear Algebra: FoundaEons to FronEers LAFF-On Programming for Correctness (LAFF-On) Programming for HPC


slide-1
SLIDE 1

Overreaching with Outreach: Is HPC in Reach?

Maggie Myers Robert van de Geijn

slide-2
SLIDE 2

Are we crazy?

Three Massive Open Online Courses:

  • Linear Algebra: FoundaEons to FronEers
  • LAFF-On Programming for Correctness
  • (LAFF-On) Programming for HPC

EducaEng the world about our world.

slide-3
SLIDE 3

Insights for HPC we want to share

  • When presenEng algorithms, abstract away from

details.

  • When represenEng algorithms in code, use APIs.
  • When opEmizing or parallelizing, don’t just start

with legacy code. Derive families of algorithms.

  • When implemenEng soQware, layer.
  • When sharing gained insights use the simplest

examples.

slide-4
SLIDE 4

Where are we in our journey?

  • LAFF

– Sixth offering on edX.

  • LAFF-On Programming for Correctness

– First offered Spring 2017

  • Programming for HPC

– Planning

slide-5
SLIDE 5

What is LAFF?

  • Linear Algebra: FoundaEons to FronEers (LAFF)
  • A full semester class
  • Connects the abstracEons in mathemaEcs with

algorithms and their instanEaEon in code.

– Layering of matrix-matrix/matrix-vector/vector-vector

  • peraEons linked to layering with BLAS.
  • Targets novices and those who want a refresher.
  • Enriches fundamental linear algebra with HPC issues.
  • Introduces FLAME notaEon and, in enrichments,

acquaints the world with our research.

slide-6
SLIDE 6

Linear Algebra: Linear Algebra: Foundations to Fr Foundations to Frontiers

  • ntiers

Slice and Dice

² Recognize, apply, verify, and make connecEons between properEes of vectors and their operaEons including geometric interpretaEons, orthogonality, length, vector algebra, and representaEons as linear combinaEons of unit basis vector. ² Develop and evaluate algorithms for matrix and vector operaEons. ² Make use of decomposiEon and blocking methods as well as recognize, develop and apply special characterisEcs of matrices including whether a matrix is triangular, symmetric, diagonal, and inverEble.

Transform and Solve

² Recognize, apply, and verify properEes of linear transformaEons, including their connecEon to matrices and systems

  • f linear equaEons.

² Determine soluEons for systems of equaEons by applying a variety of methods including Gaussian eliminaEon as well as various LU and QR factorizaEon methods, and compare and contrast the different approaches. ² Find eigenvalues and eigenvectors

  • f a matrix.

Abstract

² Develop and evaluate a variety of algorithms for determining the soluEons of systems. ² Understand and apply noEons such as span, column space, null space, rank, and linear independence in the context of vector spaces and subspaces. ² Recognize, develop, and apply various characterizaEons of linear independence. ² Create a small library of basic linear algebra subrouEnes.

You will learn to

slide-7
SLIDE 7

How’s it goin’?

  • Heartbeat

Spring 2014 Spring 2015 Summer 2015 Fall 2016 Spring 2016 Fall 2017

slide-8
SLIDE 8

How’s it goin’?

Fall 2016 Spring 2016 Fall 2017

slide-9
SLIDE 9

LAFF-On Programming for Correctness

  • For many HPC applicaEons, including dense matrix

computaEons, implementaEons of key operaEons are loop-based.

  • Classic techniques developed in the 1960s by Dijkstra

et al. use a loop invariant and the Principle of MathemaEcal InducEon to prove a loop correct.

  • FLAME NotaEon hides indices and facilitates formal

derivaEon of families of algorithms.

  • A priori determinaEon of loop invariants.
  • Important for HPC: best algorithm for situaEon can be

chosen.

slide-10
SLIDE 10

Annotate programs with asserEons about the states of variables. Prove programs correct with Hoare triples and weakest precondiEons. Apply goal oriented programming techniques to derive programs hand-in-hand with their proofs of correctness Avoid indexing errors by avoiding indexing. Determine loop invariants a priori. Develop families of algorithms for matrix and vector operaEons.

LAFF-On Programming for Correctness

slide-11
SLIDE 11

How’s it goin’?

First offering First six weeks On campus course

slide-12
SLIDE 12

The beat goes on…

And now (LAFF-On) Programming for HPC

  • Illustrate issues in HPC with simple example:

matrix-matrix mulEplicaEon (gemm)

slide-13
SLIDE 13

Envision three parts:

  • OpEmizing gemm (for single core and

mulEcore)

  • Data movement on distributed memory

architectures (MPI and collecEve communicaEon)

  • Parallelizing gemm to distributed memory
slide-14
SLIDE 14

Resources

  • K. Goto and R. van de Geijn. Anatomy of High-Performance Matrix
  • Mul7plica7on. ACM TOMS, 2008.
  • F. Van Zee and R. van de Geijn. BLIS: A Framework for Rapidly

Instan7a7ng BLAS Func7onality. ACM TOMS, 2015.

  • T. Smith et al. Anatomy of High-Performance Many-Threaded Matrix
  • Mul7plica7on. IPDPS 2014.
  • J. Huang et al. Strassen's Algorithm Reloaded. SC'16
  • hlps://github.com/flame/how-to-opEmize-gemm/wiki
  • hlps://github.com/flame/blislab
  • E. Chan et al. Collec7ve communica7on: theory, prac7ce, and
  • experience. C&C:P&E, 2007.
  • M. Schatz et al. Parallel Matrix Mul7plica7on: A Systema7c Journey.

SISC, 2016.

slide-15
SLIDE 15

Challenges

  • Funding
  • Access to interesEng architectures
  • Keeping our sanity
slide-16
SLIDE 16

Summary

  • MOOCs are a way for us to reach a broad

audience.

  • Benefits?

– Open source, open plaporm, open educaEon,

  • pen HPC?

– Crowd source opEmizing DLA? – Demonstrate broad impact to funders!

  • Can they democraEze HPC?
slide-17
SLIDE 17

Are we Crazy?

slide-18
SLIDE 18

Acknowledgments

Linear Algebra: FoundaEons to FronEers

  • ParEally funded by

– First NSF SSI grant – University of Texas System

LAFF-On Programming for Correctness

  • ParEally funded by

– Second NSF SSI grant – A giQ from Mathworks – Profit sharing with edX

(LAFF-On) Programming for HPC

  • ParEally funded by

– NSF grant on Strassen’s algorithm – …