Matteo Frigo

dblp:41/6052 · DBLP profile ↗
← Back
17ranked-venue papers
12as first author
0since 2021 · last 2020
—ORCID · conflict

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

Systems, architecture and hardware · 9 · 5 first-authorTheory of computation · 3 · 3 first-authorSoftware engineering, systems software and programming languages · 2 · 2 first-authorApplied, interdisciplinary, general and emerging computing · 2 · 1 first-authorGraphics, computer vision, multimedia, augmented reality and games · 1 · 1 first-author

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.

Computer architecture, parallel and distributed computing, and storage systems
7 papers
Storage systems · 55% Distributed systems · 22% Cloud and datacenter computing · 9%
Theoretical computer science
2 papers
Algorithms and data structures · 54% Computational complexity · 46%

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

TopicWeightPapersLastEvidence papers
Distributed systems
consensus
0.412020
Everyone Loves File: Oracle File Storage Service · ACM Trans. Storage 2020
Storage systems › file systems
distributed file system
0.412020
Everyone Loves File: Oracle File Storage Service · ACM Trans. Storage 2020
Storage systems
file systems
0.412020
Everyone Loves File: Oracle File Storage Service · ACM Trans. Storage 2020
Distributed systems › consensus
paxos
0.412020
Everyone Loves File: Oracle File Storage Service · ACM Trans. Storage 2020
Storage systems › file systems
snapshot
0.412020
Everyone Loves File: Oracle File Storage Service · ACM Trans. Storage 2020
Storage systems › file systems › distributed file system
cloud file system
0.412019
Everyone Loves File: File Storage Service (FSS) in Oracle Cloud Infrastructure · USENIX ATC 2019
Cloud and datacenter computing
cloud storage
0.412019
Everyone Loves File: File Storage Service (FSS) in Oracle Cloud Infrastructure · USENIX ATC 2019
Storage systems › distributed storage
distributed file storage
0.412019
Everyone Loves File: File Storage Service (FSS) in Oracle Cloud Infrastructure · USENIX ATC 2019
Memory systems › memory hierarchy
cache hierarchy
0.222012
Cache-Oblivious Algorithms · ACM Trans. Algorithms 2012
Cache-Oblivious Algorithms · FOCS 1999
Memory systems › cache
cache-oblivious algorithms
0.222012
Cache-Oblivious Algorithms · ACM Trans. Algorithms 2012
Cache-Oblivious Algorithms · FOCS 1999
Computational complexity › algebraic complexity
matrix multiplication
0.112012
Cache-Oblivious Algorithms · ACM Trans. Algorithms 2012
Algorithms and data structures › sequence algorithms
sorting
0.112012
Cache-Oblivious Algorithms · ACM Trans. Algorithms 2012
Compilers and program optimization
code generation
0.122005
The Design and Implementation of FFTW3 · Proc. IEEE 2005
A Fast Fourier Transform Compiler · PLDI 1999
High-performance computing
fast fourier transform
0.122005
The Design and Implementation of FFTW3 · Proc. IEEE 2005
A Fast Fourier Transform Compiler · PLDI 1999
Parallel and multicore computing › data parallelism
SIMD vectorization
0.112005
The Design and Implementation of FFTW3 · Proc. IEEE 2005
Performance modeling and evaluation
cache model
0.012012
Cache-Oblivious Algorithms · ACM Trans. Algorithms 2012
Compilers and program optimization
domain-specific compilation
0.011999
A Fast Fourier Transform Compiler · PLDI 1999
Memory systems
memory hierarchy
0.011999
Cache-Oblivious Algorithms · FOCS 1999
Algorithms and data structures › memory hierarchy
external memory algorithms
0.011999
Cache-Oblivious Algorithms · FOCS 1999
Compilers and program optimization › compiler construction
compilation strategies
0.011998
The Implementation of the Cilk-5 Multithreaded Language · PLDI 1998
Parallel and multicore computing
parallel programming models
0.011998
The Implementation of the Cilk-5 Multithreaded Language · PLDI 1998
Parallel and multicore computing
parallel programming runtimes
0.011998
The Implementation of the Cilk-5 Multithreaded Language · PLDI 1998
Parallel and multicore computing › load balancing › dynamic load balancing
work stealing
0.011998
The Implementation of the Cilk-5 Multithreaded Language · PLDI 1998
Concurrent programming › synchronization
mutual exclusion
0.011998
The Implementation of the Cilk-5 Multithreaded Language · PLDI 1998

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

