John R. Gilbert

dblp:g/JohnRGilbert · also John Gilbert 0001 · DBLP profile ↗
← Back
41ranked-venue papers
7as first author
1since 2021 · last 2022
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 20 · 3 first-author · 1 since 2021Theory of computation · 11 · 3 first-authorSoftware engineering, systems software and programming languages · 3Databases, data management, data science and information retrieval · 3 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 3Graphics, computer vision, multimedia, augmented reality and games · 2 · 1 first-authorComputer networks · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Theoretical computer science
5 papers
Graph algorithms and graph theory · 48% Distributed computing theory · 48% Computational geometry · 1%
Computer architecture, parallel and distributed computing, and storage systems
6 papers
Parallel and multicore computing · 63% High-performance computing · 18% GPUs and heterogeneous computing · 17%

Topics — the 25 heaviest of 27, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Parallel and multicore computing › parallel architecture
distributed-memory parallel computing
0.612022
Combinatorial BLAS 2.0: Scaling Combinatorial Algorithms on Distributed-Memory Systems · IEEE Trans. Parallel Distributed Syst. 2022
Distributed computing theory
distributed graph processing
0.612022
Combinatorial BLAS 2.0: Scaling Combinatorial Algorithms on Distributed-Memory Systems · IEEE Trans. Parallel Distributed Syst. 2022
Graph algorithms and graph theory
network analysis
0.612022
Combinatorial BLAS 2.0: Scaling Combinatorial Algorithms on Distributed-Memory Systems · IEEE Trans. Parallel Distributed Syst. 2022
High-performance computing
distributed i/o
0.212022
Combinatorial BLAS 2.0: Scaling Combinatorial Algorithms on Distributed-Memory Systems · IEEE Trans. Parallel Distributed Syst. 2022
GPUs and heterogeneous computing
GPU computing
0.212022
Combinatorial BLAS 2.0: Scaling Combinatorial Algorithms on Distributed-Memory Systems · IEEE Trans. Parallel Distributed Syst. 2022
Parallel and multicore computing
parallel programming models
0.031995
Optimal Evaluation of Array Expressions on Massively Parallel Machines · ACM Trans. Program. Lang. Syst. 1995
Generating Local Address and Communication Sets for Data-Parallel Programs · PPoPP 1993
Automatic Array Alignment in Data-Parallel Programs · POPL 1993
Compilers and program optimization › parallel language compilation
data-parallel compilation
0.021993
Mobile and replicated alignment of arrays in data-parallel programs · SC 1993
Automatic Array Alignment in Data-Parallel Programs · POPL 1993
Compilers and program optimization
parallelizing compiler
0.021995
Optimal Evaluation of Array Expressions on Massively Parallel Machines · ACM Trans. Program. Lang. Syst. 1995
Generating Local Address and Communication Sets for Data-Parallel Programs · PPoPP 1993
Parallel and multicore computing
data-parallel programming
0.011995
Optimal Evaluation of Array Expressions on Massively Parallel Machines · ACM Trans. Program. Lang. Syst. 1995
Parallel and multicore computing › parallel programming models
data-parallel language
0.021993
Generating Local Address and Communication Sets for Data-Parallel Programs · PPoPP 1993
Automatic Array Alignment in Data-Parallel Programs · POPL 1993
Parallel and multicore computing › parallel programming models › data-parallel language
high performance fortran
0.011993
Generating Local Address and Communication Sets for Data-Parallel Programs · PPoPP 1993
High-performance computing
distributed memory systems
0.021995
Optimal Evaluation of Array Expressions on Massively Parallel Machines · ACM Trans. Program. Lang. Syst. 1995
Mobile and replicated alignment of arrays in data-parallel programs · SC 1993
Geometric modeling and processing
mesh generation
0.011990
Provably Good Mesh Generation · FOCS 1990
Geometric modeling and processing › mesh generation
triangle mesh generation
0.011990
Provably Good Mesh Generation · FOCS 1990
Computational geometry › triangulation
delaunay triangulation
0.011990
Provably Good Mesh Generation · FOCS 1990
Algorithms and data structures › parallel algorithms
time-optimal algorithms
0.011990
Provably Good Mesh Generation · FOCS 1990
Computational geometry
triangulation
0.011990
Provably Good Mesh Generation · FOCS 1990
Mathematical optimization
least squares
0.011986
Predicting fill for sparse orthogonal factorization · J. ACM 1986
Algorithms and data structures
numerical linear algebra
0.011986
Predicting fill for sparse orthogonal factorization · J. ACM 1986
Mathematical optimization › least squares
sparse least squares
0.011986
Predicting fill for sparse orthogonal factorization · J. ACM 1986
Mathematical optimization › continuous optimization › matrix optimization
sparse matrix factorization
0.011986
Predicting fill for sparse orthogonal factorization · J. ACM 1986
Computational complexity › time-space tradeoffs
graph pebbling
0.021980
The Pebbling Problem is Complete in Polynomial Space · SIAM J. Comput. 1980
The Pebbling Problem is Complete in Polynomial Space · STOC 1979
Computational complexity › complexity classes › PSPACE
PSPACE-completeness
0.021980
The Pebbling Problem is Complete in Polynomial Space · SIAM J. Comput. 1980
The Pebbling Problem is Complete in Polynomial Space · STOC 1979
Compilers and program optimization › code generation › parallel code generation
distributed-memory code generation
0.011993
Generating Local Address and Communication Sets for Data-Parallel Programs · PPoPP 1993
Algorithmic game theory and mechanism design › matching
bipartite matching
0.011986
Predicting fill for sparse orthogonal factorization · J. ACM 1986

