Unleashing dynamic task scheduling at rack-scale Magnus Norgren, - - PowerPoint PPT Presentation

unleashing dynamic task scheduling at rack scale
SMART_READER_LITE
LIVE PREVIEW

Unleashing dynamic task scheduling at rack-scale Magnus Norgren, - - PowerPoint PPT Presentation

Unleashing dynamic task scheduling at rack-scale Magnus Norgren, Andra Hugo (DDN Storage), Stefanos Kaxiras, Konstan9nos Sagonas Uppsala University Task based programming on distributed shared


slide-1
SLIDE 1

Uppsala University

Unleashing dynamic task scheduling at rack-scale

Magnus ¡Norgren, ¡ Andra ¡Hugo ¡(DDN ¡Storage), ¡ Stefanos ¡Kaxiras, ¡Konstan9nos ¡Sagonas ¡ ¡

slide-2
SLIDE 2

Information Technology ¡ | it.uu.se

Task based programming on distributed shared memory

  • Can ¡we ¡scale ¡a ¡task ¡based ¡system ¡

at ¡cluster ¡scale? ¡

  • … ¡on ¡a ¡SoDware ¡DSM ¡?! ¡

à ¡Yes, ¡If ¡we ¡co-­‑design ¡scheduling ¡& ¡ caching ¡

¡ Early ¡results: ¡Running ¡tasks ¡on ¡ remote ¡memory ¡at ¡>90% ¡of ¡na9ve ¡ execu9on ¡on ¡local ¡memory ¡

CPU ¡ CPU ¡ CPU ¡ CPU ¡

Mem ¡ SW ¡cache ¡

High-­‑Speed ¡

  • Network. ¡

E.g. ¡Infiniband ¡

Mem ¡ Mem ¡ Mem ¡

slide-3
SLIDE 3

Information Technology ¡ | it.uu.se

Distributed Shared Memory

  • Coherent ¡Distributed ¡Shared ¡Memory ¡(DSM) ¡gives ¡us: ¡
  • Transparent ¡Caching ¡(takes ¡advantage ¡of ¡any ¡locality) ¡
  • Even ¡if ¡locality ¡is ¡Jny, ¡its ¡benefit ¡is ¡a ¡funcJon ¡of ¡latency! ¡
  • Avoids ¡hybrid ¡SM ¡(intranode)-­‑MP ¡(internode) ¡programming ¡
  • Freedom ¡from ¡data ¡distribuJon ¡
  • Demand ¡fetching, ¡prefetching ¡can ¡largely ¡hide ¡bad ¡distribuJon ¡ ¡
  • Natural ¡and ¡familiar ¡synchronizaJon ¡constructs ¡(locks) ¡
  • Extend ¡memory ¡beyond ¡one ¡node ¡
  • But ¡isn’t ¡this ¡quite ¡costly? ¡
  • Yes ¡– ¡Used ¡to ¡be, ¡but ¡Jmes ¡have ¡changed ¡
  • Latency ¡only ¡one ¡magnitude ¡worse ¡than ¡DRAM ¡
  • …And ¡bandwidth ¡is ¡on ¡par ¡with ¡DRAM ¡
slide-4
SLIDE 4

Information Technology ¡ | it.uu.se

Trends: Latency Memory vs. Network

10 ¡ 100 ¡ 1000 ¡ 10000 ¡ 100000 ¡ 1000000 ¡ 1992 ¡ 1997 ¡ 2002 ¡ 2007 ¡ 2012 ¡ 2017 ¡

Nanoseconds ¡ Year ¡

DRAM ¡Latency ¡(ns) ¡ Network ¡Latency ¡(ns) ¡

From ¡3 ¡magnitudes ¡to ¡1 ¡magnitude ¡ difference ¡ DRAM ¡Latency ¡(ns) ¡ Network ¡Latency ¡(ns) ¡

slide-5
SLIDE 5

Information Technology ¡ | it.uu.se

Trends: Bandwidth Memory vs. Network

10 ¡ 100 ¡ 1000 ¡ 10000 ¡ 100000 ¡ 1000000 ¡ 1992 ¡ 1997 ¡ 2002 ¡ 2007 ¡ 2012 ¡ 2017 ¡

Mbps ¡ Year ¡

DRAM ¡Bandwidth ¡(Mbps) ¡ Network ¡Bandwidth ¡(Mbps) ¡

