Aart J. C. Bik

dblp:76/5528 · DBLP profile ↗
← Back
22ranked-venue papers
16as first author
3since 2021 · last 2024
0000-0002-0333-7413ORCID · verified

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

Systems, architecture and hardware · 16 · 14 first-author · 1 since 2021Software engineering, systems software and programming languages · 2 · 2 since 2021Theory of computation · 2 · 2 first-authorDatabases, data management, data science and information retrieval · 1Applied, interdisciplinary, general and emerging computing · 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.

Software engineering, system software, and programming languages
6 papers
Compilers and program optimization · 96% Programming languages and type systems · 4%
Databases, data mining, and information retrieval
3 papers
Graph data management · 59% Data models and query languages · 41%
Computer architecture, parallel and distributed computing, and storage systems
3 papers
High-performance computing · 47% Distributed systems · 43% Performance modeling and evaluation · 9%
Artificial intelligence
1 paper
3D vision · 100%

Topics — the 20 heaviest of 22, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Compilers and program optimization › sparse computation
sparse tensor compilation
1.322024
Compiler Support for Sparse Tensor Convolutions · Proc. ACM Program. Lang. 2024
Compiler Support for Sparse Tensor Computations in MLIR · ACM Trans. Archit. Code Optim. 2022
Compilers and program optimization › loop transformation
loop fusion
0.812024
Compilation of Shape Operators on Sparse Arrays · Proc. ACM Program. Lang. 2024
Compilers and program optimization › deep learning compiler
operator fusion
0.812024
Compilation of Shape Operators on Sparse Arrays · Proc. ACM Program. Lang. 2024
Compilers and program optimization › domain-specific compilation
tensor algebra compilation
0.812024
Compiler Support for Sparse Tensor Convolutions · Proc. ACM Program. Lang. 2024
Compilers and program optimization
compiler infrastructure
0.612022
Compiler Support for Sparse Tensor Computations in MLIR · ACM Trans. Archit. Code Optim. 2022
Compilers and program optimization › compiler infrastructure
MLIR
0.612022
Compiler Support for Sparse Tensor Computations in MLIR · ACM Trans. Archit. Code Optim. 2022
Compilers and program optimization › sparse computation › sparse tensor compilation
sparse tensor code generation
0.612022
Compiler Support for Sparse Tensor Computations in MLIR · ACM Trans. Archit. Code Optim. 2022
Computer vision › 3D vision › point cloud processing
sparse convolution
0.212024
Compiler Support for Sparse Tensor Convolutions · Proc. ACM Program. Lang. 2024
Data models and query languages
sparse tensor algebra
0.212022
Compiler Support for Sparse Tensor Computations in MLIR · ACM Trans. Archit. Code Optim. 2022
Graph data management › graph processing
large-scale graph processing
0.112010
Pregel: a system for large-scale graph processing · SIGMOD Conference 2010
Graph data management › graph processing
vertex-centric computation
0.112010
Pregel: a system for large-scale graph processing · SIGMOD Conference 2010
Distributed systems › fault tolerance
fault-tolerant distributed systems
0.112010
Pregel: a system for large-scale graph processing · SIGMOD Conference 2010
High-performance computing
large-scale graph processing
0.112009
Pregel: a system for large-scale graph processing · PODC 2009
Graph data management
distributed graph processing
0.012009
Pregel: a system for large-scale graph processing · PODC 2009
High-performance computing › sparse linear algebra
sparse matrix computation
0.011999
Automatic Nonzero Structure Analysis · SIAM J. Comput. 1999
Performance modeling and evaluation
workload characterization
0.011999
Automatic Nonzero Structure Analysis · SIAM J. Comput. 1999
Compilers and program optimization
compiler optimization
0.011996
Automatic Data Structure Selection and Transformation for Sparse Matrix Computations · IEEE Trans. Parallel Distributed Syst. 1996
Compilers and program optimization › program transformation
data structure selection
0.011996
Automatic Data Structure Selection and Transformation for Sparse Matrix Computations · IEEE Trans. Parallel Distributed Syst. 1996
Algorithms and data structures › numerical linear algebra
sparse matrix
0.011996
Automatic Data Structure Selection and Transformation for Sparse Matrix Computations · IEEE Trans. Parallel Distributed Syst. 1996
Compilers and program optimization
dependence analysis
0.011993
Advanced compiler optimizations for sparse computations · SC 1993

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