Methods — techniques the papers use, named apart from their topics

semiring · 1.1hierarchical parallelism · 1.1communication avoidance · 1.1embedding into metric space · 0.0dynamic programming · 0.0network flow · 0.0finite state machine · 0.0compiler optimization · 0.0alignment analysis · 0.0point insertion · 0.0aspect ratio bound · 0.0symbolic factorization · 0.0bipartite graph matching · 0.0reduction · 0.0
YearPublicationVenuePosition
2022 Combinatorial BLAS 2.0: Scaling Combinatorial Algorithms on Distributed-Memory Systems
abstract
Combinatorial algorithms such as those that arise in graph analysis, modeling of discrete systems, bioinformatics, and chemistry, are often hard to parallelize. The Combinatorial BLAS library implements key computational primitives for rapid development of combinatorial algorithms in distributed-memory systems. During the decade since its first introduction, the Combinatorial BLAS library has evolved and expanded significantly. This article details many of the key technical features of Combinatorial BLAS version 2.0, such as communication avoidance, hierarchical parallelism via in-node multithreading, accelerator support via GPU kernels, generalized semiring support, implementations of key data structures and functions, and scalable distributed I/O operations for human-readable files. Our article also presents several rules of thumb for choosing the right data structures and functions in Combinatorial BLAS 2.0, under various common application scenarios.
Ariful Azad, Oguz Selvitopi, Md Taufique Hussain, John R. Gilbert, Aydin Buluç
IEEE Trans. Parallel Distributed Syst.4
2016 An Empirical Comparison of Graph Laplacian Solvers
abstract
Solving Laplacian linear systems is an important task in a variety of practical and theoretical applications. This problem is known to have solutions that perform in linear times polylogarithmic work in theory, but these algorithms are difficult to implement in practice. We examine existing solution techniques in order to determine the best methods currently available and for which types of problems are they useful. We perform timing experiments using a variety of solvers on a variety of problems and present our results. We discover differing solver behavior between web graphs and a class of synthetic graphs designed to model them.
Erik G. Boman, Kevin Deweese, John R. Gilbert
ALENEX3
2015 Parallel processing of filtered queries in attributed semantic graphs
Adam Lugowski, Shoaib Kamil 0001, Aydin Buluç, Samuel Williams 0001, Erika Duriakova, Leonid Oliker, Armando Fox, John R. Gilbert
J. Parallel Distributed Comput.8
2015 Special issue "Graph analysis for scientific discovery"
Aydin Buluç, Leonid Oliker, John R. Gilbert
Parallel Comput.3
2014 Efficient and accurate clustering for large-scale genetic mapping
abstract
High-throughput “next generation” genome sequencing technologies are producing a flood of inexpensive genetic information that is invaluable to genomics research. Sequences of millions of genetic markers are being produced, providing genomics researchers with the opportunity to construct highresolution genetic maps for many complicated genomes. However, the current generation of genetic mapping tools were designed for the small data setting, and are now limited by the prohibitively slow clustering algorithms they employ in the genetic marker-clustering stage. In this work, we present a new approach to genetic mapping based on a fast clustering algorithm that exploits the geometry of the data. Our theoretical and empirical analysis shows that the algorithm can correctly recover linkage groups. Using synthetic and real-world data, including the grand-challenge wheat genome, we demonstrate that our approach can quickly process orders of magnitude more genetic markers than existing tools while retaining - and in some cases even improving - the quality of genetic marker clusters.
Veronika Strnadová-Neeley, Aydin Buluç, Jarrod Chapman, John R. Gilbert, Joseph Gonzalez 0001, Stefanie Jegelka, Daniel Rokhsar, Leonid Oliker
BIBM4
2013 High-Productivity and High-Performance Analysis of Filtered Semantic Graphs
abstract
High performance is a crucial consideration when executing a complex analytic query on a massive semantic graph. In a semantic graph, vertices and edges carry attributes of various types. Analytic queries on semantic graphs typically depend on the values of these attributes; thus, the computation must view the graph through a filter that passes only those individual vertices and edges of interest. Knowledge Discovery Toolbox (KDT), a Python library for parallel graph computations, is customizable in two ways. First, the user can write custom graph algorithms by specifying operations between edges and vertices. These programmer-specified operations are called semiring operations due to KDT's underlying linear-algebraic abstractions. Second, the user can customize existing graph algorithms by writing filters that return true for those vertices and edges the user wants to retain during algorithm execution. For high productivity, both semiring operations and filters are written in a high-level language, resulting in relatively low performance due to the bottleneck of having to call into the Python virtual machine for each vertex and edge. In this work, we use the Selective Embedded JIT Specialization (SEJITS) approach to automatically translate semiring operations and filters defined by programmers into a lower-level efficiency language, bypassing the upcall into Python. We evaluate our approach by comparing it with the high-performance Combinatorial BLAS engine, and show our approach enables users to write in high-level languages and still obtain the high performance of low-level code. We also present a new roofline model for graph traversals, and show that our high-performance implementations do not significantly deviate from the roofline. Overall, we demonstrate the first known solution to the problem of obtaining high performance from a productivity language when applying graph algorithms selectively on semantic graphs.
Aydin Buluç, Erika Duriakova, Armando Fox, John R. Gilbert, Shoaib Kamil 0001, Adam Lugowski, Leonid Oliker, Samuel Williams 0001
IPDPS4
2012 High-performance analysis of filtered semantic graphs
abstract
High performance is a crucial consideration when executing a complex analytic query on a massive semantic graph. In a semantic graph, vertices and edges carry "attributes" of various types. Analytic queries on semantic graphs typically depend on the values of these attributes; thus, the computation must either view the graph through a "filter" that passes only those individual vertices and edges of interest, or else must first materialize a subgraph or subgraphs consisting of only the vertices and edges of interest. The filtered approach is superior due to its generality, ease of use, and memory efficiency, but may carry a performance cost.
Aydin Buluç, Armando Fox, John R. Gilbert, Shoaib Kamil 0001, Adam Lugowski, Leonid Oliker, Samuel Williams 0001
PACT3
2012 Scalable complex graph analysis with the knowledge discovery toolbox
abstract
The Knowledge Discovery Toolbox (KDT) enables domain experts to perform complex analyses of huge datasets on supercomputers using a high-level language without grappling with the difficulties of writing parallel code, calling parallel libraries, or becoming a graph expert. KDT delivers competitive performance from a general-purpose, reusable library for graphs on the order of 10 billion edges and greater. We describe our approach for supporting arbirary vertex and edge attributes, in-place graph filtering, and graph traversal using pre-defined access patterns.
Adam Lugowski, Aydin Buluç, John R. Gilbert, Steven P. Reinhardt
ICASSP3
2012 A Flexible Open-Source Toolbox for Scalable Complex Graph Analysis
abstract
The Knowledge Discovery Toolbox (KDT) enables domain experts to perform complex analyses of huge datasets on supercomputers using a high-level language without grappling with the difficulties of writing parallel code, calling parallel libraries, or becoming a graph expert. KDT provides a flexible Python interface to a small set of high-level graph operations; composing a few of these operations is often sufficient for a specific analysis. Scalability and performance are delivered by linking to a state-of-the-art back-end compute engine that scales from laptops to large HPC clusters. KDT delivers very competitive performance from a general-purpose, reusable library for graphs on the order of 10 billion edges and greater. We demonstrate speedup of 1 and 2 orders of magnitude over PBGL and Pegasus, respectively, on some tasks. Examples from simple use cases and key graph-analytic benchmarks illustrate the productivity and performance realized by KDT users. Semantic graph abstractions provide both flexibility and high performance for real-world use cases. Graph-algorithm researchers benefit from the ability to develop algorithms quickly using KDT's graph and underlying matrix abstractions for distributed memory. KDT is available as open-source code to foster experimentation.
Adam Lugowski, David M. Alber, Aydin Buluç, John R. Gilbert, Steven P. Reinhardt, Andrew Waranis
SDM4
2010 Solving path problems on the GPU
Aydin Buluç, John R. Gilbert, Ceren Budak
Parallel Comput.2
2009 Parallel sparse matrix-vector and matrix-transpose-vector multiplication using compressed sparse blocks
abstract
This paper introduces a storage format for sparse matrices, called compressed sparse blocks (CSB), which allows both Ax and A,x to be computed efficiently in parallel, where A is an n×n sparse matrix with nnzen nonzeros and x is a dense n-vector. Our algorithms use Θ(nnz) work (serial running time) and Θ(√nlgn) span (critical-path length), yielding a parallelism of Θ(nnz/√nlgn), which is amply high for virtually any large matrix. The storage requirement for CSB is the same as that for the more-standard compressed-sparse-rows (CSR) format, for which computing Ax in parallel is easy but A,x is difficult. Benchmark results indicate that on one processor, the CSB algorithms for Ax and A,x run just as fast as the CSR algorithm for Ax, but the CSB algorithms also scale up linearly with processors until limited by off-chip memory bandwidth.
Aydin Buluç, Jeremy T. Fineman, Matteo Frigo, John R. Gilbert, Charles E. Leiserson
SPAA4
2009 Linear Representation of Network Traffic
Stefan Karpinski, Elizabeth M. Belding, Kevin C. Almeroth, John R. Gilbert
Mob. Networks Appl.4
2008 Challenges and Advances in Parallel Sparse Matrix-Matrix Multiplication
abstract
We identify the challenges that are special to parallel sparse matrix-matrix multiplication (PSpGEMM). We show that sparse algorithms are not as scalable as their dense counterparts, because in general, there are not enough non-trivial arithmetic operations to hide the communication costs as well as the sparsity overheads. We analyze the scalability of 1D and 2D algorithms for PSpGEMM. While the 1D algorithm is a variant of existing implementations, 2D algorithms presented are completely novel. Most of these algorithms are based on the previous research on parallel dense matrix multiplication. We also provide results from preliminary experiments with 2D algorithms.
Aydin Buluç, John R. Gilbert
ICPP2
2008 On the representation and multiplication of hypersparse matrices
abstract
Multicore processors are marking the beginning of a new era of computing where massive parallelism is available and necessary. Slightly slower but easy to parallelize kernels are becoming more valuable than sequentially faster kernels that are unscalable when parallelized. In this paper, we focus on the multiplication of sparse matrices (SpGEMM). We first present the issues with existing sparse matrix representations and multiplication algorithms that make them unscalable to thousands of processors. Then, we develop and analyze two new algorithms that overcome these limitations. We consider our algorithms first as the sequential kernel of a scalable parallel sparse matrix multiplication algorithm and second as part of a polyalgorithm for SpGEMM that would execute different kernels depending on the sparsity of the input matrices. Such a sequential kernel requires a new data structure that exploits the hypersparsity of the individual submatrices owned by a single processor after the 2D partitioning. We experimentally evaluate the performance and characteristics of our algorithms and show that they scale significantly better than existing kernels.
Aydin Buluç, John R. Gilbert
IPDPS2
2008 An empirical study of the performance and productivity of two parallel programming models
abstract
The choice of parallel programming models and languages is a major factor in program performance and programmer productivity in HPC. However, evaluation of their relative merits is usually done based on conventional wisdom and subjective beliefs. We present a quantitative approach to evaluate such hypotheses statistically and validate them with empirical data. We apply this approach to compare two languages representing the message passing (MPI) and shared memory programming (UPC) paradigms. We formulate hypothesis tests for comparing the performance and productivity of these two models and evaluate them with data from observational studies of HPC programmers. We present and analyze several results, some of which are statistically significant, that demonstrate the promise of empirical evaluation in HPC development.
Imran Patel, John R. Gilbert
IPDPS2
2008 A pilot study to compare programming effort for two parallel programming models
Lorin Hochstein, Victor R. Basili, Uzi Vishkin, John R. Gilbert
J. Syst. Softw.4
2007 An Interactive Environment to Manipulate Large Graphs
abstract
Interactive environments such as Matlab and Star-P have made numerical computing tremendously accessible to engineers and scientists. They allow people who are not well-versed in the art of numerical computing to nonetheless reap the benefits of numerical computing. The same is not true in general for combinatorial computing. Often, many interesting problems require a mix of numerical and combinatorial computing. Tools developed for numerical computing - such as sparse matrix algorithms - can also be used to develop a comprehensive infrastructure for graph algorithms. We describe the current status of our effort to build a comprehensive infrastructure for operations on large graphs in an interactive parallel environment such as Star-P.
John R. Gilbert, Viral B. Shah, Steven P. Reinhardt
ICASSP (4)1
2006 A comparative analysis of the information content in long and short SAGE libraries
abstract
BACKGROUND: Serial Analysis of Gene Expression (SAGE) is a powerful tool to determine gene expression profiles. Two types of SAGE libraries, ShortSAGE and LongSAGE, are classified based on the length of the SAGE tag (10 vs. 17 basepairs). LongSAGE libraries are thought to be more useful than ShortSAGE libraries, but their information content has not been widely compared. To dissect the differences between these two types of libraries, we utilized four libraries (two LongSAGE and two ShortSAGE libraries) generated from the hippocampus of Alzheimer and control samples. In addition, we generated two additional short SAGE libraries, the truncated long SAGE libraries (tSAGE), from LongSAGE libraries by deleting seven 5' basepairs from each LongSAGE tag. RESULTS: One problem that occurred in the SAGE study is that individual tags may have matched to multiple different genes - due to the short length of a tag. We found that the LongSAGE tag maps up to 15 UniGene clusters, while the ShortSAGE and tSAGE tags map up to 279 UniGene clusters. Both long and short SAGE libraries exhibit a large number of orphan tags (no gene information in UniGene), implying the limitation of the UniGene database. Among 100 orphan LongSAGE tags, the complete sequences (17 basepairs) of nine orphan tags match to 17 genomic sequences; four of the orphan tags match to a single genomic sequence. Our data show the potential to resolve 4-9% of orphan LongSAGE tags. Finally, among 400 tSAGE tags showing significant differential expression between AD and control, 79 tags (19.8%) were derived from multiple non-significant LongSAGE tags, implying the false positive results. CONCLUSION: Our data show that LongSAGE tags have high specificity in gene mapping compared to ShortSAGE tags. LongSAGE tags show an advantage over ShortSAGE in identifying novel genes by BLAST analysis. Most importantly, the chances of obtaining false positive results are higher for ShortSAGE than LongSAGE libraries due to their specificity in gene mapping. Therefore, it is recommended that the number of corresponding UniGene clusters (gene or ESTs) of a tag for prioritizing the significant results be considered.
Yi-Ju Li, Puting Xu, Xuejun Qin, Donald E. Schmechel, Christine M. Hulette, Jonathan L. Haines, Margaret A. Pericak-Vance, John R. Gilbert
BMC Bioinform.8
2004 Sparse Matrices in Matlab*P: Design and Implementation
Viral B. Shah, John R. Gilbert
HiPC2
2004 A column approximate minimum degree ordering algorithm
abstract
Sparse Gaussian elimination with partial pivoting computes the factorization PAQ = LU of a sparse matrix A , where the row ordering P is selected during factorization using standard partial pivoting with row interchanges. The goal is to select a column preordering, Q , based solely on the nonzero pattern of A , that limits the worst-case number of nonzeros in the factorization. The fill-in also depends on P , but Q is selected to reduce an upper bound on the fill-in for any subsequent choice of P . The choice of Q can have a dramatic impact on the number of nonzeros in L and U . One scheme for determining a good column ordering for A is to compute a symmetric ordering that reduces fill-in in the Cholesky factorization of A T A . A conventional minimum degree ordering algorithm would require the sparsity structure of A T A to be computed, which can be expensive both in terms of space and time since A T A may be much denser than A . An alternative is to compute Q directly from the sparsity structure of A ; this strategy is used by MATLAB's COLMMD preordering algorithm. A new ordering algorithm, COLAMD, is presented. It is based on the same strategy but uses a better ordering heuristic. COLAMD is faster and computes better orderings, with fewer nonzeros in the factors of the matrix.
Timothy A. Davis 0001, John R. Gilbert, Stefan I. Larimore, Esmond G. Ng
ACM Trans. Math. Softw.2
2004 Algorithm 836: COLAMD, a column approximate minimum degree ordering algorithm
abstract
Two codes are discussed, COLAMD and SYMAMD, that compute approximate minimum degree orderings for sparse matrices in two contexts: (1) sparse partial pivoting, which requires a sparsity preserving column pre-ordering prior to numerical factorization, and (2) sparse Cholesky factorization, which requires a symmetric permutation of both the rows and columns of the matrix being factorized. These orderings are computed by COLAMD and SYMAMD, respectively. The ordering from COLAMD is also suitable for sparse QR factorization, and the factorization of matrices of the form A T A and AA T , such as those that arise in least-squares problems and interior point methods for linear programming problems. The two routines are available both in MATLAB and C-callable forms. They appear as built-in routines in MATLAB Version 6.0.
Timothy A. Davis 0001, John R. Gilbert, Stefan I. Larimore, Esmond G. Ng
ACM Trans. Math. Softw.2
1999 MEMS CAD Beyond Multi-Million Transistors (Panel)
abstract
No abstract available.
Kristofer S. J. Pister, Albert P. Pisano, Nicholas Swart, Mike Horton, John Rychcik, John R. Gilbert, Gary K. Fedder
DAC6
1999 Separators in Graphs with Negative and Multiple Vertex Weights
Hristo N. Djidjev, John R. Gilbert
Algorithmica2
1996 Algorithms for Automatic Alignment of Arrays
Siddhartha Chatterjee, John R. Gilbert, Leonid Oliker, Robert Schreiber, Thomas J. Sheffler
J. Parallel Distributed Comput.2
1995 Generating Local Address and Communication Sets for Data-Parallel Programs
Siddhartha Chatterjee, John R. Gilbert, Fred J. E. Long, Robert Schreiber, Shang-Hua Teng
J. Parallel Distributed Comput.2
1995 Optimal Evaluation of Array Expressions on Massively Parallel Machines
abstract
We investigate the problem of evaluating Fortran 90-style array expressions on massively parallel distributed-memory machines. On such a machine, an elementwise operation can be performed in constant time for arrays whose corresponding elements are in the same processor. If the arrays are not aligned in this manner, the cost of aligning them is part of the cost of evaluating the expression tree. The choice of where to perform the operation then affects this cost. We describe the communication cost of the parallel machine theoretically as a metric space; we model the alignment problem as that of finding a minimum-cost embedding of the expression tree into this space. We present algorithms based on dynamic programming that solve the embedding problem optimally for several communication cost metrics: multidimensional grids and rings, hypercubes, fat-trees, and the discrete metric. We also extend our approach to handle operations that change the shape of the arrays.
Siddhartha Chatterjee, John R. Gilbert, Robert Schreiber, Shang-Hua Teng
ACM Trans. Program. Lang. Syst.2
1994 Provably Good Mesh Generation
Marshall W. Bern, David Eppstein, John R. Gilbert
J. Comput. Syst. Sci.3
1993 Automatic Array Alignment in Data-Parallel Programs
abstract
Data-parallel languages like Fortran 90 express parallelism in the form of operations on data aggregates such as arrays. Misalignment of the operands of an array operation can reduce program performance on a distributed-memory parallel machine by requiring nonlocal data accesses. Determining array alignments that reduce communication is therefore a key issue in compiling such languages.
Siddhartha Chatterjee, John R. Gilbert, Robert Schreiber, Shang-Hua Teng
POPL2
1993 Generating Local Address and Communication Sets for Data-Parallel Programs
abstract
Generating local addresses and communication sets is an important issue in distributed-memory implementations of data-parallel languages such as High Performance Fortran. We show that for an array A affinely aligned to a template that is distributed across p processors with a cyclic(k) distribution, and a computation involving the regular section A(l:h:s), the local memory access sequence for any processor is characterized by a finite state machine of at most k states. We present fast algorithms for computing the essential information about these state machines, and extend the framework to handle multidimensional arrays. We also show how to generate communication sets using the state machine approach. Performance results show that this solution requires very little runtime overhead and acceptable preprocessing time.
Siddhartha Chatterjee, John R. Gilbert, Fred J. E. Long, Robert Schreiber, Shang-Hua Teng
PPoPP2
1993 Mobile and replicated alignment of arrays in data-parallel programs
abstract
When a data-parallel language like FORTRAN 90 is compiled for a distributed-memory machine, aggregate data objects (such as arrays) are distributed across the processor memories. The mapping determines the amount of residual communication needed to bring operands of parallel operations into alignment with each other. A common approach is to break the mapping into two stages: first, an alignment that maps all the objects to an abstract template, and then a distribution that maps the template to the processors. We solve two facets of the problem of finding alignments that reduce residual communication: we determine alignments that vary in loops, and objects that should have replicated alignments. We show that loop-dependent mobile alignment is sometimes necessary for optimum performance, and we provide algorithms with which a compiler can determine good mobile alignments for objects within do loops. We also identify situations in which replicated alignment is either required by the program itself (via spread operations) or can be used to improve performance. We propose an algorithm based on network flow that determines which objects to replicate so as to minimize the total amount of broadcast communication in replication. This work on mobile and replicated alignment extends our earlier work on determining static alignment.
Siddhartha Chatterjee, John R. Gilbert, Robert Schreiber
SC2
1992 Drawing the Planar Dual
Marshall W. Bern, John R. Gilbert
Inf. Process. Lett.2
1991 Approximating Treewidth, Pathwidth, and Minimum Elimination Tree Height
Hans L. Bodlaender, John R. Gilbert, Ton Kloks, Hjálmtyr Hafsteinsson
WG2
1991 Optimal Expression Evaluation for Data Parallel Architectures
John R. Gilbert, Robert Schreiber
J. Parallel Distributed Comput.1
1990 Provably Good Mesh Generation
abstract
Several versions of the problem of generating triangular meshes for finite-element methods are studied. It is shown how to triangulate a planar point set or a polygonally bounded domain with triangles of bounded aspect ratio, how to triangulate a planar point set with triangles having no obtuse angles, how to triangulate a point set in arbitrary dimension with simplices of bounded aspect ratio, and how to produce a linear-size Delaunay triangulation of a multidimensional point set by adding a linear number of extra points. All the triangulations have size within a constant factor of optimal and run in optimal time O(n log n+k) with input of size n and output of size k. No previous work on mesh generation simultaneously guarantees well-shaped elements and small total size.>
Marshall W. Bern, David Eppstein, John R. Gilbert
FOCS3
1990 Parallel symbolic factorization of sparse linear systems
John R. Gilbert, Hjálmtyr Hafsteinsson
Parallel Comput.1
1988 Some Nested Dissection Order is Nearly Optimal
abstract
The minimum fill problem is the problem to re-order the rows and columns of a given sparse symmetric matrix so that its triangular factor is as sparse as possible. Equivalently, the problem is to find the smallest set of edges whose addition makes a given undirected graph chordal. The problem is known to be NP-complete and no polynomial-time approximation algorithms are known that provide any nontrivial guarantee for arbitrary graphs (matrices), although some heuristics well in practice. Nested dissection is one such heuristic. In this article we prove that every graph with a fixed bound on the vertex degree has a nested dissection order that achieves fill within a factor of O(log n) ofminimum. This does not lead to a polynomial-time approximation algorithm, however, because the proof does not give an efficient method for finding the separators required by nested dissection.
John R. Gilbert
Inf. Process. Lett.1
1988 A parallel algorithm for sparse symbolic Cholesky factorization on a multiprocessor
Earl Zmijewski, John R. Gilbert
Parallel Comput.2
1987 A Parallel Graph Partitioning Algorithm for a Message-Passing Multiprocessor
John R. Gilbert, Earl Zmijewski
ICS1
1986 Predicting fill for sparse orthogonal factorization
abstract
In solving large sparse linear least squares problems A x ≃ b, several different numeric methods involve computing the same upper triangular factor R of A . It is of interest to be able to compute the nonzero structure of R , given only the structure of A . The solution to this problem comes from the theory of matchings in bipartite graphs. The structure of A is modeled with a bipartite graph, and it is shown how the rows and columns of A can be rearranged into a structure from which the structure of its upper triangular factor can be correctly computed. Also, a new method for solving sparse least squares problems, called block back-substitution, is presented. This method assures that no unnecessary space is allocated for fill, and that no unnecessary space is needed for intermediate fill.
Thomas F. Coleman, Anders Edenbrandt, John R. Gilbert
J. ACM3
1980 The Pebbling Problem is Complete in Polynomial Space
abstract
In this paper we study a pebbling problem that models the storage requirements of various kinds of computation. Sethi has shown this problem to be $NP$-hard and Lingas has shown a generalization to be P-space complete. We prove the original problem P-space complete by using a modification of Lingas’s proof. The pebbling problem is an example of a P-space complete problem not exhibiting any obvious quantifier alternation.
John R. Gilbert, Thomas Lengauer, Robert E. Tarjan
SIAM J. Comput.1
1979 The Pebbling Problem is Complete in Polynomial Space
abstract
We examine a pebbling problem which has been used to study the storage requirements of various models of computation. Sethi has shown this problem to be NP-hard and Lingas has shown a generalization to be P-space complete. We prove the original problem P-space complete by employing a modification of Lingas's proof. The pebbling problem is one of the few examples of a P-space complete problem not exhibiting any obvious quantifier alternation.
John R. Gilbert, Thomas Lengauer, Robert E. Tarjan
STOC1