Bandwidth ¡on ¡par ¡with ¡DRAM ¡ à ¡We ¡can ¡trade ¡bandwidth ¡for ¡ latency, ¡fetching ¡data ¡in ¡large ¡ granularity, ¡prefetching ¡etc. ¡ Network ¡Bandwidth ¡ DRAM ¡Bandwidth ¡

slide-6
SLIDE 6

Information Technology ¡ | it.uu.se

ARGO DSM (www.argodsm.com)

  • A ¡DSM ¡based ¡on ¡current ¡trends ¡[HPDC’15]: ¡
  • User-­‑space ¡implementaJon ¡
  • Page-­‑based ¡DSM ¡(uses ¡virtual ¡memory ¡faults ¡for ¡misses) ¡
  • MPI ¡is ¡the ¡“network ¡layer” ¡(but ¡only ¡need ¡RDMA) ¡
  • Runs ¡ ¡
  • Pthreads ¡– ¡Data ¡race ¡free ¡programs ¡ ¡
  • OpenMP ¡-­‑ ¡Manually ¡ported ¡(Minor ¡modificaJons) ¡
  • Compile ¡and ¡link ¡with ¡ArgoDSM ¡library ¡à ¡MPI ¡program ¡that ¡

implements ¡DSM ¡

¡

slide-7
SLIDE 7

Information Technology ¡ | it.uu.se

ARGO DSM (www.argodsm.com)

  • Under ¡the ¡hood ¡[HPDC’15] ¡
  • SC ¡for ¡DRF ¡(SequenJal ¡Consistency ¡for ¡Data ¡Race ¡Free) ¡
  • Full ¡relaxaJon ¡of ¡memory ¡ordering ¡between ¡synchronizaJon ¡ ¡
  • Builds ¡on ¡very ¡simple, ¡completely ¡distributed ¡coherence ¡

(VIPS) ¡[PACT’15, ¡ISCA’13] ¡

  • Queue ¡DelegaJon ¡Locking ¡primiJves ¡[IEEE ¡TPDS’18] ¡

¡

  • Take ¡decisions ¡locally ¡& ¡Trade ¡bandwidth ¡for ¡latency ¡
slide-8
SLIDE 8

Information Technology ¡ | it.uu.se

Benchmark scaling Pthread / OpenMP on ArgoDSM

5 10 15 20 25 30 100 200 300 400 500 600 6SeeduS

AUgo 2Sen03 U3C

500 1000 1500 2000 ThUeads 5 10 15 20 25 30 50 100 150 200 250 300 350 400 SSeeduS

Argo 3thread 03I

100 200 300 400 500 Threads 5 10 15 20 25 30 50 100 150 200 250 SSeeduS

Argo 3thread 03I

500 1000 1500 2000 Threads

Parsec ¡Blackscholes ¡ NAS ¡EP ¡ N-­‑body ¡

5 10 15 20 25 30 10 20 30 40 50 60 6SeeduS

AUgo 2Sen03 U3C

100 200 300 400 500 ThUeads

NAS ¡CG ¡

slide-9
SLIDE 9

Information Technology ¡ | it.uu.se

Benchmark scaling Pthread / OpenMP on ArgoDSM

5 10 15 20 25 30 100 200 300 400 500 600 6SeeduS

AUgo 2Sen03 U3C

500 1000 1500 2000 ThUeads 5 10 15 20 25 30 50 100 150 200 250 300 350 400 SSeeduS

Argo 3thread 03I

100 200 300 400 500 Threads 5 10 15 20 25 30 50 100 150 200 250 SSeeduS

Argo 3thread 03I

500 1000 1500 2000 Threads

Parsec ¡Blackscholes ¡ NAS ¡EP ¡ N-­‑body ¡

5 10 15 20 25 30 10 20 30 40 50 60 6SeeduS

AUgo 2Sen03 U3C

100 200 300 400 500 ThUeads

NAS ¡CG ¡

Parallel ¡Pthread/OpenMP ¡ programs ¡scaled ¡up ¡to ¡2000 ¡ threads ¡

  • ­‑ ¡

More ¡informaJon, ¡see ¡our ¡ HPDC’15 ¡paper ¡

slide-10
SLIDE 10

Information Technology ¡ | it.uu.se