versioned key-value pairs · 0.4paxos · 0.4nonblocking lock-free programming · 0.4ideal-cache model · 0.3LRU replacement · 0.3empirical evaluation · 0.0asymptotic analysis · 0.0work-stealing scheduling · 0.0dijkstra-like mutual-exclusion protocol · 0.0
YearPublicationVenuePosition
2020 A unified framework for multimodal structure-function mapping based on eigenmodes
Samuel Deslauriers-Gauthier, Mauro Zucchelli, Matteo Frigo, Rachid Deriche
Medical Image Anal.3
2020 Everyone Loves File: Oracle File Storage Service
abstract
Oracle File Storage Service (FSS) is an elastic filesystem provided as a managed NFS service. A pipelined Paxos implementation underpins a scalable block store that provides linearizable multipage limited-size transactions. Above the block store, a scalable B-tree holds filesystem metadata and provides linearizable multikey limited-size transactions. Self-validating B-tree nodes and housekeeping operations performed as separate transactions allow each key in a B-tree transaction to require only one page in the underlying block transaction. The filesystem provides snapshots by using versioned key-value pairs. The system is programmed using a nonblocking lock-free programming style. Presentation servers maintain no persistent local state making them scalable and easy to failover. A non-scalable Paxos-replicated hash table holds configuration information required to bootstrap the system. An additional B-tree provides conversational multi-key minitransactions for control-plane information. The system throughput can be predicted by comparing an estimate of the network bandwidth needed for replication to the network bandwidth provided by the hardware. Latency on an unloaded system is about 4 times higher than a Linux NFS server backed by NVMe, reflecting the cost of replication. FSS has been in production since January 2018 and holds tens of thousands of customer file systems comprising many petabytes of data.
Bradley C. Kuszmaul, Matteo Frigo, Justin Mazzola Paluska, Alexander (Sasha) Sandler
ACM Trans. Storage2
2019 Everyone Loves File: File Storage Service (FSS) in Oracle Cloud Infrastructure
Bradley C. Kuszmaul, Matteo Frigo, Justin Mazzola Paluska, Alexander (Sasha) Sandler
USENIX ATC2
2012 Cache-Oblivious Algorithms
abstract
This article presents asymptotically optimal algorithms for rectangular matrix transpose, fast Fourier transform (FFT), and sorting on computers with multiple levels of caching. Unlike previous optimal algorithms, these algorithms are cache oblivious : no variables dependent on hardware parameters, such as cache size and cache-line length, need to be tuned to achieve optimality. Nevertheless, these algorithms use an optimal amount of work and move data optimally among multiple levels of cache. For a cache with size M and cache-line length B where M = Ω ( B 2 ), the number of cache misses for an m × n matrix transpose is Θ (1 + mn / B ). The number of cache misses for either an n -point FFT or the sorting of n numbers is Θ (1 + ( n / B )(1 + log M n )). We also give a Θ ( mnp )-work algorithm to multiply an m × n matrix by an n × p matrix that incurs Θ (1 + ( mn + np + mp )/ B + mnp / B √ M ) cache faults. We introduce an “ideal-cache” model to analyze our algorithms. We prove that an optimal cache-oblivious algorithm designed for two levels of memory is also optimal for multiple levels and that the assumption of optimal replacement in the ideal-cache model can be simulated efficiently by LRU replacement. We offer empirical evidence that cache-oblivious algorithms perform well in practice.
Matteo Frigo, Charles E. Leiserson, Harald Prokop, Sridhar Ramachandran
ACM Trans. Algorithms1
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
SPAA3
2009 Reducers and other Cilk++ hyperobjects
abstract
This paper introduces hyperobjects, a linguistic mechanism that allows different branches of a multithreaded program to maintain coordinated local views of the same nonlocal variable. We have identified three kinds of hyperobjects that seem to be useful -- reducers, holders, and splitters -- and we have implemented reducers and holders in Cilk++, a set of extensions to the C++ programming language that enables "dynamic" multithreaded programming in the style of MIT Cilk. We analyze a randomized locking methodology for reducers and show that a work-stealing scheduler can support reducers without incurring significant overhead.
Matteo Frigo, Pablo Halpern, Charles E. Leiserson, Stephen Lewin-Berlin
SPAA1
2009 The Cache Complexity of Multithreaded Cache Oblivious Algorithms
Matteo Frigo, Volker Strumpen
Theory Comput. Syst.1
2007 The memory behavior of cache oblivious stencil computations
Matteo Frigo, Volker Strumpen
J. Supercomput.1
2006 The cache complexity of multithreaded cache oblivious algorithms
abstract
We present a technique for analyzing the number of cache misses incurred by multithreaded cache oblivious algorithms on an idealized parallel machine in which each processor has a private cache. We specialize this technique to computations executed by the Cilk work-stealing scheduler on a machine with dag-consistent shared memory. We show that a multithreaded cache oblivious matrix multiplication incurs O(n3/√Z + (Pn)1/3n2) cache misses when executed by the Cilk scheduler on a machine with P processors, each with a cache of size Z, with high probability. This bound is tighter than previously published bounds. We also present a new multithreaded cache oblivious algorithm for 1D stencil computations, which incurs O(n2/Z+n+√Pn3+ε) cache misses with high probability.
Matteo Frigo, Volker Strumpen
SPAA1
2005 Cache oblivious stencil computations
abstract
We present a cache oblivious algorithm for stencil computations, which arise for example in finite-difference methods. Our algorithm applies to arbitrary stencils in n-dimensional spaces. On an "ideal cache" of size Z, our algorithm saves a factor of Θ(Z1/n) cache misses compared to a naive algorithm, and it exploits temporal locality optimally throughout the entire memory hierarchy.
Matteo Frigo, Volker Strumpen
ICS1
2005 The Design and Implementation of FFTW3
abstract
FFTW is an implementation of the discrete Fourier transform (DFT) that adapts to the hardware in order to maximize performance. This paper shows that such an approach can yield an implementation that is competitive with hand-optimized libraries, and describes the software structure that makes our current FFTW3 version flexible and adaptive. We further discuss a new algorithm for real-data DFTs of prime size, a new way of implementing DFTs by means of machine-specific single-instruction, multiple-data (SIMD) instructions, and how a special-purpose compiler can derive optimized implementations of the discrete cosine and sine transforms automatically from a DFT algorithm.
Matteo Frigo, Steven G. Johnson
Proc. IEEE1
1999 Cache-Oblivious Algorithms
abstract
This paper presents asymptotically optimal algorithms for rectangular matrix transpose, FFT, and sorting on computers with multiple levels of caching. Unlike previous optimal algorithms, these algorithms are cache oblivious: no variables dependent on hardware parameters, such as cache size and cache-line length, need to be tuned to achieve optimality. Nevertheless, these algorithms use an optimal amount of work and move data optimally among multiple levels of cache. For a cache with size Z and cache-line length L where Z=/spl Omega/(L/sup 2/) the number of cache misses for an m/spl times/n matrix transpose is /spl Theta/(1+mn/L). The number of cache misses for either an n-point FFT or the sorting of n numbers is /spl Theta/(1+(n/L)(1+log/sub Z/n)). We also give an /spl Theta/(mnp)-work algorithm to multiply an m/spl times/n matrix by an n/spl times/p matrix that incurs /spl Theta/(1+(mn+np+mp)/L+mnp/L/spl radic/Z) cache faults. We introduce an "ideal-cache" model to analyze our algorithms. We prove that an optimal cache-oblivious algorithm designed for two levels of memory is also optimal for multiple levels and that the assumption of optimal replacement in the ideal-cache model. Can be simulated efficiently by LRU replacement. We also provide preliminary empirical results on the effectiveness of cache-oblivious algorithms in practice.
Matteo Frigo, Charles E. Leiserson, Harald Prokop, Sridhar Ramachandran
FOCS1
1999 A Fast Fourier Transform Compiler
abstract
The FFTW library for computing the discrete Fourier transform (DFT) has gained a wide acceptance in both academia and industry, because it provides excellent performance on a variety of machines (even competitive with or faster than equivalent libraries supplied by vendors). In FFTW, most of the performance-critical code was generated automatically by a special-purpose compiler, called genfft, that outputs C code. Written in Objective Caml, genfft can produce DFT programs for any input length, and it can specialize the DFT program for the common case where the input data are real instead of complex. Unexpectedly, genfft "discovered" algorithms that were previously unknown, and it was able to reduce the arithmetic complexity of some other existing algorithms. This paper describes the internals of this special-purpose compiler in some detail, and it argues that a specialized compiler is a valuable tool.
Matteo Frigo
PLDI1
1998 FFTW: an adaptive software architecture for the FFT
abstract
FFT literature has been mostly concerned with minimizing the number of floating-point operations performed by an algorithm. Unfortunately, on present-day microprocessors this measure is far less important than it used to be, and interactions with the processor pipeline and the memory hierarchy have a larger impact on performance. Consequently, one must know the details of a computer architecture in order to design a fast algorithm. In this paper, we propose an adaptive FFT program that tunes the computation automatically for any particular hardware. We compared our program, called FFTW, with over 40 implementations of the FFT on 7 machines. Our tests show that FFTW's self-optimizing approach usually yields significantly better performance than all other publicly available software. FFTW also compares favorably with machine-specific, vendor-optimized libraries.
Matteo Frigo, Steven G. Johnson
ICASSP1
1998 The Implementation of the Cilk-5 Multithreaded Language
abstract
The fifth release of the multithreaded language Cilk uses a provably good "work-stealing" scheduling algorithm similar to the first system, but the language has been completely redesigned and the runtime system completely reengineered. The efficiency of the new implementation was aided by a clear strategy that arose from a theoretical analysis of the scheduling algorithm: concentrate on minimizing overheads that contribute to the work, even at the expense of overheads that contribute to the critical path. Although it may seem counterintuitive to move overheads onto the critical path, this "work-first" principle has led to a portable Cilk-5 implementation in which the typical cost of spawning a parallel thread is only between 2 and 6 times the cost of a C function call on a variety of contemporary machines. Many Cilk programs run on one processor with virtually no degradation compared to equivalent C programs. This paper describes how the work-first principle was exploited in the design of Cilk-5's compiler and its runtime system. In particular, we present Cilk-5's novel "two-clone" compilation strategy and its Dijkstra-like mutual-exclusion protocol for implementing the ready deque in the work-stealing scheduler.
Matteo Frigo, Charles E. Leiserson, Keith H. Randall
PLDI1
1998 Computation-Centric Memory Models
abstract
We present a computation-centric theory of memory models.Unlike traditional processor-centric models, computation-centric models focus on the logical dependencies among instructions rather than the processor that happens to execute them.This theory allows us to define what a memory model is, and to investigate abstract properties of memory models.In particular, we focus on constructibility, which is a necessary property of those models that can be implemented exactly by an online algorithm.For a nonconstructible model, we show that there is a natural way to define the constructible version of that model.We explore the implications of constructibility in the context of dag-consistent memory models, which do not require that memory locations be serialized.The strongest dag-consistent model, called NN-dag consistency, is not constructible.However, its constructible version is equivalent to a model that we call locution consistency, in which each location is serialized independently.
Matteo Frigo, Victor Luchangco
SPAA1
1996 An Analysis of Dag-Consistent Distributed Shared-Memory Algorithms
abstract
In this paper, we analyze the performance of parallel mttltithreaded algorithms that use dag-consistent distributed shared memory.Specifically, we analyze execution time, page faults, and space requirements for multithreaded algorithms executed by a workstealing thread scheduler and the BACKER coherence algorithm for maintaining dag consistency.We prove that if the accesses to the backing store are random and independent (the BACKER algorithm actually uses hashing), then the expected execution time of a "fully strict" multithreaded computation on P processors, each with an LRU cache of C pages, is O(T1 (C)/P+ ntC7"), where T1(C) is the total work of the computation including page faults, L is its criticalpath length excluding page faults, and m is the minimum page transfer time.As a corollary to this theorem, we show that the expected number of page faults incurred by a computation executed on P pro-
Robert D. Blumofe, Matteo Frigo, Christopher F. Joerg, Charles E. Leiserson, Keith H. Randall
SPAA2