Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Christopher Barton

dblp:07/4283 · DBLP profile ↗
← Back
6ranked-venue papers
2as first author
2since 2021 · last 2023
0000-0001-9823-7425ORCID · corroborated

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

Systems, architecture and hardware · 3 · 1 since 2021Software engineering, systems software and programming languages · 3 · 2 first-author · 1 since 2021

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
3 papers
Compilers and program optimization · 62% Concurrent programming · 25% Runtime systems and virtual machines · 13%
Computer architecture, parallel and distributed computing, and storage systems
3 papers
High-performance computing · 55% Parallel and multicore computing · 30% Processor architecture and microarchitecture · 16%

Topics — the 11 heaviest of 12, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Compilers and program optimization › compiler analysis
idiom recognition
0.512021
KernelFaRer: Replacing Native-Code Idioms with High-Performance Library Calls · ACM Trans. Archit. Code Optim. 2021
Compilers and program optimization
program transformation
0.512021
KernelFaRer: Replacing Native-Code Idioms with High-Performance Library Calls · ACM Trans. Archit. Code Optim. 2021
Concurrent programming › transactional memory
hardware transactional memory
0.212015
Software Support and Evaluation of Hardware Transactional Memory on Blue Gene/Q · IEEE Trans. Computers 2015
Concurrent programming
transactional memory
0.212015
Software Support and Evaluation of Hardware Transactional Memory on Blue Gene/Q · IEEE Trans. Computers 2015
Runtime systems and virtual machines › parallel runtime systems
transactional memory runtime
0.212015
Software Support and Evaluation of Hardware Transactional Memory on Blue Gene/Q · IEEE Trans. Computers 2015
High-performance computing
scientific computing systems
0.112021
KernelFaRer: Replacing Native-Code Idioms with High-Performance Library Calls · ACM Trans. Archit. Code Optim. 2021
Processor architecture and microarchitecture › transactional execution
hardware transactional memory support
0.112015
Software Support and Evaluation of Hardware Transactional Memory on Blue Gene/Q · IEEE Trans. Computers 2015
Compilers and program optimization
optimizing compiler
0.112006
Shared memory programming for large scale machines · PLDI 2006
Parallel and multicore computing
parallel programming models
0.112006
Shared memory programming for large scale machines · PLDI 2006
Parallel and multicore computing › parallel programming models › distributed memory programming models
partitioned global address space
0.112006
Shared memory programming for large scale machines · PLDI 2006
High-performance computing
distributed memory systems
0.012006
Shared memory programming for large scale machines · PLDI 2006

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