Task based programming

  • Parallel ¡programming ¡model ¡
  • StarPU, ¡OmpSs, ¡OpenMP, ¡etc ¡
  • Express ¡parallelism ¡in ¡terms ¡of ¡task-­‑graphs ¡
  • Can ¡target ¡heterogeneous ¡systems ¡
  • Our ¡use ¡case ¡only ¡runs ¡on ¡CPUs ¡
  • High ¡performance ¡
  • Use ¡kernels ¡from ¡BLAS ¡libraries ¡
  • Challenge: ¡How ¡to ¡do ¡scheduling? ¡
  • Eager ¡
  • Data ¡aware ¡
  • Custom… ¡

Couple ¡with ¡ArgoDSM ¡ for ¡cluster ¡awareness! ¡

CPU ¡ CPU ¡ CPU ¡ CPU ¡

Mem ¡

High-­‑Speed ¡

  • Network. ¡

E.g. ¡Infiniband ¡

CPU ¡ CPU ¡ CPU ¡ CPU ¡

slide-11
SLIDE 11

Information Technology ¡ | it.uu.se

Task schedulers

Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Pop ¡ ¡ Eager ¡Scheduling ¡ ¡ Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Data ¡Aware ¡Scheduling ¡ ¡ Try ¡to ¡minimize ¡ Jme ¡ ¡ to ¡compleJon ¡ ¡ Takes ¡data ¡transfer ¡ into ¡ consideraJon ¡ ¡ = ¡Tasks ¡

slide-12
SLIDE 12

Information Technology ¡ | it.uu.se

Task schedulers

Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Pop ¡ ¡ Eager ¡Scheduling ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Data ¡Aware ¡Scheduling ¡ ¡ Try ¡to ¡minimize ¡ Jme ¡ ¡ to ¡compleJon ¡ ¡ Takes ¡data ¡transfer ¡ into ¡ consideraJon ¡ ¡ = ¡Tasks ¡

slide-13
SLIDE 13

Information Technology ¡ | it.uu.se

The perfect fit ArgoDSM+Tasks

  • Tasks ¡over ¡ArgoDSM ¡Co-­‑design ¡
  • ArgoDSM ¡can ¡
  • Handle ¡caching ¡of ¡remote ¡data ¡making ¡it ¡appear ¡as ¡local ¡

¡

CPU ¡ CPU ¡ CPU ¡ CPU ¡

Mem ¡

High-­‑Speed ¡

  • Network. ¡

E.g. ¡Infiniband ¡

CPU ¡ CPU ¡ CPU ¡ CPU ¡

Mem ¡

CPU ¡ CPU ¡ CPU ¡ CPU ¡ CPU ¡ CPU ¡ CPU ¡ CPU ¡

slide-14
SLIDE 14

Information Technology ¡ | it.uu.se

High-­‑Speed ¡

  • Network. ¡

E.g. ¡Infiniband ¡

The perfect fit ArgoDSM+Tasks

  • Tasks ¡over ¡ArgoDSM ¡Co-­‑design ¡
  • ArgoDSM ¡can ¡
  • Handle ¡caching ¡of ¡remote ¡data ¡making ¡it ¡appear ¡as ¡local ¡

¡

CPU ¡ CPU ¡ CPU ¡ CPU ¡

Mem ¡

CPU ¡ CPU ¡ CPU ¡ CPU ¡

Mem ¡ RDMA ¡

CPU ¡ CPU ¡ CPU ¡ CPU ¡ CPU ¡ CPU ¡ CPU ¡ CPU ¡

slide-15
SLIDE 15

Information Technology ¡ | it.uu.se

  • Tasks ¡over ¡ArgoDSM ¡Co-­‑design ¡
  • ArgoDSM ¡can ¡
  • Handle ¡caching ¡of ¡remote ¡data ¡making ¡it ¡appear ¡as ¡local ¡
  • Exploit ¡task ¡informaJon ¡
  • Prefetch ¡data ¡ahead ¡of ¡Jme ¡
  • Prevent ¡evicJon ¡of ¡useful ¡data ¡
  • StarPU: ¡performance ¡models ¡
  • è ¡ArgoDSM ¡(cluster) ¡locality! ¡

¡

¡

The perfect fit Cluster level DSM+Tasks

CPU ¡ CPU ¡ CPU ¡ CPU ¡