loop generation · 1.5affine subscript expression rewriting · 1.5sparsity-agnostic compilation · 1.1sparse array compilation · 0.8loop fusion · 0.8nonzero structure analysis · 0.0automatic detection algorithms · 0.0compiler transformation · 0.0synchronization generation · 0.0
YearPublicationVenuePosition
2024 Compiler Support for Sparse Tensor Convolutions
abstract
This paper extends prior work on sparse tensor algebra compilers to generate asymptotically efficient code for tensor expressions with affine subscript expressions. Our technique enables compiler support for a wide range of sparse computations, including sparse convolutions and pooling that are widely used in ML and graphics applications. We propose an approach that gradually rewrites compound subscript expressions to simple subscript expressions with loops that exploit the sparsity pattern of the input sparse tensors. As a result, the time complexity of the generated kernels is bounded by the number of stored elements and not by the shape of the tensors. Our approach seamlessly integrates into existing frameworks and is compatible with recent advances in compilers for sparse computations, including the flexibility to efficiently handle arbitrary combinations of different sparse tensor formats. The implementation of our algorithm is open source and upstreamed to the MLIR sparse compiler. Experimental results show that our method achieves 19.5x speedup when compared with the state-of-the-art compiler-based method at 99.9% sparsity. The generated sparse kernels start to outperform dense convolution implementations at about 80% sparsity
Peiming Liu, Alexander J. Root, Anlun Xu, Yinying Li, Fredrik Kjolstad, Aart J. C. Bik
Proc. ACM Program. Lang.6
2024 Compilation of Shape Operators on Sparse Arrays
abstract
We show how to build a compiler for a sparse array language that supports shape operators such as reshaping or concatenating arrays, in addition to compute operators. Existing sparse array programming systems implement generic shape operators for only some sparse data structures, reduce shape operators on other data structures to those, and do not support fusion. Our system compiles sparse array expressions to code that efficiently iterates over reshaped views of irregular sparse data structures, without needing to materialize temporary storage for intermediates. Our evaluation shows that our approach generates sparse array code competitive with popular sparse array libraries: our generated shape operators achieve geometric mean speed-ups of 1.66×–15.3× when compared to hand-written kernels in scipy.sparse and 1.67×–651× when compared to generic implementations in pydata/sparse . For operators that require data structure conversions in these libraries, our generated code achieves geometric mean speed-ups of 7.29×–13.0× when compared to scipy.sparse and 21.3×–511× when compared to pydata/sparse . Finally, our evaluation demonstrates that fusing shape and compute operators improves the performance of several expressions by geometric mean speed-ups of 1.22×–2.23×.
Alexander J. Root, Bobby Yan, Peiming Liu, Christophe Gyurgyik, Aart J. C. Bik, Fredrik Kjolstad
Proc. ACM Program. Lang.5
2022 Compiler Support for Sparse Tensor Computations in MLIR
abstract
Sparse tensors arise in problems in science, engineering, machine learning, and data analytics. Programs that operate on such tensors can exploit sparsity to reduce storage requirements and computational time. Developing and maintaining sparse software by hand, however, is a complex and error-prone task. Therefore, we propose treating sparsity as a property of tensors, not a tedious implementation task, and letting a sparse compiler generate sparse code automatically from a sparsity-agnostic definition of the computation. This article discusses integrating this idea into MLIR.
Aart J. C. Bik, Penporn Koanantakool, Tatiana Shpeisman, Nicolas Vasilache, Bixia Zheng, Fredrik Kjolstad
ACM Trans. Archit. Code Optim.1
2010 Pregel: a system for large-scale graph processing
abstract
Many practical computing problems concern large graphs. Standard examples include the Web graph and various social networks. The scale of these graphs - in some cases billions of vertices, trillions of edges - poses challenges to their efficient processing. In this paper we present a computational model suitable for this task. Programs are expressed as a sequence of iterations, in each of which a vertex can receive messages sent in the previous iteration, send messages to other vertices, and modify its own state and that of its outgoing edges or mutate graph topology. This vertex-centric approach is flexible enough to express a broad set of algorithms. The model has been designed for efficient, scalable and fault-tolerant implementation on clusters of thousands of commodity computers, and its implied synchronicity makes reasoning about programs easier. Distribution-related details are hidden behind an abstract API. The result is a framework for processing large graphs that is expressive and easy to program.
Grzegorz Malewicz, Matthew H. Austern, Aart J. C. Bik, James C. Dehnert, Ilan Horn, Naty Leiser, Grzegorz Czajkowski
SIGMOD Conference3
2009 Pregel: a system for large-scale graph processing
abstract
No abstract available.
Grzegorz Malewicz, Matthew H. Austern, Aart J. C. Bik, James C. Dehnert, Ilan Horn, Naty Leiser, Grzegorz Czajkowski
PODC3
2009 Pregel: a system for large-scale graph processing
abstract
No abstract available.
Grzegorz Malewicz, Matthew H. Austern, Aart J. C. Bik, James C. Dehnert, Ilan Horn, Naty Leiser, Grzegorz Czajkowski
SPAA3
2006 Multimedia vectorization of floating-point MIN/MAX reductions
abstract
Abstract Finding the minimum or maximum value in an array forms an important step in a variety of applications. This paper discusses vectorization schemes that take advantage of the streaming‐SIMD‐extensions in commonly used floating‐point MIN and MAX reductions. Performance advantages are demonstrated with experimental results. Copyright © 2006 John Wiley & Sons, Ltd.
Aart J. C. Bik, Xinmin Tian, Milind Girkar
Concurr. Comput. Pract. Exp.1
2005 Practical Compiler Techniques on Efficient Multithreaded Code Generation for OpenMP Programs
abstract
State-of-the-art multiprocessor systems pose several difficulties: (i) the user has to parallelize the existing serial code; (ii) explicitly threaded programs using a thread library are not portable; (iii) writing efficient multi-threaded programs requires intimate knowledge of machine's architecture and micro-architecture. Thus, well-tuned parallelizing compilers are in high demand to leverage state-of-the-art computer advances of NUMA-based multiprocessors, simultaneous multi-threading processors and chip-multiprocessor systems in response to the performance quest from the high-performance computing community. On the other hand, OpenMP* has emerged as the industry standard parallel programming model. Applications can be parallelized using OpenMP with less effort in a way that is portable across a wide range of multiprocessor systems. In this paper, we present several practical compiler optimization techniques and discuss their effect on the performance of OpenMP programs. We elaborate on the major design considerations in a high performance OpenMP compiler and present experimental data based on the implementation of the optimizations in the Intel® C++ and Fortran compilers. Interactions of the OpenMP transformation with other sequential optimizations in the compiler are discussed. The techniques in this paper have achieved significant performance improvements on the industry standard SPEC* OMPM2001 and SPEC* OMPL2001 benchmarks, and these performance results are presented for Intel® Pentium® and Itanium® processor based systems.
Xinmin Tian, Milind Girkar, Aart J. C. Bik, Hideki Saito 0001
Comput. J.3
1999 Automatic Nonzero Structure Analysis
abstract
The efficiency of sparse codes heavily depends on the size and structure of the input data. Peculiarities of the nonzero structure of each sparse matrix must be accounted for to avoid unsatisfying performance. Therefore, it is important to have an efficient analyzer that automatically determines characteristics of nonzero structures. In this paper, some efficient algorithms are presented that automatically detect particular nonzero structures.
Aart J. C. Bik, Harry A. G. Wijshoff
SIAM J. Comput.1
1998 A prototype bytecode parallelization tool
abstract
This paper provides a manual for javab, a prototype tool that supports the automatic detection and exploitation of implicit loop parallelism in JVM bytecode. Implicit parallelism is made explicit by means of the multi-threading mechanism provided by the JVM. Automatically exploiting implicit parallelism at bytecode level can be done independently from the source program and platform from which the bytecode was obtained, and independently from the platform on which the bytecode eventually will run. The parallelized bytecode remains architecturally neutral and may exhibit speedup on any platform that supports the true parallel execution of JVM threads. This project is supported by DARPA under contract ARPA F19628–94–C–0057 through a sub-contract from Syracuse University. © 1998 John Wiley & Sons, Ltd.
Aart J. C. Bik, Dennis Gannon
Concurr. Pract. Exp.1
1998 The Automatic Generation of Sparse Primitives
abstract
Primitives in mathematical software are usually written and optimized by hand. With the implementation of a “sparse compiler” that is capable of automatically converting a dense program into sparse code, however, a completely different approach to the generation of sparse primitives can be taken. A dense implementation of a particular primitive is supplied to the sparse compiler, after which it can be converted into many different sparse versions of this primitive. Each version is specifically tailored to a class of sparse matrices having a specific nonzero structure. In this article, we discuss some of our experiences with this new approach.
Aart J. C. Bik, Peter Brinkhaus, Peter M. W. Knijnenburg, Harry A. G. Wijshoff
ACM Trans. Math. Softw.1
1997 A Note on Native Level 1 BLAS in Java
abstract
In this research note, we explore the potential of extending the Java Application Programming Interface with some mathematical primitives to improve the performance of certain operations in Java programs while maintaining portability. In particular, we show that providing straightforward native implementations of primitives from Level 1 BLAS can already improve the performance substantially. On multi-processors, combining this native Level 1 BLAS with the multi-threading mechanism of Java may even provide a simple and portable way to obtain a Java program that runs faster than compiled serial C code. © 1997 John Wiley & Sons, Ltd.
Aart J. C. Bik, Dennis Gannon
Concurr. Pract. Exp.1
1997 Automatically exploiting implicit parallelism in Java
abstract
In this paper we show how implicit parallelism in Java programs can be made explicit by a restructuring compiler using the multi-threading mechanism of the language. In particular, we focus on automatically exploiting implicit parallelism in loops and multi-way recursive methods. Expressing parallelism in Java itself clearly has the advantage that the transformed program remains portable. After compilation of the transformed Java program into byte-code, speedup can be obtained on any platform on which the Java byte-code interpreter supports the true parallel execution of threads. Moreover, we will see that the transformations presented in this paper only induce a slight overhead on uni-processors. © 1997 John Wiley & Sons, Ltd.
Aart J. C. Bik, Dennis Gannon
Concurr. Pract. Exp.1
1997 javar: A Prototype Java Restructuring Compiler
abstract
This paper describes the prototype restructuring compiler javar, which can be used to make implicit parallelism in a Java program explicit by means of multi-threading. Although the prototype does not provide a complete Java front-end (unicode escapes are not supported and only limited semantic analysis has been implemented) and relies completely on the identification of ‘implicit’ parallelism by means of annotations, we hope that the research tool still provides sufficient functionality to make the parallelization of Java programs less complex and less error-prone. © 1997 John Wiley & Sons, Ltd.
Aart J. C. Bik, Juan E. Villacis, Dennis Gannon
Concurr. Pract. Exp.1
1997 Iteration space partitioning
Aart J. C. Bik, Harry A. G. Wijshoff
Future Gener. Comput. Syst.1
1996 The Use of Iteration Space Partitioning to Construct Representative Simple Sections
Aart J. C. Bik, Harry A. G. Wijshoff
J. Parallel Distributed Comput.1
1996 Automatic Data Structure Selection and Transformation for Sparse Matrix Computations
abstract
The problem of compiler optimization of sparse codes is well known and no satisfactory solutions have been found yet. One of the major obstacles is formed by the fact that sparse programs explicitly deal with particular data structures selected for storing sparse matrices. This explicit data structure handling obscures the functionality of a code to such a degree that optimization of the code is prohibited, for instance, by the introduction of indirect addressing. The method presented in this paper delays data structure selection until the compile phase, thereby allowing the compiler to combine code optimization with explicit data structure selection. This method enables the compiler to generate efficient code for sparse computations. Moreover, the task of the programmer is greatly reduced in complexity.
Aart J. C. Bik, Harry A. G. Wijshoff
IEEE Trans. Parallel Distributed Syst.1
1995 Construction of Representative Simple Sections
Aart J. C. Bik, Harry A. G. Wijshoff
ICPP (2)1
1995 Advanced Compiler Optimizations for Sparse Computations
Aart J. C. Bik, Harry A. G. Wijshoff
J. Parallel Distributed Comput.1
1994 Nonzero structure analysis
abstract
Because the efficiency of sparse codes is very much dependent on the size and structure of input data, peculiarities of the nonzero structures of sparse matrices must be accounted for in order to avoid unsatisfying performance. Usually, this implies retargeting a sparse application to specific instances of the same problem. However, if characteristics of the input data are collected at compile-time and used in the data structure selection and code generation by a compiler that converts dense programs into sparse programs automatically, the complexity of sparse code development can be greatly reduced, and an efficient way for this retargeting results. Such a “sparse compiler” requires an analysis engine, which is the topic of this paper.
Aart J. C. Bik, Harry A. G. Wijshoff
International Conference on Supercomputing1
1993 Compilation Techniques for Sparse Matrix Computations
abstract
The problem of compiler optimization of sparse codes is well known and no satisfactory solutions have been found yet. One of the major obstacles is formed by the fact that sparse programs deal explicitly with the particular data structures selected for storing sparse matrices. This explicit data structure handling obscures the functionality of a code to such a degree that the optimization of the code is prohibited, e.g. by the introduction of indirect addressing. The method presented in this paper postpones data structure selection until the compile phase, thereby allowing the compiler to combine code optimization with explicit data structure selection. Not only enables this method the compiler to generate efficient code for sparse computations, also the task of the programmer is greatly reduced in complexity.
Aart J. C. Bik, Harry A. G. Wijshoff
International Conference on Supercomputing1
1993 Advanced compiler optimizations for sparse computations
abstract
Regular data dependence checking onsparsecodesusually resultsin very conservative estimates of actual dependences that will occur at run-time.Clearly, this is caused by the usage of compact data structures that are necessary to exploit sparsity in order to reduce storage requirements and computational time.However, if the compiler is presented with dense code and automatically converts it into code that operates on sparse data structures, then the dependence information obtained by analysis on the original code can be used to exploit potential concurrency inthe generated code.In this paper we present synch~onization generating and manipulating techniques that are based on this concept. PreliminariesIn this section we summarize data dependence theory, and discuss the elimination of dependence by automatic conversion into sparse code.
Aart J. C. Bik, Harry A. G. Wijshoff
SC1