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

Marcelo Cintra

dblp:73/5470 · DBLP profile ↗
← Back
30ranked-venue papers
1as first author
0since 2021 · last 2018
—ORCID · none

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

Systems, architecture and hardware · 26 · 1 first-authorSoftware engineering, systems software and programming languages · 5 · 1 first-authorDatabases, data management, data science and information retrieval · 2Security and privacy · 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.

Computer architecture, parallel and distributed computing, and storage systems
13 papers
Memory systems · 55% Storage systems · 13% Processor architecture and microarchitecture · 12%
Software engineering, system software, and programming languages
4 papers
Concurrent programming · 88% Compilers and program optimization · 10% Operating systems · 2%

Topics — the 30 heaviest of 46, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Memory systems
non-volatile memory
1.252018
DHTM: Durable Hardware Transactional Memory · ISCA 2018
ATOM: Atomic Durability in Non-volatile Memory through Hardware Logging · HPCA 2017
REWIND: Recovery Write-Ahead System for In-Memory Non-Volatile Data-Structures · Proc. VLDB Endow. 2015
Memory systems
cache coherence
0.842018
DHTM: Durable Hardware Transactional Memory · ISCA 2018
Efficient persist barriers for multicores · MICRO 2015
Software-Based Cache Coherence with Hardware-Assisted Selective Self-Invalidations Using Bloom Filters · IEEE Trans. Computers 2011
Concurrent programming › memory models
fence insertion
0.522016
Fence Placement for Legacy Data-Race-Free Programs via Synchronization Read Detection · ACM Trans. Archit. Code Optim. 2016
Fence placement for legacy data-race-free programs via synchronization read detection · PPoPP 2015
Concurrent programming
memory models
0.522016
Fence Placement for Legacy Data-Race-Free Programs via Synchronization Read Detection · ACM Trans. Archit. Code Optim. 2016
Fence placement for legacy data-race-free programs via synchronization read detection · PPoPP 2015
Parallel and multicore computing › speculative parallelization
thread-level speculation
0.432012
Mixed speculative multithreaded execution models · ACM Trans. Archit. Code Optim. 2012
Complementing user-level coarse-grain parallelism with implicit speculative parallelism · MICRO 2011
Handling branches in TLS systems with Multi-Path Execution · HPCA 2010
Memory systems › non-volatile memory
persistent memory
0.312018
DHTM: Durable Hardware Transactional Memory · ISCA 2018
Memory systems
cache
0.322015
Adaptive Selection of Cache Indexing Bits for Removing Conflict Misses · IEEE Trans. Computers 2015
Stream chaining: exploiting multiple levels of correlation in data prefetching · ISCA 2009
Memory systems › non-volatile memory › persistent memory
atomic durability
0.312017
ATOM: Atomic Durability in Non-volatile Memory through Hardware Logging · HPCA 2017
Storage systems
logging
0.312017
ATOM: Atomic Durability in Non-volatile Memory through Hardware Logging · HPCA 2017
Storage systems
storage reliability
0.312017
ATOM: Atomic Durability in Non-volatile Memory through Hardware Logging · HPCA 2017
Parallel and multicore computing
parallel programming models
0.322012
Autotuning Skeleton-Driven Optimizations for Transactional Worklist Applications · IEEE Trans. Parallel Distributed Syst. 2012
Complementing user-level coarse-grain parallelism with implicit speculative parallelism · MICRO 2011
Processor architecture and microarchitecture
chip multiprocessor
0.232011
Complementing user-level coarse-grain parallelism with implicit speculative parallelism · MICRO 2011
An OS-based alternative to full hardware coherence on tiled CMPs · HPCA 2008
Software-Based Cache Coherence with Hardware-Assisted Selective Self-Invalidations Using Bloom Filters · IEEE Trans. Computers 2011
Memory systems › cache › cache miss
cache conflict misses
0.212015
Adaptive Selection of Cache Indexing Bits for Removing Conflict Misses · IEEE Trans. Computers 2015
Memory systems › cache design
cache indexing
0.212015
Adaptive Selection of Cache Indexing Bits for Removing Conflict Misses · IEEE Trans. Computers 2015
Distributed systems › fault tolerance
failure recovery
0.212015
REWIND: Recovery Write-Ahead System for In-Memory Non-Volatile Data-Structures · Proc. VLDB Endow. 2015
Memory systems
persist barriers
0.212015
Efficient persist barriers for multicores · MICRO 2015
Memory systems › non-volatile memory
persistent data structures
0.212015
REWIND: Recovery Write-Ahead System for In-Memory Non-Volatile Data-Structures · Proc. VLDB Endow. 2015
Memory systems › non-volatile memory
persistent memory consistency
0.212015
Efficient persist barriers for multicores · MICRO 2015
Storage systems › logging
write-ahead logging
0.212015
REWIND: Recovery Write-Ahead System for In-Memory Non-Volatile Data-Structures · Proc. VLDB Endow. 2015
Hardware reliability and fault tolerance
process variation
0.212013
Characterizing the impact of process variation on write endurance enhancing techniques for non-volatile memory systems · SIGMETRICS 2013
Storage systems › flash and SSD › flash memory management
wear leveling
0.212013
Characterizing the impact of process variation on write endurance enhancing techniques for non-volatile memory systems · SIGMETRICS 2013
Memory systems › non-volatile memory › write reliability
write endurance
0.212013
Characterizing the impact of process variation on write endurance enhancing techniques for non-volatile memory systems · SIGMETRICS 2013
High-performance computing › performance optimization
auto-tuning
0.112012
Autotuning Skeleton-Driven Optimizations for Transactional Worklist Applications · IEEE Trans. Parallel Distributed Syst. 2012
Processor architecture and microarchitecture › multithreading
speculative multithreading
0.112012
Mixed speculative multithreaded execution models · ACM Trans. Archit. Code Optim. 2012
Parallel and multicore computing
thread-level parallelism
0.112012
Mixed speculative multithreaded execution models · ACM Trans. Archit. Code Optim. 2012
Memory systems › cache coherence
software cache coherence
0.112011
Software-Based Cache Coherence with Hardware-Assisted Selective Self-Invalidations Using Bloom Filters · IEEE Trans. Computers 2011
Query processing and optimization › query compilation
code generation for query execution
0.112010
Generating code for holistic query evaluation · ICDE 2010
Query processing and optimization
query execution
0.112010
Generating code for holistic query evaluation · ICDE 2010
Compilers and program optimization
code generation
0.112010
Generating code for holistic query evaluation · ICDE 2010
Processor architecture and microarchitecture
branch prediction
0.112010
Handling branches in TLS systems with Multi-Path Execution · HPCA 2010

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