Mem ¡

CPU ¡ CPU ¡ CPU ¡ CPU ¡

High-­‑Speed ¡

  • Network. ¡

E.g. ¡Infiniband ¡

slide-16
SLIDE 16

Information Technology ¡ | it.uu.se

ArgoDSM aware scheduler

Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Pop ¡ ¡ Eager ¡Scheduling ¡ ¡ Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Data ¡Aware ¡Scheduling ¡ ¡ Try ¡to ¡minimize ¡ Jme ¡ ¡ to ¡compleJon ¡ ¡ Takes ¡data ¡ transfer ¡into ¡ consideraJon ¡ ¡ = ¡Tasks ¡

slide-17
SLIDE 17

Information Technology ¡ | it.uu.se

ArgoDSM aware scheduler

Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Pop ¡ ¡ Eager ¡Scheduling ¡ ¡ Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Data ¡Aware ¡Scheduling ¡ ¡ Try ¡to ¡minimize ¡ Jme ¡ ¡ to ¡compleJon ¡ ¡ Takes ¡data ¡ transfer ¡into ¡ consideraJon ¡ ¡ = ¡Tasks ¡ No ¡oppurtunity ¡ to ¡opJmize ¡ eager ¡ scheduling ¡for ¡ cluster ¡memory ¡ ¡

  • ­‑ ¡

Discarded ¡in ¡ favor ¡of ¡data ¡ aware ¡ scheduling ¡

slide-18
SLIDE 18

Information Technology ¡ | it.uu.se

ArgoDSM aware scheduler

Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Data ¡Aware ¡Scheduling ¡ ¡ Try ¡to ¡minimize ¡ Jme ¡ ¡ to ¡compleJon ¡ ¡ Takes ¡data ¡ transfer ¡into ¡ consideraJon ¡ ¡ = ¡Tasks ¡

slide-19
SLIDE 19

Information Technology ¡ | it.uu.se

ArgoDSM aware scheduler Data A Data Awar ware

slide-20
SLIDE 20

Information Technology ¡ | it.uu.se ¡ ¡ Different ¡cores/devices ¡in ¡the ¡same ¡node ¡

ArgoDSM aware scheduler Data A Data Awar ware

  • Can ¡we ¡do ¡something ¡clever? ¡

Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Data ¡Aware ¡Scheduling ¡ ¡ = ¡Tasks ¡

slide-21
SLIDE 21

Information Technology ¡ | it.uu.se ¡ ¡ Different ¡cores/devices ¡in ¡the ¡same ¡node ¡

ArgoDSM aware scheduler Data A Data Awar ware

  • Can ¡we ¡do ¡something ¡clever? ¡
  • Take ¡locality ¡into ¡account ¡

Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Data ¡Aware ¡Scheduling ¡ ¡ Tasks ¡Contain ¡Cached ¡Data ¡ à ¡No ¡network ¡overhead ¡ ¡ = ¡Tasks ¡ = ¡Cached ¡

slide-22
SLIDE 22

Information Technology ¡ | it.uu.se ¡ ¡ Different ¡cores/devices ¡in ¡the ¡same ¡node ¡

ArgoDSM aware scheduler Data A Data Awar ware

  • Can ¡we ¡do ¡something ¡clever? ¡
  • Take ¡locality ¡into ¡account ¡

Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Data ¡Aware ¡Scheduling ¡ ¡ Tasks ¡Contain ¡Cached ¡Data ¡ à ¡No ¡network ¡overhead ¡ ¡ = ¡Tasks ¡ = ¡Cached ¡

slide-23
SLIDE 23

Information Technology ¡ | it.uu.se ¡ ¡ Different ¡cores/devices ¡in ¡the ¡same ¡node ¡

ArgoDSM aware scheduler Data A Data Awar ware

  • Can ¡we ¡do ¡something ¡clever? ¡
  • Take ¡locality ¡into ¡account ¡

Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Data ¡Aware ¡Scheduling ¡ ¡ Tasks ¡Contain ¡Cached ¡Data ¡ à ¡No ¡network ¡overhead ¡ ¡ = ¡Tasks ¡ = ¡Cached ¡

slide-24
SLIDE 24

Information Technology ¡ | it.uu.se ¡ ¡ Different ¡cores/devices ¡in ¡the ¡same ¡node ¡

