1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324
|
@inproceedings{BulucGilbert08,
author={Bulu\c{c}, A. and Gilbert, J.},
booktitle={IPDPS'80: 2008 IEEE Intl. Symp. on Parallel and Distributed Processing},
title={On the representation and multiplication of hypersparse matrices},
year={2008},
volume={},
number={},
pages={1-11},
note={\href{https://dx.doi.org/10.1109/IPDPS.2008.4536313}{https://dx.doi.org/10.1109/IPDPS.2008.4536313}},
month={April},
}
@article{BulucGilbert12,
author = {Bulu\c{c}, A. and Gilbert, J.},
title = {Parallel Sparse Matrix-Matrix Multiplication and Indexing: Implementation and Experiments},
journal = {SIAM Journal on Scientific Computing},
volume = {34},
number = {4},
pages = {C170-C191},
year = {2012},
doi = {10.1137/110848244},
note ={\href{https://dx.doi.org/10.1137/110848244}{https://dx.doi.org/10.1137/110848244}},
}
@book{Davis06book,
author={Davis, T. A.},
title={Direct Methods for Sparse Linear Systems},
publisher={SIAM},
year={2006},
address={Philadelphia, PA},
note={\href{https://dx.doi.org/10.1137/1.9780898718881}{https://dx.doi.org/10.1137/1.9780898718881}},
abstract={
Provides a basic overview of many sparse matrix algorithms
and a simple sparse matrix data structure.
A series of 42 lectures are available on YouTube; see the link at
\href{http://faculty.cse.tamu.edu/davis/publications.html}
{http://faculty.cse.tamu.edu/davis/publications.html}
For the book, see
\href{https://dx.doi.org/10.1137/1.9780898718881}{https://dx.doi.org/10.1137/1.9780898718881}},
}
@article{DavisRajamanickamSidLakhdar16,
author={Davis, T. A. and Rajamanickam, S. and Sid-Lakhdar, W. M.},
title={A survey of direct methods for sparse linear systems},
journal={Acta Numerica},
volume={25},
year={2016},
pages={383--566},
numpages = {184},
note={\href{https://dx.doi.org/10.1017/S0962492916000076}{https://dx.doi.org/10.1017/S0962492916000076}},
abstract = {
Abstract: Wilkinson defined a sparse matrix as one with
enough zeros that it pays to take advantage of them. This informal yet
practical definition captures the essence of the goal of direct methods
for solving sparse matrix problems. They exploit the sparsity of a
matrix to solve problems economically: much faster and using far less
memory than if all the entries of a matrix were stored and took part in
explicit computations. These methods form the backbone of a wide range
of problems in computational science. A glimpse of the breadth of
applications relying on sparse solvers can be seen in the origins of
matrices in published matrix benchmark collections (Duff and Reid
1979a, Duff, Grimes and Lewis 1989a, Davis and Hu 2011). The goal of
this survey article is to impart a working knowledge of the underlying
theory and practice of sparse direct methods for solving linear systems
and least-squares problems, and to provide an overview of the
algorithms, data structures, and software available to solve these
problems, so that the reader can both understand the methods and know
how best to use them.
DOI:
\href{https://dx.doi.org/10.1017/S0962492916000076}{https://dx.doi.org/10.1017/S0962492916000076}
}
}
@techreport{spec,
author={Bulu\c{c}, A. and Mattson, T. and McMillan, S. and Moreira, J. and Yang, C.},
title={The {GraphBLAS} {C} {API} Specification},
year={2017},
note={\href{http://graphblas.org/}{http://graphblas.org/}},
}
@techreport{spec2,
author={Brock, B. and Bulu\c{c}, A. and Mattson, T. and McMillan, S. and Moreira, J.},
title={The {GraphBLAS} {C} {API} Specification (v2.0)},
year={2021},
note={\href{http://graphblas.org/}{http://graphblas.org/}},
}
@techreport{Kepner2017,
author={Kepner, J.},
title={{GraphBLAS} Mathematics},
year={2017},
note={
\href{http://www.mit.edu/~kepner/GraphBLAS/GraphBLAS-Math-release.pdf}{http://www.mit.edu/$\sim$kepner/GraphBLAS/GraphBLAS-Math-release.pdf}
}
}
@book{KepnerGilbert2011,
author={Kepner, J. and Gilbert, J.},
title={Graph Algorithms in the Language of Linear Algebra},
publisher={SIAM},
year={2011},
address={Philadelphia, PA},
annotate={\footnotesize
From the preface: Graphs are among the most important
abstract data types in computer science, and the algorithms that
operate on them are critical to modern life. Graphs have been shown to
be powerful tools for modeling complex problems because of their
simplicity and generality. Graph algorithms are one of the pillars of
mathematics, informing research in such diverse areas as combinatorial
optimization, complexity theory, and topology. Algorithms on graphs are
applied in many ways in today's world -- from Web rankings to metabolic
networks, from finite element meshes to semantic graphs.
The current exponential growth in graph data has forced a shift to
parallel computing for executing graph algorithms. Implementing
parallel graph algorithms and achieving good parallel performance have
proven difficult. This book addresses these challenges by exploiting
the well-known duality between a canonical representation of graphs as
abstract collections of vertices and edges and a sparse adjacency
matrix representation. This linear algebraic approach is widely
accessible to scientists and engineers who may not be formally trained
in computer science. The authors show how to leverage existing parallel
matrix computation techniques and the large amount of software
infrastructure that exists for these computations to implement
efficient and scalable parallel graph algorithms. The benefits of this
approach are reduced algorithmic complexity, ease of implementation,
and improved performance.
DOI:
\href{https://dx.doi.org/10.1137/1.9780898719918}{https://dx.doi.org/10.1137/1.9780898719918}},
}
@article{Luby86,
author={Luby, M.},
title={A simple parallel algorithm for the maximal independent set problem},
year={1986},
journal={SIAM J. Comput.},
volume={15},
number={4},
note={\href{https://dx.doi.org/10.1137/0215074}{https://dx.doi.org/10.1137/0215074}}
}
@article{Davis19,
author = {Davis, Timothy A.},
title = {Algorithm 1000: {SuiteSparse:GraphBLAS}: Graph Algorithms in the Language of Sparse Linear Algebra},
year = {2019},
issue_date = {December 2019},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {45},
number = {4},
issn = {0098-3500},
note = {\href{https://doi.org/10.1145/3322125}{https://doi.org/10.1145/3322125}},
url = {https://doi.org/10.1145/3322125},
doi = {10.1145/3322125},
abstract = {SuiteSparse:GraphBLAS is a full implementation of the GraphBLAS standard, which defines a set of sparse matrix operations on an extended algebra of semirings using an almost unlimited variety of operators and types. When applied to sparse adjacency matrices, these algebraic operations are equivalent to computations on graphs. GraphBLAS provides a powerful and expressive framework for creating graph algorithms based on the elegant mathematics of sparse matrix operations on a semiring. An overview of the GraphBLAS specification is given, followed by a description of the key features and performance of its implementation in the SuiteSparse:GraphBLAS package.},
journal = {ACM Trans. Math. Softw.},
month = dec,
articleno = {44},
numpages = {25},
keywords = {sparse matrices, GraphBLAS, Graph algorithms}
}
@article{Davis22,
author = {Davis, Timothy A.},
title = {Algorithm 10xx: {SuiteSparse:GraphBLAS}: Parallel Graph Algorithms in the Language of Sparse Linear Algebra},
journal = {ACM Trans. Math. Softw.},
year = {2022},
note = {(submitted, revised Apr 3, 2022)}
}
@book{Higham,
author={Higham, N.},
title={Accuracy and Stability of Numerical Algorithms},
edition={2nd},
year={2002},
publisher={SIAM},
note={\href{https://dx.doi.org/10.1137/1.9780898718027}{https://dx.doi.org/10.1137/1.9780898718027}}
}
@article{Wathen,
author={Wathen, A. J.},
title={Realistic eigenvalue bounds for the {Galerkin} mass matrix},
journal={{IMA} J. Numer. Anal.},
volume=7,
year={1987},
pages={449--457},
note={\href{https://dx.doi.org/10.1093/imanum/7.4.449}{https://dx.doi.org/10.1093/imanum/7.4.449} }}
@inproceedings{Davis18b,
author={Davis, T. A.},
title={Graph algorithms via {SuiteSparse:GraphBLAS}: triangle counting and {K}-truss},
year={2018},
booktitle={IEEE HPEC'18},
note={Grand Challenge Innovation Award.
See \href{http://www.ieee-hpec.org/}{http://www.ieee-hpec.org/}.},
publisher={IEEE},
}
@inproceedings{DavisAznavehKolodziej19,
author={Davis, T. A. and Aznaveh, M. and Kolodziej, S.},
title={Write Quick, Run Fast: Sparse Deep Neural Network in 20 Minutes of
Development Time via {SuiteSparse:GraphBLAS}},
year={2019},
note={Grand Challenge Champion, for high performance.
See \href{http://www.ieee-hpec.org/}{http://www.ieee-hpec.org/}.},
booktitle={IEEE HPEC'19},
publisher={IEEE},
}
@inproceedings{Mattson19,
author={Mattson, T. and Davis, T. A. and Kumar, M. and Bulu\c{c}, A. and McMillan, S. and
Moreira, J. and Yang, C.},
title={{LAGraph}: a community effort to collect graph algorithms built on top of the {GraphBLAS}},
year={2019},
booktitle={GrAPL'19: Workshop on Graphs, Architectures, Programming, and Learning},
note={\href{https://hpc.pnl.gov/grapl/previous/2019}{https://hpc.pnl.gov/grapl/previous/2019},
part of IPDPS'19, at \href{http://www.ipdps.org/ipdps2019} {http://www.ipdps.org/ipdps2019}},
month={May},
publisher={IEEE},
}
@inproceedings{Davis20,
author = {Mohsen Aznaveh and
Jinhao Chen and
Timothy A. Davis and
B{\'{a}}lint Hegyi and
Scott P. Kolodziej and
Timothy G. Mattson and
G{\'{a}}bor Sz{\'{a}}rnyas},
title = {Parallel {GraphBLAS} with {OpenMP}},
year = {2020},
booktitle = {CSC20, SIAM Workshop on Combinatorial Scientific Computing},
note = {\href{https://www.siam.org/conferences/cm/conference/csc20}{https://www.siam.org/conferences/cm/conference/csc20}},
publisher = {{SIAM}},
}
@INPROCEEDINGS{BulucMattsonMcMillanMoreiraYang17,
author={A. Bulu\c{c} and T. Mattson and S. McMillan and J. Moreira and C. Yang},
booktitle={2017 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)},
title={Design of the {GraphBLAS} {API} for {C}},
year={2017},
volume={},
number={},
pages={643-652},
keywords={C language;application program interfaces;formal
specification;graph theory;linear algebra;C language specification
subcommittee;GraphBLAS API;GraphBLAS Forum;application programming
interface;betweenness centrality algorithm;design;graph
computations;linear-algebraic building blocks;mathematical
specification;Additives;Linear algebra;Programming;Semantics;Sparse
matrices},
note={\href{https://dx.doi.org/10.1109/IPDPSW.2017.117}{https://dx.doi.org/10.1109/IPDPSW.2017.117} },
month={May},
}
@article{Gustavson78,
author={Gustavson, F. G.},
year={1978},
title={Two Fast Algorithms for Sparse Matrices: Multiplication and Permuted Transposition},
journal=TOMS,
volume={4},
number={3},
pages={250--269},
note={
\href{https://dx.doi.org/10.1145/355791.355796}{https://dx.doi.org/10.1145/355791.355796}},
}
@inproceedings{10.1145/3229710.3229720,
author = {Nagasaka, Yusuke and Matsuoka, Satoshi and Azad, Ariful and Bulu\c{c}, Ayd\i{}n},
title = {High-Performance Sparse Matrix-Matrix Products on {Intel} {KNL} and Multicore Architectures},
year = {2018},
isbn = {9781450365239},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3229710.3229720},
note ={ \href{https://doi.org/10.1145/3229710.3229720}{https://doi.org/10.1145/3229710.3229720}},
doi = {10.1145/3229710.3229720},
booktitle = {Proceedings of the 47th International Conference on Parallel Processing Companion},
articleno = {Article 34},
numpages = {10},
keywords = {Intel KNL, SpGEMM, Sparse matrix},
location = {Eugene, OR, USA},
series = {ICPP ’18}
}
@misc{Green19_arxiv,
doi = {10.48550/ARXIV.1907.02900},
url = {https://arxiv.org/abs/1907.02900},
author = {Green, Oded},
keywords = {Data Structures and Algorithms (cs.DS), Databases (cs.DB),
Distributed, Parallel, and Cluster Computing (cs.DC), FOS: Computer and
information sciences, FOS: Computer and information sciences},
title = {{HashGraph} -- Scalable Hash Tables Using A Sparse Graph Data Structure},
publisher = {arXiv},
year = {2019},
copyright = {arXiv.org perpetual, non-exclusive license},
note ={\href{https://arxiv.org/abs/1907.02900}{https://arxiv.org/abs/1907.02900}},
}
@article{Green19,
author = {Green, Oded},
title = {{HashGraph} -- Scalable Hash Tables Using a Sparse Graph Data Structure},
year = {2021},
issue_date = {June 2021},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {8},
number = {2},
issn = {2329-4949},
note = {\href{https://doi.org/10.1145/3460872}{https://doi.org/10.1145/3460872}},
url = {https://doi.org/10.1145/3460872},
doi = {10.1145/3460872},
abstract = {In this article, we introduce HashGraph, a new scalable approach for building hash tables that uses concepts taken from sparse graph representations—hence, the name HashGraph. HashGraph introduces a new way to deal with hash-collisions that does not use “open-addressing” or “separate-chaining,” yet it has the benefits of both these approaches. HashGraph currently works for static inputs. Recent progress with dynamic graph data structures suggests that HashGraph might be extendable to dynamic inputs as well. We show that HashGraph can deal with a large number of hash values per entry without loss of performance. Last, we show a new querying algorithm for value lookups. We experimentally compare HashGraph to several state-of-the-art implementations and find that it outperforms them on average 2\texttimes{} when the inputs are unique and by as much as 40\texttimes{} when the input contains duplicates. The implementation of HashGraph in this article is for NVIDIA GPUs. HashGraph can build a hash table at a rate of 2.5 billion keys per second on a NVIDIA GV100 GPU and can query at nearly the same rate.},
journal = {ACM Trans. Parallel Comput.},
month = {July},
articleno = {11},
numpages = {17},
keywords = {Hash table, sparse data structures, graph data structure}
}
|