pattern matching · 1.0LLVM · 1.0software transactional memory · 0.4best-effort HTM · 0.4asynchronous message · 0.1affinity test elimination · 0.1
YearPublicationVenuePosition
2023 Fast matrix multiplication via compiler-only layered data reorganization and intrinsic lowering
abstract
Abstract The resurgence of machine learning has increased the demand for high‐performance basic linear algebra subroutines (BLAS), which have long depended on libraries to achieve peak performance on commodity hardware. High‐performance BLAS implementations rely on a layered approach that consists of tiling and packing layers—for data (re)organization—and micro kernels that perform the actual computations. The algorithm for the tiling and packing layers is target independent but is parameterized to the memory hierarchy and register‐file size. The creation of high‐performance micro kernels requires significant development effort to write tailored assembly code for each architecture. This hand optimization task is complicated by the recent introduction of matrix engines by 's (Matrix Multiply Assist—MMA), (Advanced Matrix eXtensions—AMX), and (Matrix Extensions—ME) to deliver high‐performance matrix operations. This article presents a compiler‐only alternative to the use of high‐performance libraries by incorporating, to the best of our knowledge and for the first time, the automatic generation of the layered approach into LLVM, a production compiler. Modular design of the algorithm, such as the use of LLVM's matrix‐multiply intrinsic for a clear interface between the tiling and packing layers and the micro kernel, makes it easy to retarget the code generation to multiple accelerators. The parameterization of the tiling and packing layers is demonstrated in the generation of code for the MMA unit on IBM's POWER10. This article also describes an algorithm that lowers the matrix‐multiply intrinsic to the MMA unit. The use of intrinsics enables a comprehensive performance study. In processors without hardware matrix engines, the tiling and packing delivers performance up to (Intel)—for small matrices—and more than (POWER9)—for large matrices—faster than PLuTo, a widely used polyhedral optimizer. The performance also approaches high‐performance libraries and is only slower than OpenBLAS and on‐par with Eigen for large matrices. With MMA in POWER10 this solution is, for large matrices, over faster the vector‐extension solution, matches Eigen performance, and achieves up to ofBLASpeak performance.
Braedy Kuzma, Ivan Korostelev, João P. L. de Carvalho, José E. Moreira, Christopher Barton, Guido Araujo, José Nelson Amaral
Softw. Pract. Exp.5
2021 KernelFaRer: Replacing Native-Code Idioms with High-Performance Library Calls
abstract
Well-crafted libraries deliver much higher performance than code generated by sophisticated application programmers using advanced optimizing compilers. When a code pattern for which a well-tuned library implementation exists is found in the source code of an application, the highest performing solution is to replace the pattern with a call to the library. Idiom-recognition solutions in the past either required pattern matching machinery that was outside of the compilation framework or provided a very brittle solution that would fail even for minor variants in the pattern source code. This article introduces Kernel Find & Replacer ( KernelFaRer ), an idiom recognizer implemented entirely in the existing LLVM compiler framework. The versatility of KernelFaRer is demonstrated by matching and replacing two linear algebra idioms, general matrix-matrix multiplication (GEMM), and symmetric rank-2k update (SYR2K). Both GEMM and SYR2K are used extensively in scientific computation, and GEMM is also a central building block for deep learning and computer graphics algorithms. The idiom recognition in KernelFaRer is much more robust than alternative solutions, has a much lower compilation overhead, and is fully integrated in the broadly used LLVM compilation tools. KernelFaRer replaces existing GEMM and SYR2K idioms with computations performed by BLAS, Eigen, MKL (Intel’s x86), ESSL (IBM’s PowerPC), and BLIS (AMD). Gains in performance that reach 2000× over hand-crafted source code compiled at the highest optimization level demonstrate that replacing application code with library call is a performant solution.
João P. L. de Carvalho, Braedy Kuzma, Ivan Korostelev, José Nelson Amaral, Christopher Barton, José E. Moreira, Guido Araujo
ACM Trans. Archit. Code Optim.5
2015 Software Support and Evaluation of Hardware Transactional Memory on Blue Gene/Q
abstract
This paper describes an end-to-end system implementation of a transactional memory (TM) programming model on top of the hardware transactional memory (HTM) of the Blue Gene/Q machine. The TM programming model supports most C/C++ programming constructs using a best-effort HTM and the help of a complete software stack including the compiler, the kernel, and the TM runtime. An extensive evaluation of the STAMP and the RMS-TM benchmark suites on BG/Q is the first of its kind in understanding characteristics of running TM workloads on real hardware TM. The study reveals several interesting insights on the overhead and the scalability of BG/Q HTM with respect to sequential execution, coarse-grain locking, and software TM.
Amy Wang, Matthew Gaudet, Peng Wu 0001, Martin Ohmacht, José Nelson Amaral, Christopher Barton, Raúl Silvera, Maged M. Michael
IEEE Trans. Computers6
2012 Evaluation of blue Gene/Q hardware support for transactional memories
abstract
This paper describes an end-to-end system implementation of the transactional memory (TM) programming model on top of the hardware transactional memory (HTM) of the Blue Gene/Q (BG/Q) machine. The TM programming model supports most C/C++ programming constructs on top of a best-effort HTM with the help of a complete software stack including the compiler, the kernel, and the TM runtime.
Amy Wang, Matthew Gaudet, Peng Wu 0001, José Nelson Amaral, Martin Ohmacht, Christopher Barton, Raúl Silvera, Maged M. Michael
PACT6
2006 Shared memory programming for large scale machines
abstract
This paper describes the design and implementation of a scalable run-time system and an optimizing compiler for Unified Parallel C (UPC). An experimental evaluation on BlueGene/L®, a distributed-memory machine, demonstrates that the combination of the compiler with the runtime system produces programs with performance comparable to that of efficient MPI programs and good performance scalability up to hundreds of thousands of processors.Our runtime system design solves the problem of maintaining shared object consistency efficiently in a distributed memory machine. Our compiler infrastructure simplifies the code generated for parallel loops in UPC through the elimination of affinity tests, eliminates several levels of indirection for accesses to segments of shared arrays that the compiler can prove to be local, and implements remote update operations through a lower-cost asynchronous message. The performance evaluation uses three well-known benchmarks --- HPC RandomAccess, HPC STREAM and NAS CG --- to obtain scaling and absolute performance numbers for these benchmarks on up to 131072 processors, the full BlueGene/L machine. These results were used to win the HPC Challenge Competition at SC05 in Seattle WA, demonstrating that PGAS languages support both productivity and performance.
Christopher Barton, Calin Cascaval, Gheorghe Almási 0001, Yili Zheng, Montse Farreras, Siddhartha Chatterjee, José Nelson Amaral
PLDI1
2005 Generalized Index-Set Splitting
Christopher Barton, Arie Tal, Bob Blainey, José Nelson Amaral
CC1