simulation · 0.5redo logging · 0.3hardware transactional memory · 0.3undo logging · 0.3hardware logging · 0.3multi-path execution · 0.3fence placement · 0.2LLVM · 0.2template-based code generation · 0.2static analysis · 0.2persistent memory fences · 0.2non-temporal updates · 0.2lightweight logging · 0.2dynamic compilation · 0.2benchmark workloads · 0.2
YearPublicationVenuePosition
2018 DHTM: Durable Hardware Transactional Memory
abstract
The emergence of byte-addressable persistent (non-volatile) memory provides a low latency and high bandwidth path to durability. However, programmers need guarantees on what will remain in persistent memory in the event of a system crash. A widely accepted model for crash consistent programming is ACID transactions, in which updates within a transaction are made visible as well as durable in an atomic manner. However, existing software based proposals suffer from significant performance overheads. In this paper, we support both atomic visibility and durability in hardware. We propose DHTM (durable hardware transactional memory) that leverages a commercial HTM to provide atomic visibility and extends it with hardware support for redo logging to provide atomic durability. Furthermore, we leverage the same logging infrastructure to extend the supported transaction size (from being L1-limited to LLC-limited) with only minor changes to the coherence protocol. Our evaluation shows that DHTM outperforms the state-of-the-art by an average of 21% to 25% on TATP, TPC-C and a set of microbenchmarks. We believe DHTM is the first complete and practical hardware based solution for ACID transactions that has the potential to significantly ease the burden of crash consistent programming.
Arpit Joshi, Vijay Nagarajan, Marcelo Cintra, Stratis Viglas
ISCA3
2017 ATOM: Atomic Durability in Non-volatile Memory through Hardware Logging
abstract
Non-volatile memory (NVM) is emerging as a fast byte-addressable alternative for storing persistent data. Ensuring atomic durability in NVM requires logging. Existing techniques have proposed software logging either by using streaming stores for an undo log; or, by relying on the combination of clflush and mfence for a redo log. These techniques are suboptimal because they waste precious execution cycles to implement logging, which is fundamentally a data movement operation. We propose ATOM, a hardware log manager based on undo logging that performs the logging operation out of the critical path. We present the design principles behind ATOM and two techniques to optimize its performance. Our results show that ATOM achieves an improvement of 27% to 33% for micro-benchmarks and 60% for TPC-C over a baseline undo log design.
Arpit Joshi, Vijay Nagarajan, Stratis Viglas, Marcelo Cintra
HPCA4
2016 Fence Placement for Legacy Data-Race-Free Programs via Synchronization Read Detection
abstract
Shared-memory programmers traditionally assumed Sequential Consistency (SC), but modern systems have relaxed memory consistency. Here, the trend in languages is toward Data-Race-Free (DRF) models, where, assuming annotated synchronizations and the program being well-synchronized by those synchronizations, the hardware and compiler guarantee SC. However, legacy programs lack annotations, so even well-synchronized (legacy DRF) programs aren’t recognized. For legacy DRF programs, we can significantly prune the set of memory orderings determined by automated fence placement by automatically identifying synchronization reads. We prove our rules for identifying them conservatively, implement them within LLVM, and observe a 30% average performance improvement over previous techniques.
Andrew J. McPherson, Vijay Nagarajan, Susmit Sarkar, Marcelo Cintra
ACM Trans. Archit. Code Optim.4
2015 Efficient persist barriers for multicores
abstract
Emerging non-volatile memory technologies enable fast, fine-grained persistence compared to slow block-based devices. In order to ensure consistency of persistent state, dirty cache lines need to be periodically flushed from caches and made persistent in an order specified by the persistency model. A persist barrier is one mechanism for enforcing this ordering.
Arpit Joshi, Vijay Nagarajan, Marcelo Cintra, Stratis Viglas
MICRO3
2015 Fence placement for legacy data-race-free programs via synchronization read detection
abstract
Fence placement is required to ensure legacy parallel programs operate correctly on relaxed architectures. The challenge is to place as few fences as possible without compromising correctness. By identifying necessary conditions for a read to be an acquire we improve upon the state of the art for legacy DRF programs by up to 2.64x.
Andrew J. McPherson, Vijay Nagarajan, Susmit Sarkar, Marcelo Cintra
PPoPP4
2015 Understanding the Effects of Data Corruption on Application Behavior Based on Data Characteristics
Georgios Stefanakis, Vijay Nagarajan, Marcelo Cintra
SAFECOMP3
2015 REWIND: Recovery Write-Ahead System for In-Memory Non-Volatile Data-Structures
abstract
Recent non-volatile memory (NVM) technologies, such as PCM, STT-MRAM and ReRAM, can act as both main memory and storage. This has led to research into NVM programming models, where persistent data structures remain in memory and are accessed directly through CPU loads and stores. Existing mechanisms for transactional updates are not appropriate in such a setting as they are optimized for block-based storage. We present REWIND, a user-mode library approach to managing transactional updates directly from user code written in an imperative general-purpose language. REWIND relies on a custom persistent in-memory data structure for the log that supports recoverable operations on itself. The scheme also employs a combination of non-temporal updates, persistent memory fences, and lightweight logging. Experimental results on synthetic transactional workloads and TPC-C show the overhead of REWIND compared to its non-recoverable equivalent to be within a factor of only 1.5 and 1.39 respectively. Moreover, REWIND outperforms state-of-the-art approaches for data structure recoverability as well as general purpose and NVM-aware DBMS-based recovery schemes by up to two orders of magnitude.
Andreas Chatzistergiou, Marcelo Cintra, Stratis Viglas
Proc. VLDB Endow.2
2015 Adaptive Selection of Cache Indexing Bits for Removing Conflict Misses
abstract
The design of cache memories is a crucial part of the design cycle of a modern processor, since they are able to bridge the performance gap between the processor and the memory. Unfortunately, caches with low degrees of associativity suffer a large amount of conflict misses. Although by increasing their associativity a significant fraction of these misses can be removed, this comes at a high cost in both power, area, and access time. In this work, we address the problem of high number of conflict misses in low-associative caches, by proposing an indexing policy that adaptively selects the bits from the block address used to index the cache. The basic premise of this work is that the non-uniformity in the set usage is caused by a poor selection of the indexing bits. Instead, by selecting at run time those bits that disperse the working set more evenly across the available sets, a large fraction of the conflict misses (85 percent, on average) can be removed. This leads to IPC improvements of 10.9 percent for the SPEC CPU2006 benchmark suite. By having less accesses in the L2 cache, our proposal also reduces the energy consumption of the cache hierarchy by 13.2 percent. These benefits come with a negligible area overhead.
Alberto Ros 0001, Polychronis Xekalakis, Marcelo Cintra, Manuel E. Acacio, José M. García 0001
IEEE Trans. Computers3
2013 CAeSaR: Unified cluster-assignment scheduling and communication reuse for clustered VLIW processors
abstract
Clustered architectures have been proposed as a solution to the scalability problem of wide ILP processors. VLIW architectures, being wide-issue by design, benefit significantly from clustering. Such architectures, being both statically scheduled and clustered, require specialized code generation techniques, as they require explicit Inter-Cluster Copy instructions (ICCs) be scheduled in the code stream. In this work we propose CAeSaR, a novel instruction scheduling algorithm that improves code generation for such architectures. It combines cluster assignment, instruction scheduling and inter-cluster communication reuse all in one single unified algorithm. The proposed algorithm improves performance by any phase-ordering issues among these three code generation and optimization steps. We evaluate CAeSaR on the MediabenchII and SPEC CINT2000 benchmarks and compare it against the state-of-the-art instruction scheduling algorithm. Our results show an improvement in execution time of up to 20.3%, and 13.8% on average, over the current state-of-the-art across the benchmarks.
Vasileios Porpodas, Marcelo Cintra
CASES2
2013 Acceldroid: Co-designed acceleration of Android bytecode
abstract
A hardware/software co-designed processor transparently supports a ubiquitous ISA (e.g. ×86) with diversified and innovative microarchitectural implementations. It leverages co-designed HW features and dynamic binary translation (DBT) SW to morph existing binary programs to scale performance and save power. On such systems, the portable bytecode of modern dynamic languages (e.g. Java, JavaScript, etc.) is first translated into the code in the architecture ISA by the just-in-time (JIT) compilation in the bytecode virtual machine, and then into the code in the internal implementation ISA by the DBT. This not only incurs the translation overheads twice, but also brings significant emulation inefficiency as the DBT does not have the high level bytecode information. In this paper, we present AccelDroid, which accelerates the Android Dalvik bytecode execution on the HW/SW co-designed processor through direct bytecode translation in the DBT. Our experiments on a HW/SW co-designed Transmeta Efficeon machine show that AccelDroid can improve performance by 78% and save energy by 40% for the CaffeineMark 3.0 benchmark suite.
Cheng Wang 0013, Youfeng Wu, Marcelo Cintra
CGO3
2013 CASTED: Core-Adaptive Software Transient Error Detection for Tightly Coupled Cores
abstract
Aggressive silicon process scaling over the last years has made transistors faster and less power consuming. Meanwhile, transistors have become more susceptible to errors. The need to maintain high reliability has led to the development of various software-based error detection methodologies which target either single-core or multi-core processors. In this work, we present CASTED, a Core-Adaptive Soft- ware Transient Error Detection methodology that focuses on improving the impact of error detection overhead on single- chip scalable architectures that are composed of tightly coupled cores. The proposed compiler methodology adaptively distributes the error detection overhead to the available resources across multiple cores, fully exploiting the abundant ILP of these architectures. CASTED adapts to a wide range of architecture configurations (issue-width, inter-core delay). We evaluate our technique on a range of architecture configurations using the MediabenchII video and SPEC CINT2000 benchmark suites. Our approach successfully adapts to (and regularly outperforms by up to 21.2%) the best fixed state-of- the-art approach while maintaining the same fault coverage.
Konstantina Mitropoulou, Vasileios Porpodas, Marcelo Cintra
IPDPS3
2013 LUCAS: latency-adaptive unified cluster assignment and instruction scheduling
abstract
Clustered VLIW architectures are statically scheduled wide-issue architectures that combine the advantages of wide-issue processors along with the power and frequency scalability of clustered designs. Being statically scheduled, they require that the decision of mapping instructions to clusters be done by the compiler. State-of-the-art code generation for such architectures combines cluster-assignment and instruction scheduling in a single unified pass. The performance of the generated code, however, is very susceptible to the inter-cluster communication latency. This is due to the nature of the two clustering heuristics used. One is aggressive and works well for low inter-cluster latencies, while the other is more conservative and works well only for high latencies.
Vasileios Porpodas, Marcelo Cintra
LCTES2
2013 Characterizing the impact of process variation on write endurance enhancing techniques for non-volatile memory systems
abstract
Much attention has been given recently to a set of promising non-volatile memory technologies, such as PCM, STT-MRAM, and ReRAM. These, however, have limited endurance relative to DRAM. Potential solutions to this endurance challenge exist in the form of fine-grain wear leveling techniques and aggressive error tolerance approaches. While the existing approaches to wear leveling and error tolerance are sound and demonstrate true potential, their studies have been limited in that i) they have not considered the interactions between wear leveling and error tolerance and ii) they have assumed a simple write endurance failure model where all cells fail uniformly. In this paper we perform a thorough study and characterize such interactions and the effects of more realistic non-uniform endurance models under various workloads, both synthetic and derived from benchmarks. This study shows that, for instance, variability in the endurance of cells significantly affects wear leveling and error tolerance mechanisms and the values of their tuning parameters. It also shows that these mechanisms interact in subtle ways, sometimes cancelling and sometimes boosting each other's impact on overall endurance of the device.
Marcelo Cintra, Niklas Linkewitsch
SIGMETRICS1
2012 ASCIB: adaptive selection of cache indexing bits for removing conflict misses
abstract
The design of cache memories is a crucial part of the design cycle of a modern processor. Unfortunately, caches with low degrees of associativity suffer a large amount of conflict misses, while high-associative caches consume more power per access. We propose ASCIB, a simple technique able to dynamically adjust the bits used for cache indexing so as to minimize conflict misses. By selecting at run time the bits that disperse the working set more evenly across the available sets, ASCIB removes 73% of the conflict misses on average. This results in an improvement in energy efficiency by 17% on average.
Alberto Ros 0001, Polychronis Xekalakis, Marcelo Cintra, Manuel E. Acacio, José M. García 0001
ISLPED3
2012 Mixed speculative multithreaded execution models
abstract
The current trend toward multicore architectures has placed great pressure on programmers and compilers to generate thread-parallel programs. Improved execution performance can no longer be obtained via traditional single-thread instruction level parallelism (ILP), but, instead, via multithreaded execution. One notable technique that facilitates the extraction of parallel threads from sequential applications is thread-level speculation (TLS). This technique allows programmers/compilers to generate threads without checking for inter-thread data and control dependences, which are then transparently enforced by the hardware. Most prior work on TLS has concentrated on thread selection and mechanisms to efficiently support the main TLS operations, such as squashes, data versioning, and commits. This article seeks to enhance TLS functionality by combining it with other speculative multithreaded execution models. The main idea is that TLS already requires extensive hardware support, which when slightly augmented can accommodate other speculative multithreaded techniques. Recognizing that for different applications, or even program phases, the application bottlenecks may be different, it is reasonable to assume that the more versatile a system is, the more efficiently it will be able to execute the given program. Toward this direction, we first show that mixed execution models that combine TLS with Helper Threads (HT), RunAhead execution (RA) and MultiPath execution (MP) perform better than any of the models alone. Based on a simple model that we propose, we show that benefits come from being able to extract additional ILP without harming the TLP extracted by TLS. We then show that by combining all the execution models in a unified one that combines all these speculative multithreaded models, ILP can be further enhanced with only minimal additional cost in hardware.
Polychronis Xekalakis, Nikolas Ioannou, Marcelo Cintra
ACM Trans. Archit. Code Optim.3
2012 Autotuning Skeleton-Driven Optimizations for Transactional Worklist Applications
abstract
Skeleton or pattern-based programming allows parallel programs to be expressed as specialized instances of generic communication and computation patterns. In addition to simplifying the programming task, such well structured programs are also amenable to performance optimizations during code generation and also at runtime. In this paper, we present a new skeleton framework that transparently selects and applies performance optimizations in transactional worklist applications. Using a novel hierarchical autotuning mechanism, it dynamically selects the most suitable set of optimizations for each application and adjusts them accordingly. Our experimental results on the STAMP benchmark suite show that our skeleton autotuning framework can achieve performance improvements of up to 88 percent, with an average of 46 percent, over a baseline version for a 16-core system and up to 115 percent, with an average of 56 percent, for a 32-core system. These performance improvements match or even exceed those obtained by a static exhaustive search of the optimization space.
Fabrício Góes, Nikolas Ioannou, Polychronis Xekalakis, Murray Cole, Marcelo Cintra
IEEE Trans. Parallel Distributed Syst.5
2011 Phase-Based Application-Driven Hierarchical Power Management on the Single-chip Cloud Computer
abstract
To improve energy efficiency processors allow for Dynamic Voltage and Frequency Scaling (DVFS), which enables changing their performance and power consumption on-the-fly. Many-core architectures, such as the Single-chip Cloud Computer (SCC) experimental processor from Intel Labs, have DVFS infrastructures that scale by having many more independent voltage and frequency domains on-die than today's multi-cores. This paper proposes a novel, hierarchical, and transparent client-server power management scheme applicable to such architectures. The scheme tries to minimize energy consumption within a performance window taking into consideration not only the local information for cores within frequency domains but also information that spans multiple frequency and voltage domains. We implement our proposed hierarchical power control using a novel application-driven phase detection and prediction approach for Message Passing Interface (MPI) applications, a natural choice on the SCC with its fast on-chip network and its non-coherent memory hierarchy. This phase predictor operates as the front-end to the hierarchical DVFS controller, providing the necessary DVFS scheduling points. Experimental results with SCC hardware show that our approach provides significant improvement of the Energy Delay Product (EDP) of as much as 27.2%, and 11.4% on average, with an average increase in execution time of 7.7% over a baseline version without DVFS. These improvements come from both improved phase prediction accuracy and more effective DVFS control of the domains, compared to existing approaches.
Nikolas Ioannou, Michael Kauschke, Matthias Gries, Marcelo Cintra
PACT4
2011 A machine learning-based approach for thread mapping on transactional memory applications
abstract
Thread mapping has been extensively used as a technique to efficiently exploit memory hierarchy on modern chip-multiprocessors. It places threads on cores in order to amortize memory latency and/or to reduce memory contention. However, efficient thread mapping relies upon matching application behavior with system characteristics. Particularly, Software Transactional Memory (STM) applications introduce another dimension due to its runtime system support. Existing STM systems implement several conflict detection and resolution mechanisms, which leads STM applications to behave differently for each combination of these mechanisms. In this paper we propose a machine learning-based approach to automatically infer a suitable thread mapping strategy for transactional memory applications. First, we profile several STM applications from the STAMP benchmark suite considering application, STM system and platform features to build a set of input instances. Then, such data feeds a machine learning algorithm, which produces a decision tree able to predict the most suitable thread mapping strategy for new unobserved instances. Results show that our approach improves performance up to 18.46% compared to the worst case and up to 6.37% over the Linux default thread mapping strategy.
Márcio Castro 0001, Fabrício Góes, Christiane Pousa Ribeiro, Murray Cole, Marcelo Cintra, Jean-François Méhaut
HiPC5
2011 Increasing the energy efficiency of TLS systems using intermediate checkpointing
abstract
With the advent of Chip Multiprocessors (CMPs), improving performance relies on the programmers/compilers to expose thread level parallelism to the underlying hardware. However, this is a difficult and error-prone process for the programmers, while state of the art compiler techniques are unable to provide significant benefits for many classes of applications. An alternative is offered by systems that support Thread Level Speculation (TLS), which relieve the programmer and compiler from checking for thread dependences and instead use the hardware to enforce them. Unfortunately, TLS suffers from power inefficency because data misspeculations cause threads to roll back to the beginning of the speculative task. For this reason intermediate check-pointing of TLS threads has been proposed. When a violation does occur, we now have to roll back to a checkpoint before the violating instruction and not to the start of the task. However, previous work omits study of the microarchitectural details and implementation issues that are essential for effective checkpointing. In this paper we study checkpointing on a state-of-the art TLS system. We systematically study the costs associated with checkpointing and analyze the tradeoffs. We also propose changes to the TLS mechanism to allow effective checkpointing. Further, we establish the need for accurately identifying points in execution that are appropriate for checkpointing and analyze various techniques for doing so in terms of both effectiveness and viability. We propose program counter based and hybrid predictors and show that they outperform previous proposals. Placing checkpoints based on dependence predictors results in power improvements while maintaining the performance advantage of TLS. The checkpointing system proposed achieves an energy saving of up to 14%, with an average of 7% over normal TLS execution.
Salman Khan 0002, Nikolas Ioannou, Polychronis Xekalakis, Marcelo Cintra
HiPC4
2011 Complementing user-level coarse-grain parallelism with implicit speculative parallelism
abstract
Multi-core and many-core systems are the norm in contemporary processor technology and are expected to remain so for the foreseeable future. Programs using parallel programming primitives like PThreads or OpenMP often exploit coarse-grain parallelism, because it offers a good trade-off between programming effort versus performance gain. Some parallel applications show limited or no scaling beyond a number of cores. Given the abundant number of cores expected in future many-cores, several cores would remain idle in such cases while execution performance stagnates. This paper proposes using cores that do not contribute to performance improvement for running implicit fine-grain speculative threads. In particular, we present a many-core architecture and protocol that allow applications with coarse-grain explicit parallelism to further exploit implicit speculative parallelism within each thread. Implicit speculative parallelism frees the programmer from the additional effort to explicitly partition the work into finer and properly synchronized tasks. Our results show that, for a many-core comprising of 128 cores supporting implicit speculative parallelism in clusters of 2 or 4 cores, performance improves on top of the highest scalability point by 41% on average for the 4-core cluster and by 27% on average for the 2-core cluster. These performance improvements come with an energy consumption that is close to -- and sometimes better than -- the baseline. This approach often leads to better performance and energy efficiency compared to existing alternatives such as Core Fusion and Frequency Boosting. We also investigate the tradeoffs between explicit and implicit threads as input dataset sizes vary. Finally, we present a dynamic mechanism to choose the number of explicit and implicit threads, which performs within 6% of the static oracle selection of threads.
Nikolas Ioannou, Marcelo Cintra
MICRO2
2011 Software-Based Cache Coherence with Hardware-Assisted Selective Self-Invalidations Using Bloom Filters
abstract
Implementing shared memory consistency models on top of hardware caches gives rise to the well-known cache coherence problem. The standard solution involves implementing coherence protocols in hardware, an approach with some design complexity, hardware costs, and restrictions on interconnect behavior. However, for some memory consistency models, an alternative is to enforce coherence in the software implementation of synchronization primitives, using software controlled invalidations and forced writebacks. This requires minimal hardware support but gives less selective enforcement, which affects performance. This paper proposes a novel hybrid software-hardware coherence mechanism. In this scheme, software is responsible for triggering the coherence actions-self-invalidations and writebacks-at appropriate times while hardware uses Bloom filters to perform more selective self-invalidations. We evaluate the proposed scheme on applications from two different domains: the SPLASH-2 scientific and ALP multimedia benchmarks. Experimental results show that while the software-only coherence scheme shows less performance degradation than expected, it still unacceptably degrades performance for some of the benchmarks. Filtering out unnecessary invalidations improves the worst-case performance by as much as 93 percent, and brings the performance of the hybrid scheme within five percent of full hardware coherence for 10 out of 13 benchmarks, on a 32-core CMP with a shared L2 cache.
Thomas J. Ashby, Pedro Diaz, Marcelo Cintra
IEEE Trans. Computers3
2010 Handling branches in TLS systems with Multi-Path Execution
abstract
Thread-Level Speculation (TLS) has been proposed to facilitate the extraction of parallel threads from sequential applications. Most prior work on TLS has focused on architectural features directly related to supporting the main TLS operations. In this work we, instead, investigate how a common microarchitectural feature, namely branch prediction, interacts with TLS. We show that branch prediction for TLS is even more important than it is for sequential execution. Unfortunately, branch prediction for TLS systems is also inherently harder. Code partitioning and re-executions of squashed threads pollute the branch history making it harder for predictors to be accurate. We thus propose to augment the hardware, so as to accommodate Multi-Path Execution (MP) within the existing TLS protocol. Under the MP execution model, all paths following a number of hard-to-predict conditional branches are followed simultaneously. MP execution thus removes branches that would have been otherwise mispredicted, helping in this way the core to exploit more ILP. We show that, with only minimal hardware support, one can combine these two execution models into a unified one. Experimental results show that our combined execution model achieves speedups of up to 23.2%, with an average of 9.2%, over an existing state-of-the-art TLS system and speedups of up to 138 %, with an average of 28.2%, when compared with MP execution for a subset of the SPEC2000 Int benchmark suite.
Polychronis Xekalakis, Marcelo Cintra
HPCA2
2010 Generating code for holistic query evaluation
abstract
We present the application of customized code generation to database query evaluation. The idea is to use a collection of highly efficient code templates and dynamically instantiate them to create query- and hardware-specific source code. The source code is compiled and dynamically linked to the database server for processing. Code generation diminishes the bloat of higher-level programming abstractions necessary for implementing generic, interpreted, SQL query engines. At the same time, the generated code is customized for the hardware it will run on. We term this approach holistic query evaluation. We present the design and development of a prototype system called HIQUE, the Holistic Integrated Query Engine, which incorporates our proposals. We undertake a detailed experimental study of the system's performance. The results show that HIQUE satisfies its design objectives, while its efficiency surpasses that of both well-established and currently-emerging query processing techniques.
Konstantinos Krikellas, Stratis Viglas, Marcelo Cintra
ICDE3
2010 Profitability-based power allocation for speculative multithreaded systems
abstract
With the shrinking of transistors continuing to follow Moore's Law and the non-scalability of conventional out-of-order processors, multi-core systems are becoming the design choice for industry. Performance extraction is thus largely alleviated from the hardware and placed on the pro-gr ammer/compiler camp, who now have to expose Thread Level Parallelism (TLP) to the underlying system in the form of explicitly parallel applications. Unfortunately, parallel programming is hard and error-prone. The programmer has to parallelize the work, perform the data placement, and deal with thread synchronization. Systems that support speculative multithreaded execution like Thread Level Speculation (TLS), offer an interesting alternative since they relieve the programmer from the burden of parallelizing applications and correctly synchronizing them. Since systems that support speculative multithreading usually treat all threads equally, they are energy-inefficient. This inefficiency stems from the fact that speculation occasionally fails and, thus, power is spent on threads that will have to be discarded. In this paper we propose a power allocation scheme for TLS systems, based on Dynamic Voltage and Frequency Scaling (DVFS), that tries to remedy this inefficiency. More specifically, we propose a profitability-based power allocation scheme, where we ¿steal¿ power fro m non-profitable threads and use it to speed up more useful ones. We evaluate our techniques for a state-of-the-art TLS system and show that, with minimal hardware support, they lead to improvements in ED of up to 39.6% with an average of 21.2%, for a subset of the SPEC 2000 Integer benchmark suite.
Polychronis Xekalakis, Nikolas Ioannou, Salman Khan 0002, Marcelo Cintra
IPDPS4
2010 Improving compiler-runtime separation with XIR
abstract
Intense research on virtual machines has highlighted the need for flexible software architectures that allow quick evaluation of new design and implementation techniques. The interface between the compiler and runtime system is a principal factor in the flexibility of both components and is critical to enabling rapid pursuit of new optimizations and features. Although many virtual machines have demonstrated modularity for many components, significant dependencies often remain between the compiler and the runtime system components such as the object model and memory management system. This paper addresses this challenge with a carefully designed strict compiler-runtime interface and the XIR language. Instead of the compiler backend lowering object operations to machine operations using hard-wired runtime-specific logic, XIR allows the runtime system to implement this logic, simultaneously simplifying and separating the backend from runtime-system details. In this paper we describe the design and implementation of this compiler-runtime interface and the XIR language in the C1X dynamic compiler, a port of the HotSpotTM Client compiler. Our results show a significant reduction in backend complexity with XIR and an overall reduction in the compiler-runtime interface complexity while still generating comparable quality code with only minor impact on compilation time.
Ben L. Titzer, Thomas Würthinger, Doug Simon, Marcelo Cintra
VEE4
2009 Distance-aware round-robin mapping for large NUCA caches
abstract
In many-core architectures, memory blocks are commonly assigned to the banks of a NUCA cache by following a physical mapping. This mapping assigns blocks to cache banks in a round-robin fashion, thus neglecting the distance between the cores that most frequently access every block and the corresponding NUCA bank for the block. This issue impacts both cache access latency and the amount of on-chip network traffic generated. On the other hand, first-touch mapping policies, which take into account distance, can lead to an unbalanced utilization of cache banks, and consequently, to an increased number of expensive off-chip accesses. In this work, we propose the distance-aware round-robin mapping policy, an OS-managed policy which addresses the trade-off between cache access latency and number of off-chip accesses. Our policy tries to map the pages accessed by a core to its closest (local) bank, like in a first-touch policy. However, our policy also introduces an upper bound on the deviation of the distribution of memory pages among cache banks, which lessens the number of off-chip accesses. This tradeoff is addressed without requiring any extra hardware structure. We also show that the private cache indexing commonly used in many-core architectures is not the most appropriate for OS-managed distance-aware mapping policies, and propose to employ different bits for such indexing. Using GEMS simulator we show that our proposal obtains average improvements of 11% for parallel applications and 14% for multi-programmed workloads in terms of execution time, and significant reductions in network traffic, over a traditional physical mapping. Moreover, when compared to a first-touch mapping policy, our proposal improves average execution time by 5% for parallel applications and 6% for multi-programmed workloads, slightly increasing on-chip network traffic.
Alberto Ros 0001, Marcelo Cintra, Manuel E. Acacio, José M. García 0001
HiPC2
2009 Combining thread level speculation helper threads and runahead execution
abstract
With the current trend toward multicore architectures, improved execution performance can no longer be obtained via traditional single-thread instruction level parallelism (ILP), but, instead, via multithreaded execution.Generating thread-parallel programs is hard and thread-level speculation (TLS) has been suggested as an execution model that can speculatively exploit thread-level parallelism (TLP) even when thread independence cannot be guaranteed by the programmer/compiler. Alternatively, the helper threads (HT) execution model has been proposed where subordinate threads are executed in parallel with a main thread in order to improve the execution efficiency (i.e., ILP) of the latter. Yet another execution model, runahead execution (RA), has also been proposed where subordinate versions of the main thread are dynamically created especially to cope with long-latency operations, again with the aim of improving the execution efficiency of the main thread.
Polychronis Xekalakis, Nikolas Ioannou, Marcelo Cintra
ICS3
2009 Stream chaining: exploiting multiple levels of correlation in data prefetching
abstract
Data prefetching has long been an important technique to amortize the effects of the memory wall, and is likely to remain so in the current era of multi-core systems. Most prefetchers operate by identifying patterns and correlations in the miss address stream. Separating streams according to the memory access instruction that generates the misses is an effective way of filtering out spurious addresses from predictable streams. On the other hand, by localizing streams based on the memory access instructions, such prefetchers both lose the complete time sequence information of misses and can only issue prefetches for a single memory access instruction at a time.
Pedro Diaz, Marcelo Cintra
ISCA2
2008 An OS-based alternative to full hardware coherence on tiled CMPs
abstract
The interconnect mechanisms (shared bus or crossbar) used in current chip-multiprocessors (CMPs) are expected to become a bottleneck that prevents these architectures from scaling to a larger number of cores. Tiled CMPs offer better scalability by integrating relatively simple cores with a lightweight point-to-point interconnect. However, such interconnects make snooping impractical and, thus, require alternative solutions to cache coherence. This paper proposes a novel, cost-effective mechanism to support shared-memory parallel applications that forgoes hardware maintained cache coherence. The proposed mechanism is based on the key ideas that mapping of lines to physical caches is done at the page level with OS support and that hardware supports remote cache accesses. It allows only some controlled migration and replication of data and provides a sufficient degree of flexibility in the mapping through an extra level of indirection between virtual pages and physical tiles. We evaluate the proposed tiled CMP architecture on the Splash-2 scientific benchmarks and ALPBench multimedia benchmarks against one with private caches and a distributed directory cache coherence mechanism. Experimental results show that the performance degradation is as little as 0%, and 16% on average, compared to the cache coherent architecture across all benchmarks for 16 and 32 processors.
Christian Fensch, Marcelo Cintra
HPCA2
2007 Using PredictiveModeling for Cross-Program Design Space Exploration in Multicore Systems
Salman Khan 0002, Polychronis Xekalakis, John Cavazos, Marcelo Cintra
PACT4