On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
A bridging model for parallel computation
Communications of the ACM
Vector models for data-parallel computing
Vector models for data-parallel computing
LAPACK's user's guide
Curiously recurring template patterns
C++ Report
Efficient management of parallelism in object-oriented numerical software libraries
Modern software tools for scientific computing
A multigrid tutorial: second edition
A multigrid tutorial: second edition
Basic Linear Algebra Subprograms for Fortran Usage
ACM Transactions on Mathematical Software (TOMS)
Templates for the solution of algebraic eigenvalue problems: a practical guide
Templates for the solution of algebraic eigenvalue problems: a practical guide
Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples
Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples
ACM Transactions on Mathematical Software (TOMS)
Iterative Methods for Sparse Linear Systems
Iterative Methods for Sparse Linear Systems
GASNet Specification, v1.1
Concept-controlled polymorphism
Proceedings of the 2nd international conference on Generative programming and component engineering
Proceedings of the 2003 ACM/IEEE conference on Supercomputing
An overview of the Trilinos project
ACM Transactions on Mathematical Software (TOMS) - Special issue on the Advanced CompuTational Software (ACTS) Collection
Advances, Applications and Performance of the Global Arrays Shared Memory Programming Toolkit
International Journal of High Performance Computing Applications
High Performance Remote Memory Access Communication: The Armci Approach
International Journal of High Performance Computing Applications
Designing Multithreaded Algorithms for Breadth-First Search and st-connectivity on the Cray MTA-2
ICPP '06 Proceedings of the 2006 International Conference on Parallel Processing
Parallel Algorithms for Evaluating Centrality Indices in Real-world Networks
ICPP '06 Proceedings of the 2006 International Conference on Parallel Processing
MapReduce: simplified data processing on large clusters
Communications of the ACM - 50th anniversary issue: 1958 - 2008
Graph Clustering Via a Discrete Uncoupling Process
SIAM Journal on Matrix Analysis and Applications
A Unified Framework for Numerical and Combinatorial Computing
Computing in Science and Engineering
Challenges and Advances in Parallel Sparse Matrix-Matrix Multiplication
ICPP '08 Proceedings of the 2008 37th International Conference on Parallel Processing
Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures
Scalability challenges for massively parallel AMR applications
IPDPS '09 Proceedings of the 2009 IEEE International Symposium on Parallel&Distributed Processing
IPDPS '09 Proceedings of the 2009 IEEE International Symposium on Parallel&Distributed Processing
Implementing a portable Multi-threaded Graph Library: The MTGL on Qthreads
IPDPS '09 Proceedings of the 2009 IEEE International Symposium on Parallel&Distributed Processing
Graph Twiddling in a MapReduce World
Computing in Science and Engineering
Parallel MATLAB for Multicore and Multinode Computers
Parallel MATLAB for Multicore and Multinode Computers
Approximating betweenness centrality
WAW'07 Proceedings of the 5th international conference on Algorithms and models for the web-graph
Pregel: a system for large-scale graph processing
Proceedings of the 2010 ACM SIGMOD International Conference on Management of data
New abstractions for data parallel programming
HotPar'09 Proceedings of the First USENIX conference on Hot topics in parallelism
Linear algebraic primitives for parallel computing on large graphs
Linear algebraic primitives for parallel computing on large graphs
Analysis and performance results of computing betweenness centrality on IBM Cyclops64
The Journal of Supercomputing
Graph Algorithms in the Language of Linear Algebra
Graph Algorithms in the Language of Linear Algebra
Sparse matrices in Matlab*P: design and implementation
HiPC'04 Proceedings of the 11th international conference on High Performance Computing
Parallel breadth-first search on distributed memory systems
Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis
Introducing ScaleGraph: an X10 library for billion scale graph analytics
Proceedings of the 2012 ACM SIGPLAN X10 Workshop
High-performance analysis of filtered semantic graphs
Proceedings of the 21st international conference on Parallel architectures and compilation techniques
PowerGraph: distributed graph-parallel computation on natural graphs
OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
A multithreaded algorithm for network alignment via approximate matching
SC '12 Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis
Expanders, tropical semi-rings, and nuclear norms: oh my!
XRDS: Crossroads, The ACM Magazine for Students - Scientific Computing
Betweenness centrality: algorithms and implementations
Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
Ligra: a lightweight graph processing framework for shared memory
Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
Expressing graph algorithms using generalized active messages
Proceedings of the 27th international ACM conference on International conference on supercomputing
Understanding parallelism in graph traversal on multi-core clusters
Computer Science - Research and Development
GraphX: a resilient distributed graph system on Spark
First International Workshop on Graph Data Management Experiences and Systems
GPS: a graph processing system
Proceedings of the 25th International Conference on Scientific and Statistical Database Management
Communication optimal parallel multiplication of sparse random matrices
Proceedings of the twenty-fifth annual ACM symposium on Parallelism in algorithms and architectures
A first view of exedra: a domain-specific language for large graph analytics workflows
Proceedings of the 22nd international conference on World Wide Web companion
Hi-index | 0.00 |
This paper presents a scalable high-performance software library to be used for graph analysis and data mining. Large combinatorial graphs appear in many applications of high-performance computing, including computational biology, informatics, analytics, web search, dynamical systems, and sparse matrix methods. Graph computations are difficult to parallelize using traditional approaches due to their irregular nature and low operational intensity. Many graph computations, however, contain sufficient coarse-grained parallelism for thousands of processors, which can be uncovered by using the right primitives. We describe the parallel Combinatorial BLAS, which consists of a small but powerful set of linear algebra primitives specifically targeting graph and data mining applications. We provide an extensible library interface and some guiding principles for future development. The library is evaluated using two important graph algorithms, in terms of both performance and ease-of-use. The scalability and raw performance of the example applications, using the Combinatorial BLAS, are unprecedented on distributed memory clusters.