ArgoDSM aware scheduler Data A Data Awar ware

  • Can ¡we ¡do ¡something ¡clever? ¡
  • Take ¡locality ¡into ¡account ¡

Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Data ¡Aware ¡Scheduling ¡ ¡ Tasks ¡Contain ¡Cached ¡Data ¡ à ¡No ¡network ¡overhead ¡ ¡ = ¡Tasks ¡ = ¡Cached ¡ Beper ¡runJme ¡predicJon ¡ adapted ¡to ¡cluster ¡memory ¡ à ¡Higher ¡performance ¡

slide-25
SLIDE 25

Information Technology ¡ | it.uu.se

ArgoDSM aware scheduler Local First Local First

slide-26
SLIDE 26

Information Technology ¡ | it.uu.se ¡ ¡ Different ¡cores/devices ¡in ¡the ¡same ¡node ¡

ArgoDSM aware scheduler Local First Local First

  • Can ¡we ¡do ¡something ¡clever? ¡
  • Take ¡locality ¡into ¡account ¡
  • Schedule ¡cached ¡tasks ¡earlier ¡

Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Data ¡Aware ¡Scheduling ¡ ¡ = ¡Tasks ¡ = ¡Cached ¡

slide-27
SLIDE 27

Information Technology ¡ | it.uu.se ¡ ¡ Different ¡cores/devices ¡in ¡the ¡same ¡node ¡

ArgoDSM aware scheduler Local First Local First

  • Can ¡we ¡do ¡something ¡clever? ¡
  • Take ¡locality ¡into ¡account ¡
  • Schedule ¡cached ¡tasks ¡earlier ¡

Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Data ¡Aware ¡Scheduling ¡ ¡ = ¡Tasks ¡ = ¡Cached ¡

slide-28
SLIDE 28

Information Technology ¡ | it.uu.se

ArgoDSM aware scheduler Sorted Insert Sorted Insert

slide-29
SLIDE 29

Information Technology ¡ | it.uu.se ¡ ¡ Different ¡cores/devices ¡in ¡the ¡same ¡node ¡

ArgoDSM aware scheduler Sorted Sorted

  • Can ¡we ¡do ¡something ¡clever? ¡
  • Take ¡locality ¡into ¡account ¡
  • Schedule ¡cached ¡tasks ¡earlier ¡

Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Data ¡Aware ¡Scheduling ¡ ¡ Only ¡parJally ¡ cached ¡ = ¡Tasks ¡ = ¡Cached ¡ = ¡ParJally ¡Cached ¡

slide-30
SLIDE 30

Information Technology ¡ | it.uu.se ¡ ¡ Different ¡cores/devices ¡in ¡the ¡same ¡node ¡

ArgoDSM aware scheduler

  • Can ¡we ¡do ¡something ¡clever? ¡
  • Take ¡locality ¡into ¡account ¡
  • Schedule ¡cached ¡tasks ¡earlier ¡
  • Sorted ¡insert ¡
  • Favor ¡fully ¡cached ¡tasks ¡
  • Behind ¡the ¡scenes ¡
  • Prefetch ¡tasks ¡
  • Separate ¡thread ¡iteraJng ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

the ¡queues ¡

Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Data ¡Aware ¡Scheduling ¡ ¡ = ¡Tasks ¡ = ¡Cached ¡ = ¡ParJally ¡Cached ¡

slide-31
SLIDE 31

Information Technology ¡ | it.uu.se ¡ ¡ Different ¡cores/devices ¡in ¡the ¡same ¡node ¡

ArgoDSM aware scheduler

  • Can ¡we ¡do ¡something ¡clever? ¡
  • Take ¡locality ¡into ¡account ¡
  • Schedule ¡cached ¡tasks ¡earlier ¡
  • Sorted ¡insert ¡
  • Favor ¡fully ¡cached ¡tasks ¡
  • Behind ¡the ¡scenes ¡
  • Prefetch ¡tasks ¡
  • Separate ¡thread ¡iteraJng ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

the ¡queues ¡

Push ¡ ¡

CPU #1 ¡ CPU #2 ¡ CPU #3 ¡ CPU #4 ¡ CPU #5 ¡

Data ¡Aware ¡Scheduling ¡ ¡ = ¡Tasks ¡ = ¡Cached ¡ = ¡ParJally ¡Cached ¡

slide-32
SLIDE 32

