Proceedings of the 18th ACM/IEEE International Symposium on Code Generation and Optimization 2020
DOI: 10.1145/3368826.3377909
|View full text |Cite
|
Sign up to set email alerts
|

Optimizing ordered graph algorithms with GraphIt

Abstract: Many graph problems can be solved using ordered parallel graph algorithms that achieve significant speedup over their unordered counterparts by reducing redundant work. This paper introduces a new priority-based extension to GraphIt, a domain-specific language for writing graph applications, to simplify writing high-performance parallel ordered graph algorithms. The extension enables vertices to be processed in a dynamic order while hiding low-level implementation details from the user. We extend the compiler … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

1
19
0

Year Published

2020
2020
2024
2024

Publication Types

Select...
5
2
1

Relationship

0
8

Authors

Journals

citations
Cited by 28 publications
(20 citation statements)
references
References 37 publications
1
19
0
Order By: Relevance
“…While Prodigy supports prefetching for indirect memory accesses, it does not account for this additional control-flow information for prefetching. Similar trends might be observed for ordered graph algorithms [28], [103] because node priority is not accounted for prefetching. In such cases, Prodigy might prefetch inaccurate vertices, and we envision using a mechanism that disables the prefetcher when it detects cache thrashing [88].…”
Section: G Limitations Of Prodigysupporting
confidence: 74%
“…While Prodigy supports prefetching for indirect memory accesses, it does not account for this additional control-flow information for prefetching. Similar trends might be observed for ordered graph algorithms [28], [103] because node priority is not accounted for prefetching. In such cases, Prodigy might prefetch inaccurate vertices, and we envision using a mechanism that disables the prefetcher when it detects cache thrashing [88].…”
Section: G Limitations Of Prodigysupporting
confidence: 74%
“…It improves the cost bounds for existing parallel SSSP algorithms such as Radius-Stepping [25] and Shi-Spencer [78]. In practice, we show simple implementations based on flat arrays, which makes our stepping algorithms outperform state-of-the-art software [11,45,71,92].…”
Section: Gapbsmentioning
confidence: 78%
“…We note that FinishCheck is not necessary for Δ-Stepping, just like other stepping algorithms. In fact, all existing implementations [11,45,71,92] relaxed FinishCheck in different ways. In this paper, we show that removing FinishCheck in Δ-Stepping (referred to as Δ * -Stepping) can lead to better bounds (Thm.…”
Section: Framework 31 the Lab-pq Abstractionmentioning
confidence: 99%
See 1 more Smart Citation
“…Many graph engines and frameworks have been developed in the past decade. Some of them are sharedmemory, focusing on processing in-memory datasets within a computation node, e.g., Galois [57], Ligra [63], Polymer [76], Graph-Grind [67], GraphIt [78], and Graptor [69]. Some are distributed systems, e.g., Pregel [50], GraphLab [48], and PowerGraph [25].…”
Section: Related Workmentioning
confidence: 99%