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

Vasileios Trigonakis

dblp:93/11190 · DBLP profile ↗
← Back
13ranked-venue papers
1as first author
1since 2021 · last 2021
0009-0009-9796-2620ORCID · corroborated

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

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

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
8 papers
Memory systems · 26% Storage systems · 22% Parallel and multicore computing · 20%
Software engineering, system software, and programming languages
5 papers
Concurrent programming · 100%
Databases, data mining, and information retrieval
2 papers
Graph data management · 85% Indexing and storage engines · 15%

Topics — the 18 heaviest of 21, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Concurrent programming
synchronization
1.042018
Lock-Unlock: Is That All? A Pragmatic Analysis of Locking in Software Systems · ACM Trans. Comput. Syst. 2018
Optimistic concurrency with OPTIK · PPoPP 2016
Asynchronized Concurrency: The Secret to Scaling Concurrent Search Data Structures · ASPLOS 2015
Graph data management › graph query processing
distributed graph queries
0.512021
aDFS: An Almost Depth-First-Search Distributed Graph-Querying System · USENIX ATC 2021
Concurrent programming › synchronization
mutex lock
0.312018
Lock-Unlock: Is That All? A Pragmatic Analysis of Locking in Software Systems · ACM Trans. Comput. Syst. 2018
Storage systems
key-value storage
0.312017
FloDB: Unlocking Memory in Persistent Key-Value Stores · EuroSys 2017
Storage systems › key-value storage
LSM-tree
0.312017
FloDB: Unlocking Memory in Persistent Key-Value Stores · EuroSys 2017
Memory systems › non-volatile memory
persistent memory
0.312017
FloDB: Unlocking Memory in Persistent Key-Value Stores · EuroSys 2017
Concurrent programming
concurrent data structures
0.212016
Optimistic concurrency with OPTIK · PPoPP 2016
Concurrent programming › concurrency control
optimistic concurrency control
0.212016
Optimistic concurrency with OPTIK · PPoPP 2016
Energy-efficient computing
energy management
0.212016
Unlocking Energy · USENIX ATC 2016
Parallel and multicore computing
concurrent data structures
0.212015
Asynchronized Concurrency: The Secret to Scaling Concurrent Search Data Structures · ASPLOS 2015
Memory systems
cache coherence
0.222013
Everything you always wanted to know about synchronization but were afraid to ask · SOSP 2013
TM2C: a software transactional memory for many-cores · EuroSys 2012
Processor architecture and microarchitecture
many-core architecture
0.222013
TM2C: a software transactional memory for many-cores · EuroSys 2012
Everything you always wanted to know about synchronization but were afraid to ask · SOSP 2013
Memory systems › cache coherence
cache coherence protocol
0.212013
Everything you always wanted to know about synchronization but were afraid to ask · SOSP 2013
Distributed systems › distributed database
distributed query processing
0.112021
aDFS: An Almost Depth-First-Search Distributed Graph-Querying System · USENIX ATC 2021
Concurrent programming › transactional memory
software transactional memory
0.112012
TM2C: a software transactional memory for many-cores · EuroSys 2012
Concurrent programming
transactional memory
0.112012
TM2C: a software transactional memory for many-cores · EuroSys 2012
High-performance computing › performance engineering
performance portability
0.112017
Abstracting Multi-Core Topologies with MCTOP · EuroSys 2017
Processor architecture and microarchitecture
multicore design
0.012013
Everything you always wanted to know about synchronization but were afraid to ask · SOSP 2013

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