Information Technology ¡ | it.uu.se

Cholesky

  • Coarse ¡grain ¡data ¡transfer ¡make ¡use ¡of ¡BW ¡beper ¡
  • 1800 ¡pages ¡per ¡task ¡buffer ¡
  • >32 ¡pages ¡data ¡transfer ¡unit ¡to ¡get ¡performance ¡

0 ¡ 0.2 ¡ 0.4 ¡ 0.6 ¡ 0.8 ¡ 1 ¡ 0 ¡ 8 ¡ 16 ¡ 24 ¡ 32 ¡ 40 ¡ 48 ¡ 56 ¡ 64 ¡ 72 ¡ 80 ¡ 88 ¡ 96 ¡ 104 ¡ 112 ¡ 120 ¡ 128 ¡ Normalized ¡to ¡naJve ¡performance ¡ Data ¡Transfer ¡Size ¡(Pages) ¡

Cholesky ¡67k ¡(36GB), ¡Blocksize: ¡960, ¡Cachesize: ¡10GB ¡ ¡

Eager ¡

slide-33
SLIDE 33

Information Technology ¡ | it.uu.se

Cholesky

0 ¡ 0.2 ¡ 0.4 ¡ 0.6 ¡ 0.8 ¡ 1 ¡ 0 ¡ 8 ¡ 16 ¡ 24 ¡ 32 ¡ 40 ¡ 48 ¡ 56 ¡ 64 ¡ 72 ¡ 80 ¡ 88 ¡ 96 ¡ 104 ¡ 112 ¡ 120 ¡ 128 ¡ Normalized ¡to ¡naJve ¡performance ¡ Data ¡Transfer ¡Size ¡(Pages) ¡

Cholesky ¡67k ¡(36GB), ¡Blocksize: ¡960, ¡Cachesize: ¡10GB ¡ ¡

Eager ¡ Data ¡Aware ¡

  • Data ¡aware ¡– ¡increases ¡performance ¡by ¡10% ¡
slide-34
SLIDE 34

Information Technology ¡ | it.uu.se

Cholesky

0 ¡ 0.2 ¡ 0.4 ¡ 0.6 ¡ 0.8 ¡ 1 ¡ 0 ¡ 8 ¡ 16 ¡ 24 ¡ 32 ¡ 40 ¡ 48 ¡ 56 ¡ 64 ¡ 72 ¡ 80 ¡ 88 ¡ 96 ¡ 104 ¡ 112 ¡ 120 ¡ 128 ¡ Normalized ¡to ¡naJve ¡performance ¡ Data ¡Transfer ¡Size ¡(Pages) ¡

Cholesky ¡67k ¡(36GB), ¡Blocksize: ¡960, ¡Cachesize: ¡10GB ¡ ¡

Eager ¡ Data ¡Aware ¡ Sorted ¡

  • Sorted ¡-­‑ ¡Inserts ¡tasks ¡based ¡on ¡how ¡much ¡is ¡cached ¡
  • Increase ¡performance ¡another ¡~10% ¡
slide-35
SLIDE 35

Information Technology ¡ | it.uu.se

Cholesky

0 ¡ 0.2 ¡ 0.4 ¡ 0.6 ¡ 0.8 ¡ 1 ¡ 0 ¡ 8 ¡ 16 ¡ 24 ¡ 32 ¡ 40 ¡ 48 ¡ 56 ¡ 64 ¡ 72 ¡ 80 ¡ 88 ¡ 96 ¡ 104 ¡ 112 ¡ 120 ¡ 128 ¡ Normalized ¡to ¡naJve ¡performance ¡ Data ¡Transfer ¡Size ¡(Pages) ¡

Cholesky ¡67k ¡(36GB), ¡Blocksize: ¡960, ¡Cachesize: ¡10GB ¡ ¡

Eager ¡ Data ¡Aware ¡ Sorted ¡ Local ¡First ¡

  • Local ¡First ¡-­‑ ¡Any ¡cached ¡task ¡is ¡always ¡placed ¡first ¡
  • Small ¡chance ¡of ¡data ¡evicted ¡when ¡executed ¡
  • Increases ¡performance ¡up ¡90%+ ¡of ¡performance ¡
slide-36
SLIDE 36

Information Technology ¡ | it.uu.se

Cholesky

