Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Carlos Madriles is active.

Publication


Featured researches published by Carlos Madriles.


programming language design and implementation | 2005

Mitosis compiler: an infrastructure for speculative threading based on pre-computation slices

Carlos García Quiñones; Carlos Madriles; F. Jesús Sánchez; Pedro Marcuello; Antonio González; Dean M. Tullsen

Speculative parallelization can provide significant sources of additional thread-level parallelism, especially for irregular applications that are hard to parallelize by conventional approaches. In this paper, we present the Mitosis compiler, which partitions applications into speculative threads, with special emphasis on applications for which conventional parallelizing approaches fail.The management of inter-thread data dependences is crucial for the performance of the system. The Mitosis framework uses a pure software approach to predict/compute the threads input values. This software approach is based on the use of pre-computation slices (p-slices), which are built by the Mitosis compiler and added at the beginning of the speculative thread. P-slices must compute thread input values accurately but they do not need to guarantee correctness, since the underlying architecture can detect and recover from misspeculations. This allows the compiler to use aggressive/unsafe optimizations to significantly reduce their overhead. The most important optimizations included in the Mitosis compiler and presented in this paper are branch pruning, memory and register dependence speculation, and early thread squashing.Performance evaluation of Mitosis compiler/architecture shows an average speedup of 2.2.


IEEE Transactions on Parallel and Distributed Systems | 2008

Mitosis: A Speculative Multithreaded Processor Based on Precomputation Slices

Carlos Madriles; Carlos García-Quiñones; Jesus Sanchez; Pedro Marcuello; Antonio González; Dean M. Tullsen; Hong Wang; John Paul Shen

This paper presents the Mitosis framework, which is a combined hardware-software approach to speculative multithreading, even in the presence of frequent dependences among threads. Speculative multithreading increases single-threaded application performance by exploiting thread-level parallelism speculatively, that is, executing code in parallel, even when the compiler or runtime system cannot guarantee that the parallelism exists. The proposed approach is based on predicting/computing thread input values via software through a piece of code that is added at the beginning of each thread (the precomputation slice). A precomputation slice is expected to compute the correct thread input values most of the time but not necessarily always. This allows aggressive optimization techniques to be applied to the slice to make it very short. This paper focuses on the microarchitecture that supports this execution model. The primary novelty of the microarchitecture is the hardware support for the execution and validation of precomputation slices. Additionally, this paper presents new architectures for the register file and the cache memory in order to support multiple versions of each variable and allow for efficient rollback in case of misspeculation. We show that the proposed microarchitecture, together with the compiler support, achieves an average speedup of 2.2 for applications that conventional nonspeculative approaches are not able to parallelize at all.


international symposium on computer architecture | 2009

Boosting single-thread performance in multi-core systems through fine-grain multi-threading

Carlos Madriles; Pedro Lopez; Josep M. Codina; Enric Gibert; Fernando Latorre; Alejandro Martínez; Raúl Martínez; Antonio González

Industry has shifted towards multi-core designs as we have hit the memory and power walls. However, single thread performance remains of paramount importance since some applications have limited thread-level parallelism (TLP), and even a small part with limited TLP impose important constraints to the global performance, as explained by Amdahls law. In this paper we propose a novel approach for leveraging multiple cores to improve single-thread performance in a multi-core design. The proposed technique features a set of novel hardware mechanisms that support the execution of threads generated at compile time. These threads result from a fine-grain speculative decomposition of the original application and they are executed under a modified multi-core system that includes: (1) mechanisms to support multiple versions; (2) mechanisms to detect violations among threads; (3) mechanisms to reconstruct the original sequential order; and (4) mechanisms to checkpoint the architectural state and recovery to handle misspeculations. The proposed scheme outperforms previous hardware-only schemes to implement the idea of combining cores for executing single-thread applications in a multi-core design by more than 10% on average on Spec2006 for all configurations. Moreover, single-thread performance is improved by 41% on average when the proposed scheme is used on a Tiny Core, and up to 2.6x for some selected applications.


