elixir - university of cambridge

15
Elixir A System for Synthesizing Concurrent Graph Programs 1

Upload: others

Post on 07-Feb-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Elixir - University of Cambridge

Elixir

A System for Synthesizing Concurrent

Graph Programs

1

Page 2: Elixir - University of Cambridge

Motivation

• Performance of standard graph algorithms dependent on:

• Graph topology (diameter)

• Scheduling

• Architecture (SIMD/MIMD)

• …

• Elixir: high-level tool to generate optimal implementations

2

Page 3: Elixir - University of Cambridge

Specification

• Typed graph definition

• Operators with shape and value constraints define updates on subgraphs

• Statements: foreach, for i..range, iterate

• Scheduling operators restrict order

3

Page 4: Elixir - University of Cambridge

4

Page 5: Elixir - University of Cambridge

Algorithms in Elixir

5

Page 6: Elixir - University of Cambridge

Scheduling operators

• Metric

– Define online priorities

• Group

– Co-schedule edges from same source

• Fuse

• Unroll

• Ordered/unordered

6

Page 7: Elixir - University of Cambridge

Example: unroll and group

7

5 B

D

C

E 3

4

2

1

Page 8: Elixir - University of Cambridge

Example: unroll and group

8

5 8

D

C

E 3

4

2

1

Page 9: Elixir - University of Cambridge

Synthesis

• Translated to C++, predefined graph types

• Worklists hold potential matching subgraphs

• Dynamic scheduling in OpenMP

• Enumerative exploration approach

– Tests a predefined set of combinations of unroll, grouping

9

Page 10: Elixir - University of Cambridge

Matching subgraphs 1/2

10

Page 11: Elixir - University of Cambridge

Matching subgraphs 2/2

11

Page 12: Elixir - University of Cambridge

Evaluation 1/2

12

Page 13: Elixir - University of Cambridge

Evaluation 2/2

13

Page 14: Elixir - University of Cambridge

A Graph G…

14

Page 15: Elixir - University of Cambridge

Conclusion

• “Does not rely on expert knowledge”

• High up-front effort to learn specification

• Bloated formalism

• Can beat hand-written implementations through intricate load-balancing

• No dynamic graphs supported

15