tail latency analysis · 0.7performance study · 0.7log-structured merge · 0.6performance benchmarking · 0.4lock-free synchronization · 0.4synchronization study · 0.3cache coherence protocol · 0.3topology abstraction · 0.3version numbers · 0.2lock-free techniques · 0.2OPTIK locks · 0.2
YearPublicationVenuePosition
2021 aDFS: An Almost Depth-First-Search Distributed Graph-Querying System
Vasileios Trigonakis, Jean-Pierre Lozi, Tomás Faltín, Nicholas P. Roth, Iraklis Psaroudakis, Arnaud Delamare, Vlad Haprian, Calin Iorgulescu, Petr Koupy, Jinsoo Lee, Sungpack Hong, Hassan Chafi
USENIX ATC1
2020 Thread-Placement Learning
abstract
In a non-uniform memory access machine, the placement of software threads to hardware cores can have a significant effect on the performance of concurrent applications. Detecting the best possible placement for each application is a necessity for thread scheduling. Yet, due to the difficulty of this problem, operating-system schedulers do not really try to understand the needs of applications, but rather focus on (non-portable) scheduling heuristics. In this paper, we introduce thread-placement learning (TPLE), a technique for understanding the placement requirements of applications. TPLE utilizes machine learning and performance counters for choosing between different placement policies. To feed the machine learning model, TPLE requires a set of portable microbenchmarks that produce training data-i.e., performance counter measurements-for all the target placement policies. We use this data to train a classifier that is able to choose between these policies online in order to change the thread-placement of a running application. We demonstrate the practicality of TPLE by implementing a thread-placement algorithm, named Slate. Slate is able to automatically and online (i.e., in runtime) select between the two most commonly-used placement policies, namely locality and round-robin placement on the nodes of a multicore. To the best of our knowledge, Slate is the first online thread-placement algorithm that utilizes machine learning in combination with performance counters. We evaluate Slate and show that it achieves up to 93% accuracy in its decisions and outperforms the Linux scheduler by up to 16%.
Karolos Antoniadis, Rachid Guerraoui, Vasileios Trigonakis
ICDCS3
2020 CSR++: A Fast, Scalable, Update-Friendly Graph Data Structure
abstract
The graph model enables a broad range of analysis, thus graph processing is an invaluable tool in data analytics. At the heart of every graph-processing system lies a concurrent graph data structure storing the graph. Such a data structure needs to be highly efficient for both graph algorithms and queries. Due to the continuous evolution, the sparsity, and the scale-free nature of real-world graphs, graph-processing systems face the challenge of providing an appropriate graph data structure that enables both fast analytical workloads and low-memory graph mutations. Existing graph structures offer a hard trade-off between read-only performance, update friendliness, and memory consumption upon updates. In this paper, we introduce CSR++, a new graph data structure that removes these trade-offs and enables both fast read-only analytics and quick and memory-friendly mutations. CSR++ combines ideas from CSR, the fastest read-only data structure, and adjacency lists to achieve the best of both worlds. We compare CSR++ to CSR, adjacency lists from the Boost Graph Library, and LLAMA, a state-of-the-art update-friendly graph structure. In our evaluation, which is based on popular graph-processing algorithms executed over real-world graphs, we show that CSR++ remains close to CSR in read-only concurrent performance (within 10% on average), while significantly outperforming CSR (by an order of magnitude) and LLAMA (by almost 2×) with frequent updates.
Soukaina Firmli, Vasileios Trigonakis, Jean-Pierre Lozi, Iraklis Psaroudakis, Alexander Weld, Dalila Chiadmi, Sungpack Hong, Hassan Chafi
OPODIS2
2018 TM2C: a software transactional memory for many-cores
Vincent Gramoli, Rachid Guerraoui, Vasileios Trigonakis
Distributed Comput.3
2018 Lock-Unlock: Is That All? A Pragmatic Analysis of Locking in Software Systems
abstract
A plethora of optimized mutex lock algorithms have been designed over the past 25 years to mitigate performance bottlenecks related to critical sections and locks. Unfortunately, there is currently no broad study of the behavior of these optimized lock algorithms on realistic applications that consider different performance metrics, such as energy efficiency and tail latency. In this article, we perform a thorough and practical analysis of synchronization, with the goal of providing software developers with enough information to design fast, scalable, and energy-efficient synchronization in their systems. First, we perform a performance study of 28 state-of-the-art mutex lock algorithms, on 40 applications, on four different multicore machines. We consider not only throughput (traditionally the main performance metric) but also energy efficiency and tail latency, which are becoming increasingly important. Second, we present an in-depth analysis in which we summarize our findings for all the studied applications. In particular, we describe nine different lock-related performance bottlenecks, and we propose six guidelines helping software developers with their choice of a lock algorithm according to the different lock properties and the application characteristics. From our detailed analysis, we make several observations regarding locking algorithms and application behaviors, several of which have not been previously discovered: (i) applications stress not only the lock–unlock interface but also the full locking API (e.g., trylocks, condition variables); (ii) the memory footprint of a lock can directly affect the application performance; (iii) for many applications, the interaction between locks and scheduling is an important application performance factor; (vi) lock tail latencies may or may not affect application tail latency; (v) no single lock is systematically the best; (vi) choosing the best lock is difficult; and (vii) energy efficiency and throughput go hand in hand in the context of lock algorithms. These findings highlight that locking involves more considerations than the simple lock/unlock interface and call for further research on designing low-memory footprint adaptive locks that fully and efficiently support the full lock interface, and consider all performance metrics.
Rachid Guerraoui, Hugo Guiroux, Renaud Lachaize, Vivien Quéma, Vasileios Trigonakis
ACM Trans. Comput. Syst.5
2017 FloDB: Unlocking Memory in Persistent Key-Value Stores
abstract
Log-structured merge (LSM) data stores enable to store and process large volumes of data while maintaining good performance. They mitigate the I/O bottleneck by absorbing updates in a memory layer and transferring them to the disk layer in sequential batches. Yet, the LSM architecture fundamentally requires elements to be in sorted order. As the amount of data in memory grows, maintaining this sorted order becomes increasingly costly. Contrary to intuition, existing LSM systems could actually lose throughput with larger memory components.
Oana Balmau, Rachid Guerraoui, Vasileios Trigonakis, Igor Zablotchi
EuroSys3
2017 Abstracting Multi-Core Topologies with MCTOP
abstract
Portability and efficiency are usually antagonists in multi-core computing. In order to develop efficient code, one needs to take into account the topology of the target multi-cores (e.g., for locality). This clearly hampers code portability. In this paper, we show that you can have the cake and eat it too.
Georgios Chatzopoulos, Rachid Guerraoui, Tim Harris 0001, Vasileios Trigonakis
EuroSys4
2016 Locking Made Easy
Jelena Antic, Georgios Chatzopoulos, Rachid Guerraoui, Vasileios Trigonakis
Middleware4
2016 Optimistic concurrency with OPTIK
abstract
We introduce OPTIK, a new practical design pattern for designing and implementing fast and scalable concurrent data structures. OPTIK relies on the commonly-used technique of version numbers for detecting conflicting concurrent operations. We show how to implement the OPTIK pattern using the novel concept of OPTIK locks. These locks enable the use of version numbers for implementing very efficient optimistic concurrent data structures. Existing state-of-the-art lock-based data structures acquire the lock and then check for conflicts. In contrast, with OPTIK locks, we merge the lock acquisition with the detection of conflicting concurrency in a single atomic step, similarly to lock-free algorithms. We illustrate the power of our OPTIK pattern and its implementation by introducing four new algorithms and by optimizing four state-of-the-art algorithms for linked lists, skip lists, hash tables, and queues. Our results show that concurrent data structures built using OPTIK are more scalable than the state of the art.
Rachid Guerraoui, Vasileios Trigonakis
PPoPP2
2016 Unlocking Energy
Babak Falsafi, Rachid Guerraoui, Javier Picorel, Vasileios Trigonakis
USENIX ATC4
2015 Asynchronized Concurrency: The Secret to Scaling Concurrent Search Data Structures
abstract
We introduce "asynchronized concurrency (ASCY)," a paradigm consisting of four complementary programming patterns. ASCY calls for the design of concurrent search data structures (CSDSs) to resemble that of their sequential counterparts. We argue that ASCY leads to implementations which are portably scalable: they scale across different types of hardware platforms, including single and multi-socket ones, for various classes of workloads, such as read-only and read-write, and according to different performance metrics, including throughput, latency, and energy. We substantiate our thesis through the most exhaustive evaluation of CSDSs to date, involving 6 platforms, 22 state-of-the-art CSDS algorithms, 10 re-engineered state-of-the-art CSDS algorithms following the ASCY patterns, and 2 new CSDS algorithms designed with ASCY in mind. We observe up to 30% improvements in throughput in the re-engineered algorithms, while our new algorithms out-perform the state-of-the-art alternatives.
Tudor David, Rachid Guerraoui, Vasileios Trigonakis
ASPLOS3
2013 Everything you always wanted to know about synchronization but were afraid to ask
abstract
This paper presents the most exhaustive study of synchronization to date. We span multiple layers, from hardware cache-coherence protocols up to high-level concurrent software. We do so on different types of architectures, from single-socket -- uniform and non-uniform -- to multi-socket -- directory and broadcast-based -- many-cores. We draw a set of observations that, roughly speaking, imply that scalability of synchronization is mainly a property of the hardware.
Tudor David, Rachid Guerraoui, Vasileios Trigonakis
SOSP3
2012 TM2C: a software transactional memory for many-cores
abstract
Transactional memory is an appealing paradigm for concurrent programming. Many software implementations of the paradigm were proposed in the last decades for both shared memory multi-core systems and clusters of distributed machines. However, chip manufacturers have started producing many-core architectures, with low network-on-chip communication latency and limited support for cache-coherence, rendering existing transactional memory implementations inapplicable.
Vincent Gramoli, Rachid Guerraoui, Vasileios Trigonakis
EuroSys3