BEGIN:VCALENDAR
VERSION:2.0
PRODID:Linklings LLC
BEGIN:VTIMEZONE
TZID:America/New_York
X-LIC-LOCATION:America/New_York
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:20210402T160556Z
LOCATION:Track 10
DTSTART;TZID=America/New_York:20201112T152000
DTEND;TZID=America/New_York:20201112T154500
UID:submissions.supercomputing.org_SC20_sess218_ws_pawatm105@linklings.com
SUMMARY:Hedgehog: Understandable Scheduler-Free Heterogeneous Asynchronous
  Multithreaded Data-Flow Graphs
DESCRIPTION:Workshop\n\nHedgehog: Understandable Scheduler-Free Heterogene
 ous Asynchronous Multithreaded Data-Flow Graphs\n\nBardakoff, Keyrouz, Bla
 ttner, Bachelet, Yon...\n\nGetting performance on high-end heterogeneous n
 odes is challenging. This is due to the large semantic gap between a compu
 tation's specification, possibly mathematical formulas or an abstract sequ
 ential algorithm, and its parallel implementation; this gap obscures the p
 rogram's parallel structures and how it gains or loses performance. We pre
 sent Hedgehog, a library aimed at coarse-grain parallelism. It explicitly 
 creates a data-flow graph within a program and uses this graph at runtime 
 to drive the program's execution so it takes advantage of hardware paralle
 lism (multicore CPUs and multiple accelerators).\n\nHedgehog provides a se
 paration of concerns and distinguishes between compute and state maintenan
 ce tasks. Its API reflects this separation and allows a developer to gain 
 a better understanding of performance when executing the graph. \n\nHedgeh
 og is implemented as a C++17 headers-only library. One feature of the fram
 ework is its low overhead; it transfers control of data between two nodes 
 in ~1 microsecond. This low overhead combines with Hedgehog's API to provi
 de essentially cost-free profiling of the graph, thereby enabling experime
 ntation for performance, which enhances a developer's insight into a progr
 am's performance.\n\nHedgehog's asynchronous data-flow graph supports a da
 ta streaming programming model both within and between graphs. We demonstr
 ate the effectiveness of this approach by highlighting the performance of 
 streaming implementations of two numerical linear algebra routines, which 
 are comparable to existing libraries: matrix multiplication achieves 95% o
 f the theoretical peak of 4 GPUs; LU decomposition with partial pivoting s
 tarts streaming partial final result blocks 40x earlier than waiting for t
 he full result.\n\nRegistration Category: Workshop Reg Pass
END:VEVENT
END:VCALENDAR