international conference on parallel architectures and compilation techniques | 2009

Anaphase: A Fine-Grain Thread Decomposition Scheme for Speculative Multithreading

Carlos Madriles; Pedro Lopez; Josep M. Codina; Enric Gibert; Fernando Latorre; Alejandro Martínez; Raúl Martínez; Antonio González

Industry is moving towards multi-core designs as we have hit the memory and power walls. Multi-core designs are very effective to exploit thread-level parallelism (TLP) but do not provide benefits when executing serial code (applications with low TLP, serial parts of a parallel application and legacy code). In this paper we propose Anaphase, a novel approach for speculative multithreading to improve single-thread performance in a multi-core design. The proposed technique is based on a graph partitioning technique which performs a decomposition of applications into speculative threads at instruction granularity. Moreover, the proposed technique leverages communications and pre-computation slices to deal with inter-thread dependences. Results presented in this paper show that this approach improves single-thread performance by 32% on average and up to 2.15x for some selected applications of the Spec2006 suite. In addition, the proposed technique outperforms by 21% on average schemes in which thread decomposition is performed at a coarser granularity.


IEEE Computer Architecture Letters | 2015

Profiling Support for Runtime Managed Code: Next Generation Performance Monitoring Units

Enric Gibert; Raúl Martínez; Carlos Madriles; Josep M. Codina

Given the increase of runtime managed code environments in desktop, server, and mobile segments, agile, flexible, and accurate performance monitoring capabilities are required in order to perform wise code transformations and optimizations. Common profiling strategies, mainly based on instrumentation and current performance monitoring units (PMUs), are not adequate and new innovative designs are necessary. In this paper, we present the desired characteristics of what we call next generation PMUs and advocate for hardware/software collaborative approaches where hardware implements the profiling hooks and mechanisms and software implements the complex heuristics. We then propose a first design in which the hardware uses a small, yet flexible table to profile specific code regions and the software decides what/when/how to profile. This first design meets all required features and we aim it as the seed for future PMUs extensions to enable novel dynamic code transformations and optimizations.


Archive | 2010

REGISTER CHECKPOINTING MECHANISM FOR MULTITHREADING

Pedro Lopez; Carlos Madriles; Alejandro Martínez; Raúl Martínez; Joseph M. Codina; Enric Gibert Codina; Fernando Latorre; Antonio González


Archive | 2009

Systems, methods, and apparatuses to decompose a sequential program into multiple threads, execute said threads, and reconstruct the sequential execution

Fernando Latorre; Josep M. Codina; Enric Gibert Codina; Pedro Lopez; Carlos Madriles; Alejandro Martinez Vincente; Raúl Martínez; Antonio González


Archive | 2004

Selection of spawning pairs for a speculative multithreaded processor

Jesus Sanchez; Carlos Garcia; Carlos Madriles; Peter Rundberg; Pedro Marcuello; Antonio González


Archive | 2011

PROFILING ASYNCHRONOUS EVENTS RESULTING FROM THE EXECUTION OF SOFTWARE AT CODE REGION GRANULARITY

Raúl Martínez; Enric Gibert Codina; Pedro Lopez; Marti Torrents Lapuerta; Polychronis Xekalakis; Georgios Tournavitis; Kyriakos A. Stavrou; Demos Pavlou; Daniel Ortega; Alejandro Martinez Vicente; Pedro Marcuello; Grigorios Magklis; Josep M. Codina; Crispin Gomez Requena; Antonio Gonzalez; Mirem Hyuseinova; Christos E. Kotselidis; Fernando Latorre; Marc Lupon; Carlos Madriles


Archive | 2004

Multi-version register file for multithreading processors with live-in precomputation

Carlos Madriles; Peter Rundberg; Jesus Sanchez; Carlos Garcia; Pedro Marcuello; Antonio González

Collaboration


Dive into the Carlos Madriles's collaboration.

Researchain Logo
Decentralizing Knowledge