0 ¡ 0.2 ¡ 0.4 ¡ 0.6 ¡ 0.8 ¡ 1 ¡ 0 ¡ 8 ¡ 16 ¡ 24 ¡ 32 ¡ 40 ¡ 48 ¡ 56 ¡ 64 ¡ 72 ¡ 80 ¡ 88 ¡ 96 ¡ 104 ¡ 112 ¡ 120 ¡ 128 ¡ Normalized ¡to ¡naJve ¡performance ¡ Data ¡Transfer ¡Size ¡(Pages) ¡

Cholesky ¡67k ¡(36GB), ¡Blocksize: ¡960, ¡Cachesize: ¡10GB ¡ ¡

Eager ¡ Data ¡Aware ¡ Sorted ¡ Local ¡First ¡

  • Coarse ¡grain ¡data ¡transfer ¡make ¡use ¡of ¡BW ¡beper ¡
  • 1800 ¡pages ¡per ¡task ¡buffer ¡
  • 32 ¡pages ¡data ¡transfer ¡unit ¡get ¡performance ¡
slide-37
SLIDE 37

Information Technology ¡ | it.uu.se

LU

  • 0 ¡

0.1 ¡ 0.2 ¡ 0.3 ¡ 0.4 ¡ 0.5 ¡ 0.6 ¡ 0.7 ¡ 0.8 ¡ 0.9 ¡ 1 ¡ 5 ¡ 7.5 ¡ 10 ¡ 12.5 ¡ Normalized ¡to ¡naJve ¡performance ¡

Cachesize ¡(GB) ¡

LU ¡76k ¡(45GB), ¡Blocksize ¡960, ¡Data ¡transfer ¡size ¡256 ¡pages ¡ Scaling ¡cachesize ¡

Data ¡Aware ¡ Local ¡First ¡ ¡ Sorted ¡ Eager ¡

Scaling ¡from ¡40% ¡-­‑ ¡60% ¡ Small ¡difference ¡between ¡ schedulers ¡ What ¡about ¡ prefetching? ¡

slide-38
SLIDE 38

Information Technology ¡ | it.uu.se

LU

  • 0 ¡

0.1 ¡ 0.2 ¡ 0.3 ¡ 0.4 ¡ 0.5 ¡ 0.6 ¡ 0.7 ¡ 0.8 ¡ 0.9 ¡ 1 ¡ 5 ¡ 7.5 ¡ 10 ¡ 12.5 ¡ Normalized ¡to ¡naJve ¡performance ¡

Cachesize ¡(GB) ¡

LU ¡76k ¡(45GB), ¡Blocksize ¡960, ¡Data ¡transfer ¡size ¡256 ¡pages ¡ Scaling ¡cachesize ¡

Data ¡Aware ¡Prefetch ¡ Data ¡Aware ¡ Local ¡First ¡ ¡Prefetch ¡ Local ¡First ¡ ¡ Sorted ¡Prefetch ¡ Sorted ¡ Eager ¡

Prefetching ¡ No ¡Prefetching ¡ Prefetching ¡really ¡does ¡well! ¡ Up ¡to ¡90% ¡of ¡naJve ¡ performance ¡ 30% ¡

slide-39
SLIDE 39

Information Technology ¡ | it.uu.se

The next step – Scale computation

  • Using ¡our ¡method ¡we ¡have ¡2 ¡degrees ¡of ¡freedom ¡
  • Move ¡data ¡or ¡tasks ¡(EPEEC ¡– ¡Horizon ¡2020) ¡
  • OpJmize ¡at ¡cluster ¡level ¡
  • How ¡to ¡divide ¡up ¡work? ¡
  • Cluster ¡global ¡work ¡queues? ¡
  • Open ¡quesJon: ¡When ¡do ¡we ¡synchronize? ¡
  • Give ¡the ¡scheduler ¡locality ¡informaJon ¡to ¡improve ¡scheduling ¡
  • Give ¡the ¡DSM ¡task ¡informaJon ¡
  • Similar ¡to ¡this ¡talk, ¡memory ¡is ¡the ¡important ¡part ¡
slide-40
SLIDE 40

Information Technology ¡ | it.uu.se

Conclusions

  • Task-­‑based ¡systems ¡are ¡a ¡great ¡fit ¡for ¡DSMs ¡

¡

slide-41
SLIDE 41

