15
Elixir A System for Synthesizing Concurrent Graph Programs 1

Elixir - University of Cambridge

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

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