Information Technology ¡ | it.uu.se

Conclusions

  • DSMs ¡are ¡a ¡great ¡fit ¡for ¡a ¡Task ¡based ¡systems ¡
  • ArgoDSM ¡can ¡make ¡use ¡of ¡efficient ¡caching ¡and ¡

prefetching ¡based ¡on ¡scheduler ¡informaJon ¡

  • Scheduling ¡policies ¡can ¡make ¡use ¡of ¡DSM ¡informaJon ¡to ¡

schedule ¡for ¡locality ¡ ¡

  • As ¡adverJsed: ¡
  • Up ¡to ¡90%+ ¡of ¡naJve ¡performance ¡operaJng ¡on ¡remote ¡

memory ¡using ¡a ¡co-­‑design ¡of ¡scheduler ¡and ¡DSM ¡ caching ¡techniques ¡

slide-42
SLIDE 42

Information Technology ¡ | it.uu.se

Thank you! Questions?

  • Magnus.Norgren@it.uu.se

www.argodsm.com

slide-43
SLIDE 43

Information Technology ¡ | it.uu.se

Resources and References

  • ArgoDSM ¡
  • Project ¡site ¡(and ¡the ¡HPDC’15 ¡paper) ¡
  • hpp://www.it.uu.se/research/project/argo ¡
  • h2p://www.argodsm.com ¡
  • hpps://dl.acm.org/citaJon.cfm?id=2749250 ¡
  • VIPS ¡Coherence ¡
  • hpps://dl.acm.org/citaJon.cfm?doid=2370816.2370853 ¡
  • hpp://ieeexplore.ieee.org/document/6398353/?reload=true ¡
  • Queue-­‑DelegaJon ¡Locking ¡
  • hpp://www.it.uu.se/research/group/languages/soxware/

qd_lock_lib ¡

  • StarPU ¡
  • hpp://starpu.gforge.inria.fr ¡
slide-44
SLIDE 44

Information Technology ¡ | it.uu.se

  • Extra Slides –

Scaling ONLY MEMORY Python example

  • Python-­‑based ¡spectral ¡filter ¡applicaJon ¡from ¡

meteorology ¡(very ¡large ¡data ¡set ¡using ¡SciPy) ¡

  • 8 ¡Nodes ¡for ¡memory, ¡one ¡node ¡for ¡compute ¡
  • Outperforms ¡swap ¡

¡

slide-45
SLIDE 45

Information Technology ¡ | it.uu.se

Extra Slides - Bandwidth

0 ¡ 500 ¡ 1000 ¡ 1500 ¡ 2000 ¡ 2500 ¡ 64 ¡ 640 ¡ 6400 ¡ 64000 ¡

MB/s ¡ Bytes ¡

ArgoDSM ¡memcpy ¡cs ¡MPI-­‑RMA ¡

MPI-­‑RMA ¡ ArgoDSM ¡

slide-46
SLIDE 46

Information Technology ¡ | it.uu.se

Extra Slides – HW Specs

  • Compute ¡per ¡node ¡
  • Two ¡Intel ¡Xeon ¡E5 ¡2630 ¡v4, ¡2.20Ghz ¡(10 ¡cores, ¡20 ¡

threads) ¡ ¡

  • Network ¡
  • Infiniband ¡FDR ¡
  • Latency ¡0.7us ¡
  • Bandwidth ¡56GB/s ¡
slide-47
SLIDE 47

Information Technology ¡ | it.uu.se

Extra Slide - Eviction Policies

  • EvicJon ¡Policy ¡-­‑ ¡Direct ¡Mapped, ¡Random, ¡’least ¡

recently ¡mapped’=FIFO ¡

0 ¡ 0.1 ¡ 0.2 ¡ 0.3 ¡ 0.4 ¡ 0.5 ¡ 0.6 ¡ 0.7 ¡ 0.8 ¡ 0.9 ¡ 1 ¡ 5 ¡ 7.5 ¡ 10 ¡ 12.5 ¡

Normalized ¡to ¡naJve ¡performance ¡ Cachesize ¡(GB) ¡

Cholesky ¡67k ¡(36GB), ¡Blocksize: ¡960 ¡ 256 ¡Cache ¡Entry ¡Granularity ¡

Direct ¡Mapped ¡ FIFO ¡ Random ¡