VLDB 2026 Research / reviewers in the wild / expert
José María Llabería
dblp:l/JMLlaberia · also José M. Llabería
· DBLP profile ↗
47ranked-venue papers
1as first author
1since 2021 · last 2021
0000-0002-3753-4108ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 43 · 1 first-author · 1 since 2021Software engineering, systems software and programming languages · 8 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 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
20 papers |
Memory systems · 76% Processor architecture and microarchitecture · 16% Parallel and multicore computing · 5% | |
| Software engineering, system software, and programming languages
5 papers |
Compilers and program optimization · 100% |
Topics — the 30 heaviest of 60, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Memory systems
cache |
0.4 | 4 | 2013 | Exploiting reuse locality on inclusive shared last-level caches · ACM Trans. Archit. Code Optim. 2013 ABS: A low-cost adaptive controller for prefetching in a banked shared last-level cache · ACM Trans. Archit. Code Optim. 2012 Store Buffer Design in First-Level Multibanked Data Caches · ISCA 2005 |
Memory systems
cache coherence |
0.2 | 2 | 2013 | Exploiting reuse locality on inclusive shared last-level caches · ACM Trans. Archit. Code Optim. 2013 Tradeoffs in buffering speculative memory state for thread-level speculation in multiprocessors · ACM Trans. Archit. Code Optim. 2005 |
Memory systems › cache design
cache inclusion |
0.2 | 1 | 2013 | Exploiting reuse locality on inclusive shared last-level caches · ACM Trans. Archit. Code Optim. 2013 |
Memory systems
cache management |
0.2 | 1 | 2013 | The reuse cache: downsizing the shared last-level cache · MICRO 2013 |
Memory systems › cache management
cache replacement |
0.2 | 1 | 2013 | The reuse cache: downsizing the shared last-level cache · MICRO 2013 |
Memory systems › memory hierarchy › cache hierarchy
last-level cache |
0.2 | 1 | 2013 | The reuse cache: downsizing the shared last-level cache · MICRO 2013 |
Memory systems › cache management › cache replacement
last-level cache replacement |
0.2 | 1 | 2013 | Exploiting reuse locality on inclusive shared last-level caches · ACM Trans. Archit. Code Optim. 2013 |
Memory systems › cache › cache organization
multibanked data cache |
0.1 | 2 | 2009 | Store Buffer Design for Multibanked Data Caches · IEEE Trans. Computers 2009 Store Buffer Design in First-Level Multibanked Data Caches · ISCA 2005 |
Processor architecture and microarchitecture › load/store queue
store buffer |
0.1 | 2 | 2009 | Store Buffer Design for Multibanked Data Caches · IEEE Trans. Computers 2009 Store Buffer Design in First-Level Multibanked Data Caches · ISCA 2005 |
Memory systems › cache › prefetching
hardware prefetching |
0.1 | 1 | 2012 | ABS: A low-cost adaptive controller for prefetching in a banked shared last-level cache · ACM Trans. Archit. Code Optim. 2012 |
Memory systems
speculative memory state buffering |
0.1 | 2 | 2005 | Tradeoffs in buffering speculative memory state for thread-level speculation in multiprocessors · ACM Trans. Archit. Code Optim. 2005 Tradeoffs in Buffering Memory State for Thread-Level Speculation in Multiprocessors · HPCA 2003 |
Parallel and multicore computing › speculative parallelization
thread-level speculation |
0.1 | 2 | 2005 | Tradeoffs in buffering speculative memory state for thread-level speculation in multiprocessors · ACM Trans. Archit. Code Optim. 2005 Tradeoffs in Buffering Memory State for Thread-Level Speculation in Multiprocessors · HPCA 2003 |
Memory systems
memory hierarchy |
0.1 | 1 | 2009 | Store Buffer Design for Multibanked Data Caches · IEEE Trans. Computers 2009 |
Processor architecture and microarchitecture
chip multiprocessor |
0.1 | 2 | 2013 | Exploiting reuse locality on inclusive shared last-level caches · ACM Trans. Archit. Code Optim. 2013 ABS: A low-cost adaptive controller for prefetching in a banked shared last-level cache · ACM Trans. Archit. Code Optim. 2012 |
Memory systems › cache management
shared cache management |
0.1 | 2 | 2013 | Exploiting reuse locality on inclusive shared last-level caches · ACM Trans. Archit. Code Optim. 2013 ABS: A low-cost adaptive controller for prefetching in a banked shared last-level cache · ACM Trans. Archit. Code Optim. 2012 |
Compilers and program optimization
loop transformation |
0.1 | 3 | 2002 | Register tiling in nonrectangular iteration spaces · ACM Trans. Program. Lang. Syst. 2002 Performance Evaluation of Tiling for the Register Level · HPCA 1998 Loop Transformation Using Nonunimodular Matrices · IEEE Trans. Parallel Distributed Syst. 1995 |
Compilers and program optimization
loop optimization |
0.1 | 2 | 2003 | A Cost-Effective Implementation of Multilevel Tiling · IEEE Trans. Parallel Distributed Syst. 2003 On the Performance of Hand vs. Automatically Optimized Numerical Codes · HPCA 2000 |
Compilers and program optimization › loop transformation
register tiling |
0.1 | 2 | 2002 | Register tiling in nonrectangular iteration spaces · ACM Trans. Program. Lang. Syst. 2002 Performance Evaluation of Tiling for the Register Level · HPCA 1998 |
Processor architecture and microarchitecture
speculative execution |
0.1 | 1 | 2005 | Tradeoffs in buffering speculative memory state for thread-level speculation in multiprocessors · ACM Trans. Archit. Code Optim. 2005 |
Compilers and program optimization › loop transformation
multi-level tiling |
0.0 | 1 | 2003 | A Cost-Effective Implementation of Multilevel Tiling · IEEE Trans. Parallel Distributed Syst. 2003 |
Memory systems › cache
cache optimization |
0.0 | 1 | 2003 | A Cost-Effective Implementation of Multilevel Tiling · IEEE Trans. Parallel Distributed Syst. 2003 |
Compilers and program optimization
compiler optimization |
0.0 | 1 | 2002 | Register tiling in nonrectangular iteration spaces · ACM Trans. Program. Lang. Syst. 2002 |
Compilers and program optimization › instruction scheduling
instruction-level parallelism |
0.0 | 1 | 2002 | Register tiling in nonrectangular iteration spaces · ACM Trans. Program. Lang. Syst. 2002 |
Compilers and program optimization › loop optimization
loop tiling |
0.0 | 1 | 2002 | Register tiling in nonrectangular iteration spaces · ACM Trans. Program. Lang. Syst. 2002 |
Memory systems › memory architecture
interleaved memory |
0.0 | 2 | 1999 | Minimizing Conflicts Between Vector Streams in Interleaved Memory Systems · IEEE Trans. Computers 1999 Increasing the Number of Strides for Conflict-Free Vector Access · ISCA 1992 |
Processor architecture and microarchitecture
vector processor |
0.0 | 3 | 1999 | Minimizing Conflicts Between Vector Streams in Interleaved Memory Systems · IEEE Trans. Computers 1999 Increasing the Effective Bandwidth of Complex Memory Systems in Multivector Processors · SC 1996 Increasing the Number of Strides for Conflict-Free Vector Access · ISCA 1992 |
Parallel and multicore computing › task scheduling › dynamic scheduling
dynamically-scheduled processor |
0.0 | 1 | 2009 | Store Buffer Design for Multibanked Data Caches · IEEE Trans. Computers 2009 |
High-performance computing › performance optimization
numerical program optimization |
0.0 | 1 | 2000 | On the Performance of Hand vs. Automatically Optimized Numerical Codes · HPCA 2000 |
Memory systems
memory interference |
0.0 | 1 | 1999 | Minimizing Conflicts Between Vector Streams in Interleaved Memory Systems · IEEE Trans. Computers 1999 |
Processor architecture and microarchitecture › memory system microarchitecture
memory ordering |
0.0 | 1 | 1999 | Minimizing Conflicts Between Vector Streams in Interleaved Memory Systems · IEEE Trans. Computers 1999 |
Methods — techniques the papers use, named apart from their topics
simulation · 0.2cache line reuse detection · 0.2speculative forwarding · 0.1hill-climbing · 0.1adaptive control · 0.1complexity-benefit tradeoff analysis · 0.1fault injection · 0.1tiling · 0.1affine loop bounds computation · 0.1loop tiling · 0.1software pipelining · 0.1unroll-and-jam · 0.0multilevel tiling · 0.0outer unrolling · 0.0inner unrolling · 0.0hermite normal form · 0.0block partitioning · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2021 | Near-optimal replacement policies for shared caches in multicore processors
Pablo Ibáñez 0001, Teresa Monreal Arnal, Víctor Viñals, José María Llabería |
J. Supercomput. | 5 |
| 2019 | ReD: A reuse detector for content selection in exclusive shared last-level caches
Teresa Monreal Arnal, Pablo Ibáñez 0001, José María Llabería, Víctor Viñals |
J. Parallel Distributed Comput. | 4 |
| 2018 | Reuse Detector: Improving the Management of STT-RAM SLLCsabstractVarious constraints of Static Random Access Memory (SRAM) are leading to consider new memory technologies as candidates for building on-chip shared last-level caches (SLLCs). Spin-Transfer Torque RAM (STT-RAM) is currently postulated as the prime contender due to its better energy efficiency, smaller die footprint and higher scalability. However, STT-RAM also exhibits some drawbacks, like slow and energy-hungry write operations that need to be mitigated before it can be used in SLLCs for the next generation of computers. In this work, we address these shortcomings by leveraging a new management mechanism for STT-RAM SLLCs. This approach is based on the previous observation that although the stream of references arriving at the SLLC of a Chip MultiProcessor (CMP) exhibits limited temporal locality, it does exhibit reuse locality, i.e. those blocks referenced several times manifest high probability of forthcoming reuse. As such, conventional STT-RAM SLLC management mechanisms, mainly focused on exploiting temporal locality, result in low efficient behavior. In this paper, we employ a cache management mechanism that selects the contents of the SLLC aimed to exploit reuse locality instead of temporal locality. Specifically, our proposal consists in the inclusion of a Reuse Detector (RD) between private cache levels and the STT-RAM SLLC. Its mission is to detect blocks that do not exhibit reuse, in order to avoid their insertion in the SLLC, hence reducing the number of write operations and the energy consumption in the STT-RAM. Our evaluation, using multiprogrammed workloads in quad-core, eight-core and 16-core systems, reveals that our scheme reports on average, energy reductions in the SLLC in the range of 37–30%, additional energy savings in the main memory in the range of 6–8% and performance improvements of 3% (quad-core), 7% (eight-core) and 14% (16-core) compared with an STT-RAM SLLC baseline where no RD is employed. More importantly, our approach outperforms DASCA, the state-of-the-art STT-RAM SLLC management, reporting—depending on the specific scenario and the kind of applications used—SLLC energy savings in the range of 4–11% higher than those of DASCA, delivering higher performance in the range of 1.5–14% and additional improvements in DRAM energy consumption in the range of 2–9% higher than DASCA. Roberto Rodríguez-Rodríguez, Fernando Castro, Pablo Ibáñez 0001, Daniel Chaver, Víctor Viñals, Juan Carlos Saez, Manuel Prieto 0001, Luis Piñuel, Teresa Monreal Arnal, José María Llabería |
Comput. J. | 11 |
| 2013 | The reuse cache: downsizing the shared last-level cacheabstractOver recent years, a growing body of research has shown that a considerable portion of the shared last-level cache (SLLC) is dead, meaning that the corresponding cache lines are stored but they will not receive any further hits before being replaced. Conversely, most hits observed by the SLLC come from a small subset of already reused lines. Jorge Albericio, Pablo Ibáñez 0001, Víctor Viñals, José María Llabería |
MICRO | 4 |
| 2013 | Exploiting reuse locality on inclusive shared last-level cachesabstractOptimization of the replacement policy used for Shared Last-Level Cache (SLLC) management in a Chip-MultiProcessor (CMP) is critical for avoiding off-chip accesses. Temporal locality, while being exploited by first levels of private cache memories, is only slightly exhibited by the stream of references arriving at the SLLC. Thus, traditional replacement algorithms based on recency are bad choices for governing SLLC replacement. Recent proposals involve SLLC replacement policies that attempt to exploit reuse either by segmenting the replacement list or improving the rereference interval prediction. On the other hand, inclusive SLLCs are commonplace in the CMP market, but the interaction between replacement policy and the enforcement of inclusion has barely been discussed. After analyzing that interaction, this article introduces two simple replacement policies exploiting reuse locality and targeting inclusive SLLCs: Least Recently Reused (LRR) and Not Recently Reused (NRR). NRR has the same implementation cost as NRU, and LRR only adds one bit per line to the LRU cost. After considering reuse locality and its interaction with the invalidations induced by inclusion, the proposals are evaluated by simulating multiprogrammed workloads in an 8-core system with two private cache levels and an SLLC. LRR outperforms LRU by 4.5% (performing better in 97 out of 100 mixes) and NRR outperforms NRU by 4.2% (performing better in 99 out of 100 mixes). We also show that our mechanisms outperform rereference interval prediction, a recently proposed SLLC replacement policy and that similar conclusions can be drawn by varying the associativity or the SLLC size. Jorge Albericio, Pablo Ibáñez 0001, Víctor Viñals, José María Llabería |
ACM Trans. Archit. Code Optim. | 4 |
| 2012 | Effcient Handling of Lock Hand-off in DSM Multiprocessors with Buffering Coherence Controllers
Benjamín Sahelices, Agustín De Dios Hernández, Pablo Ibáñez 0001, Víctor Viñals, José María Llabería |
J. Comput. Sci. Technol. | 5 |
| 2012 | ABS: A low-cost adaptive controller for prefetching in a banked shared last-level cacheabstractHardware data prefetch is a very well known technique for hiding memory latencies. However, in a multicore system fitted with a shared Last-Level Cache (LLC), prefetch induced by a core consumes common resources such as shared cache space and main memory bandwidth. This may degrade the performance of other cores and even the overall system performance unless the prefetch aggressiveness of each core is controlled from a system standpoint. On the other hand, LLCs in commercial chip multiprocessors are more and more frequently organized in independent banks. In this contribution, we target for the first time prefetch in a banked LLC organization and propose ABS, a low-cost controller with a hill-climbing approach that runs stand-alone at each LLC bank without requiring inter-bank communication. Using multiprogrammed SPEC2K6 workloads, our analysis shows that the mechanism improves both user-oriented metrics (Harmonic Mean of Speedups by 27% and Fairness by 11%) and system-oriented metrics (Weighted Speedup increases 22% and Memory Bandwidth Consumption decreases 14%) over an eight-core baseline system that uses aggressive sequential prefetch with a fixed degree. Similar conclusions can be drawn by varying the number of cores or the LLC size, when running parallel applications, or when other prefetch engines are controlled. Jorge Albericio, Ruben Gran Tejero, Pablo Ibáñez 0001, Víctor Viñals, José María Llabería |
ACM Trans. Archit. Code Optim. | 5 |
| 2011 | Filtering Directory Lookups in CMPs with Write-Through Caches
Ana Bosque, Víctor Viñals, Pablo Ibáñez 0001, José María Llabería |
Euro-Par (1) | 4 |
| 2010 | Filtering Directory Lookups in CMPsabstractCoherence protocols consume an important fraction of power to determine which coherence action should take place. In this paper we focus on CMPs with a shared cache and a directory-based coherence protocol implemented as a duplicate of local caches tags. We observe that a big fraction of directory lookups produce a miss since the block looked up is not cached in any local cache. We propose to add a filter before the directory lookup in order to reduce the number of lookups to this structure. The filter identifies whether the current block was last accessed as a data or as an instruction. With this information, looking up the whole directory can be avoided for most accesses. We evaluate the filter in a CMP with 8 in-order processors with 4 threads each and a memory hierarchy with a shared L2 cache. We show that a filter with a size of 3% of the tag array of the shared cache can avoid more than 70% of all comparisons performed by directory lookups with a performance loss of just 0.2% for SPLASH2 and 1.5% for Specweb2005. On average, the number of 15-bit comparisons avoided per cycle is 54 out of 77 for SPLASH2 and 29 out of 41 for Specweb2005. In both cases, the filter requires less than one read of 1 bit per cycle. Ana Bosque, Víctor Viñals, Pablo Ibáñez 0001, José María Llabería |
DSD | 4 |
| 2009 | A Methodology to Characterize Critical Section Bottlenecks in DSM Multiprocessors
Benjamín Sahelices, Pablo Ibáñez 0001, Víctor Viñals, José María Llabería |
Euro-Par | 4 |
| 2009 | On reducing misspeculations in a pipelined schedulerabstractPipelining the scheduling logic, which exposes and exploits the instruction level parallelism, degrades processor performance. In a 4-issue processor, our evaluations show that pipelining the scheduling logic over two cycles degrades performance by 10% in SPEC-2000 integer benchmarks. Such a performance degradation is due to sacrificing the ability to execute dependent instructions in consecutive cycles. Speculative selection is a previously proposed technique that boosts the performance of a processor with a pipelined scheduling logic. However, this new speculation source increases the overall number of misspeculated instructions, and this unuseful work wastes energy. In this work we introduce a non-speculative mechanism named Dependence Level Scheduler (DLS) which not only tolerates the scheduling-logic latency but also reduces the number of misspeculated instructions with respect to a scheduler with speculative selection. In DLS, the selection of a group of one-cycle instructions (producer-level) is overlapped with the wake up in advance of its group of dependent instructions. DLS is not speculative because the group of woken in advance instructions will compete for selection only after issuing all producer-level instructions. On average, DLS reduces the number of misspeculated instructions with respect to a speculative scheduler by 17.9%. From the IPC point of view, the speculative scheduler outperforms DLS by 0.3%. Moreover, we propose two non-speculative improvements to DLS. Ruben Gran Tejero, Enric Morancho, Àngel Olivé, José María Llabería |
IPDPS | 4 |
| 2009 | Store Buffer Design for Multibanked Data CachesabstractThis paper focuses on how to design a Store Buffer (STB) well suited to first-level multibanked data caches. The goal is to forward data from in-flight stores into dependent loads within the latency of a cache bank. Taking into account the store lifetime in the processor pipeline and the data forwarding behavior, we propose a particular two-level STB design in which forwarding is done speculatively from a distributed first-level STB made of extremely small banks, whereas a centralized, second-level STB enforces correct store-load ordering. Besides, the two-level STB admits two simplifications that leave performance almost unchanged. Regarding the second-level STB, we suggest to remove its data forwarding capability, while for the first-level STB, it is possible to: 1) remove the instruction age checking and 2) compare only the less significant address bits. Experimentation covers both integer and floating point codes executing in dynamically scheduled processors. Following our guidelines and running SPEC-2K over an 8-way processor, a two-level STB with four 8-entry banks in the first level performs similar to an ideal, single-level STB with 128-entry banks working at the first-level cache latency. Also, we show that the proposed two-level design is suitable for a memory-latency-tolerant processor. Enrique F. Torres, Pablo Ibáñez 0001, Víctor Viñals, José María Llabería |
IEEE Trans. Computers | 4 |
| 2007 | On reducing energy-consumption by late-inserting instructions into the issue queueabstractIn the presence of a long-latency instruction as a L2 miss, the issue queue (IQ) may fill with instructions dependent on the L2 miss; consequently, the IQ will not expose instruction-level parallelism until resolving the miss. Enric Morancho, José María Llabería, Àngel Olivé |
ISLPED | 2 |
| 2007 | A comparison of two policies for issuing instructions speculatively
Enric Morancho, José María Llabería, Àngel Olivé |
J. Syst. Archit. | 2 |
| 2006 | Speeding-Up Synchronizations in DSM Multiprocessors
Agustín De Dios Hernández, Benjamín Sahelices Fernández, Pablo Ibáñez 0001, Víctor Viñals, José María Llabería |
Euro-Par | 5 |
| 2006 | An Enhancement for a Scheduling Logic Pipelined over two Cycles abstractOut of order processors use the dynamic scheduling logic both to expose and to exploit parallelism. Pipelining this logic may sacrifice the ability to execute dependent instructions in consecutive cycles. Several previous studies have shown that pipelining the scheduling logic over two cycles degrades performance; our evaluations, in a 4-way machine, on SPEC-2000 integer benchmarks show a performance degradation about 11% compared to an unpipelined scheduling logic. In this work, we present two non-speculative enhancements for a scheduling logic pipelined over two cycles. The idea is computing in advance which instructions will be woken-up by all instructions that are currently competing for selection. Once all of them have been selected, the pre-computed group of instructions can compete for selection in next cycle. The enhancement goal is to tolerate the scheduling-loop latency when not enough ILP is available through the scheduling of dependent instructions in consecutive cycles. Our results in a 4-way machine show that our two proposed enhancements perform, on average, slightly better than two previously proposed speculative schedulers. The performance of our proposals is within a 2.6% and 2% of an unpipelined ideal scheduler. Ruben Gran Tejero, Enric Morancho, Àngel Olivé, José María Llabería |
ICCD | 4 |
| 2005 | Store Buffer Design in First-Level Multibanked Data CachesabstractThis paper focuses on how to design a store buffer (STB) well suited to first-level multibanked data caches. Our goal is to forward data from in-flight stores to dependent loads with the latency of a cache bank. For that we propose a particular two-level STB design in which forwarding is done speculatively from a distributed first-level STB made of extremely small banks, while a centralized, second-level STB enforces correct store-load ordering a few cycles later. To that end we have identified several important design decisions: i) delaying allocation of first-level STB entries until stores execute; ii) deallocating first-level STB entries before stores commit; and iii) selecting a recovery policy well-matched to data forwarding misspeculations. Moreover, the two-level STB admits two enhancements that simplify the design leaving performance almost unchanged: i) removing the data forwarding capability from the second-level STB; and ii) not checking instruction age in first-level STB prior to forwarding data to loads. Following our guidelines and running SPECint-2K over an 8-way out-of-order processor, a two-level STB (first level with four STB banks of 8 entries each) performs similarly to an ideal, single-level STB with 128-entry banks working at the first-level cache latency. Enrique F. Torres, Pablo Ibáñez 0001, Víctor Viñals, José María Llabería |
ISCA | 4 |
| 2005 | Tradeoffs in buffering speculative memory state for thread-level speculation in multiprocessorsabstractThread-Level Speculation (TLS) provides architectural support to aggressively run hard-to-analyze code in parallel. As speculative tasks run concurrently, they generate unsafe or speculative memory state that needs to be separately buffered and managed in the presence of distributed caches and buffers. Such a state may contain multiple versions of the same variable. In this paper, we introduce a novel taxonomy of approaches to buffer and manage multiversion speculative memory state in multiprocessors. We also present a detailed complexity-benefit tradeoff analysis of the different approaches. Finally, we use numerical applications to evaluate the performance of the approaches under a single architectural framework. Our key insights are that support for buffering the state of multiple speculative tasks and versions per processor is more complexity-effective than support for lazily merging the state of tasks with main memory. Moreover, both supports can be gainfully combined and, in large machines, their effect is nearly fully additive. Finally, the more complex support for storing future state in the main memory can boost performance when buffers are under pressure, but hurts performance when squashes are frequent. María Jesús Garzarán, Milos Prvulovic, José María Llabería, Víctor Viñals, Lawrence Rauchwerger, Josep Torrellas |
ACM Trans. Archit. Code Optim. | 3 |
| 2004 | A Mechanism for Verifying Data Speculation
Enric Morancho, José María Llabería, Àngel Olivé |
Euro-Par | 2 |
| 2004 | Contents Management in First-Level Multibanked Data Caches
Enrique F. Torres, Pablo Ibáñez 0001, Víctor Viñals, José María Llabería |
Euro-Par | 4 |
| 2003 | Counteracting Bank Misprediction in Sliced First-Level Caches
Enrique F. Torres, Pablo Ibáñez 0001, Víctor Viñals, José María Llabería |
Euro-Par | 4 |
| 2003 | Tradeoffs in Buffering Memory State for Thread-Level Speculation in MultiprocessorsabstractThread-level speculation provides architectural support to aggressively run hard-to-analyze code in parallel. As speculative tasks run concurrently, they generate unsafe or speculative memory state that needs to be separately buffered and managed in the presence of distributed caches and buffers. Such state may contain multiple versions of the same variable. In this paper, we introduce a novel taxonomy of approaches to buffering and managing multi-version speculative memory state in multiprocessors. We also present a detailed complexity-benefit tradeoff analysis of the different approaches. Finally, we use numerical applications to evaluate the performance of the approaches under a single architectural framework. Our key insights are that support for buffering the state of multiple speculative tasks and versions per processor is more complexity-effective than support for merging the state of tasks with main memory lazily. Moreover, both supports can be gainfully combined and, in large machines, their effect is nearly fully additive. Finally, the more complex support for future state in main memory can boost performance when buffers are under pressure, but hurts performance when squashes are frequent. María Jesús Garzarán, Milos Prvulovic, José María Llabería, Víctor Viñals, Lawrence Rauchwerger, Josep Torrellas |
HPCA | 3 |
| 2003 | A Cost-Effective Implementation of Multilevel TilingabstractThis paper presents a new cost-effective algorithm to compute exact loop bounds when multilevel tiling is applied to a loop nest having affine functions as bounds (nonrectangular loop nest). Traditionally, exact loop bounds computation has not been performed because its complexity is doubly exponential on the number of loops in the multilevel tiled code and, therefore, for certain classes of loops (i.e., nonrectangular loop nests), can be extremely time consuming. Although computation of exact loop bounds is not very important when tiling only for cache levels, it is critical when tiling includes the register level. This paper presents an efficient implementation of multilevel tiling that computes exact loop bounds and has a much lower complexity than conventional techniques. To achieve this lower complexity, our technique deals simultaneously with all levels to be tiled, rather than applying tiling level by level as is usually done. For loop nests having very simple affine functions as bounds, results show that our method is between 15 and 28 times faster than conventional techniques. For loop nests caving not so simple bounds, we have measured speedups as high as 2,300. Additionally, our technique allows eliminating redundant bounds efficiently. Results show that eliminating redundant bounds in our method is between 22 and 11 times faster than in conventional techniques for typical linear algebra programs. Marta Jiménez, José María Llabería, Agustín Fernández |
IEEE Trans. Parallel Distributed Syst. | 2 |
| 2002 | Register tiling in nonrectangular iteration spacesabstractLoop tiling is a well-known loop transformation generally used to expose coarse-grain parallelism and to exploit data reuse at the cache level. Tiling can also be used to exploit data reuse at the register level and to improve a program's ILP. However, previous proposals in the literature (as well as commercial compilers) are only able to perform multidimensional tiling for the register level when the iteration space is rectangular. In this article we present a new general algorithm to perform multidimensional tiling for the register level in both rectangular and nonrectangular iteration spaces. We also propose a simple heuristic to determine the tiling parameters at this level. Finally, we evaluate our method using as benchmarks typical linear algebra algorithms having nonrectangular iteration spaces and compare our proposal against hand-optimized vendor-supplied numerical libraries and against commercial compilers able to perform optimizing code transformations such as inner unrolling, unroll-and-jam, and software pipelining. Measurements were taken on three different superscalar microprocessors. Results will show that our method outperforms the native compilers (showing speedups of 2.5 in average) and matches the performance of vendor-supplied numerical libraries. The general conclusion is that compiler technology can make it possible for nonrectangular loop nests to achieve as high performance as hand-optimized codes. Marta Jiménez, José María Llabería, Agustín Fernández |
ACM Trans. Program. Lang. Syst. | 2 |
| 2000 | Two-Level Address Storage and Address Prediction (Research Note)
Enric Morancho, José María Llabería, Àngel Olivé |
Euro-Par | 2 |
| 2000 | On the Performance of Hand vs. Automatically Optimized Numerical CodesabstractIn this paper, we compare automatic-optimized codes against hand-optimized codes. The automatic-optimized codes have been generated using our own developed tool that implements compiler techniques proposed in our previous work. Our compiler techniques focus on applying multilevel tiling to non-rectangular loop nests. This type of loop nests are commonly found in linear algebra algorithms, typically used in numerical codes. As hand-optimized codes, we use two different numerical libraries: the BLAS3 library provided by the manufacturers and the RISC-BLAS library proposed in Dayde and Duff (1998). Results will show how compiler technology can make it possible for non-rectangular loop nests to achieve as high performance as hand-optimized codes on modern microprocessors. Marta Jiménez, José María Llabería, Agustín Fernández |
HPCA | 2 |
| 2000 | Modeling load address behaviour through recurrencesabstractAddresses of load instructions exhibit regularity in their behaviour which is modelled through several models (locality repetitive patterns, etc.) and exploited in processor and memory hierarchy design. Nevertheless, sparse and symbolic applications are intensive in addressing patterns not entirely covered by current models. In this work we introduce a new recurrence among load pairs called "linear link" in order to identify more regularity from such applications. A linear link is a type of recurrence between the value read by a (producer) load and the address issued by a (consumer) load, which is detected tracking on-the-fly dependencies among loads. We consider a broad workload (Nas, Olden, Perfect, Spec95 and IAbench) and conclude that linear links together with stride recurrences can identify many address streams in symbolic and scientific applications traversing either dense, linked data structures or compressed forms of sparse arrays. The two recurrence combinations identify more than 90% of the addresses in more than a half the programs (in 24 our of 55), and more than 75% of the addresses in 90% of the programs (50 our of 55). Finally, we show several measures related to the use of linear links as address predictors for executing loads speculatively and for issuing data prefetches (prediction distance ahead capacity, etc.). Luis M. Ramos, Pablo Ibáñez 0001, Víctor Viñals, José María Llabería |
ISPASS | 4 |
| 1999 | Minimizing Conflicts Between Vector Streams in Interleaved Memory SystemsabstractThe performance of a vector processor accessing vectors placed in memory is strongly dependent on the conflicts produced in the memory subsystem. These conflicts delay the task of the functional units. There can be conflicts between elements of the same vector and between elements of different vector streams. It is known that the presence of the last kind of conflicts is the main cause of cycles lost. This paper proposes an order to access the elements of a vector stream that reduces the average memory access time in vector processors when several vector streams are concurrently accessed. The proposed order determines that the memory system observes the same stride for all the vector streams of a stride family. Conflicts between concurrent vector streams of the same family are completely eliminated if the rate at which memory modules are requested is less than or equal to their service rate. For other cases, the number of lost cycles due to conflicts is dramatically reduced. Anna M. del Corral, José María Llabería |
IEEE Trans. Computers | 2 |
| 1998 | Performance Evaluation of Tiling for the Register LevelabstractTiling is a well-known loop transformation, which is basically used to expose coarse-grain parallelism and to exploit data reuse at the cache level. However, it can also be used to exploit data reuse at the register level and to improve programs's ILP. Previous work on tiling and also commercial compilers are able to perform tiling for the register level in more than one dimension when the iteration space is rectangular. Non-rectangular iteration spaces are commonly found in linear algebra algorithms or can arise as a result of applying previous transformations such as loop skewing. In this paper we evaluate the technique presented in Jimenez et al. (1996) which is able to perform tiling for the register level in more than one dimension in both rectangular and non-rectangular iteration spaces. We use typical linear algebra algorithms having non-rectangular iteration spaces as benchmarks and compare our proposal against commercial preprocessors able to perform optimizing code transformations such as inner unrolling, outer unrolling and software pipelining. We will also present quantitative data showing the benefits of tiling only for the register level, tiling only for the cache level and tiling for both levels simultaneously. Results measured on a ALPHA 21164 processor show that tiling for both cache and register levels improves upon commercial compilers and preprocessors by factors in the range of 1.3 to 6.3. Marta Jiménez, José María Llabería, Agustín Fernández |
HPCA | 2 |
| 1998 | A General Algorithm for Tiling the Register LevelabstractTiling is a well-known loop transformation that can be used to exploit data reuse at the register level and to improve a program’s ILP. Previous work on tiling and also commercial compilers are able to perform tiling for the register level in more than one dimension when the iteration space is rectangular. However, they either cannot handle or can only handle limited cases of non-rectangular iteration spaces. Nonrectangular iteration spaces 1 are commonly found in linear algebra algorithms or can arise as a result of applying previous transformations such as loop skewing. In this paper we present a new general algorithm to perform tiling for the register level in more than one dimension in both rectangular and nonrectangular iteration spaces. Our method uses index set splitting to distinguish loop nests that traverse boundary tiles of the tiled iteration space from loop nests that traverse nonboundary tiles. We evaluate our method using as benchmarks typical linear algebra algorithms having non-rectangular iteration spaces. Results measured on both ALPHA 21064 and MIPS R10000 machines show that our method achieves speedups in the range of 1.11 to 5.96 over commercial compilers and preprocessors able to perform optimizing code transformations. 2. Marta Jiménez, José María Llabería, Agustín Fernández, Enric Morancho |
International Conference on Supercomputing | 2 |
| 1996 | Reducing Inter-Vector-Conflicts in Complex Memory SystemsabstractIn vector processors, the concurrent memory access of several vector streams causes inter-conflicts between references.In a complex memory system where several memory modules are mapped in every bus the number of conflicts increases because the bus must be shared by vector streams.In addition to the memory module access conflicts, bus access conflicts can appear, and also couplings of both type of conflicts.This paper proposes an access order to the vector elements and a mapping model of memory modules in buses that reduce the inter-conflicts in the steady-state. Anna M. del Corral, José María Llabería |
International Conference on Supercomputing | 2 |
| 1996 | Increasing the Effective Bandwidth of Complex Memory Systems in Multivector ProcessorsabstractIn multivector processors, the lost cycles due to conflicts between concurrent vector streams make the effective throughput be lower than the peak throughput. When the request rate of all the concurrent vector streams to every memory module is less than or equal to the service rate, conflicts appear because concurrent vector streams reference memory modules in different orders. In addition, in a memory system where several memory modules are mapped in every bus (complex memory system) bus conflicts are added to memory module conflicts. This paper proposes an access order to the vector stream elements that reduces the average memory access time in vector processors with complex memory systems. When request rate is greater than the service rate, the proposed order reduces the numbe of lost cycles, and the effective throughput increases. In other cases, the effective throughput reach the peak throughput. The proposed order generates the memory references in such a way that the memory modules shared by the concurrent self-conflict-free vector streams, and the sections where memory modules are mapped, are referenced using the same order. Anna M. del Corral, José María Llabería |
SC | 2 |
| 1995 | Loop Transformation Using Nonunimodular MatricesabstractLinear transformations are widely used to vectorize and parallelize loops. A subset of these transformations are unimodular transformations. When a unimodular transformation is used, the exact bounds of the transformed loop nest are easily computed and the steps of the loops are equal to 1. Unimodular loop transformations have been widely used since they permit the implementation of many useful loop transformations. Recently, nonunimodular transformations have been proposed to reduce communication requirements or to use the memory hierarchy efficiently. The methods used for unimodular transformations do not work in the case of nonunimodular transformations, since they do not produce the exact bounds of the transformed loop nest. In this paper, we present a method for nested loop transformation which gives the exact bounds for both unimodular and nonunimodular transformations. The basic idea is to use the Hermite Normal Form (HNF) of the transformation matrix.> Agustín Fernández, José María Llabería, Miguel Valero-García |
IEEE Trans. Parallel Distributed Syst. | 2 |
| 1993 | Reducing Branch Delay to Zero in Pipelined ProcessorsabstractA mechanism to reduce the cost of branches in pipelined processors is described and evaluated. It is based on the use of multiple prefetch, early computation of the target address, delayed branch, and parallel execution of branches. The implementation of this mechanism using a branch target instruction memory is described. An analytical model of the performance of this implementation makes it possible to measure the efficiency of the mechanism with a very low computational cost. The model is used to determine the size of cache lines that maximizes the processor performance, to compare the performance of the mechanism with that of other schemes, and to analyze the performance of the mechanism with two alternative cache organizations.> Antonio González 0001, José María Llabería |
IEEE Trans. Computers | 2 |
| 1992 | Scheduling partitions in systolic algorithmsabstractThe authors present a technique for scheduling partitions in systolic algorithms (SA). This technique can be used in combination with any possible projection used for the problem dependent size SA design and with any possible spatial mapping used for the partitions. They also present the necessary code transformations to transform the sequential code into the code that is executed in a processing element (PE) of the systolic processor (SP). This technique is applied to the matrix by vector problem using a non-unimodular transformation matrix and taking into account input and output of data. Cut&pile spatial mapping is used for the partitions.> Alvaro Suárez, José María Llabería, Agustín Fernández |
ASAP | 2 |
| 1992 | Increasing the Number of Strides for Conflict-Free Vector AccessabstractAddress transformation schemes, such as skewing and linear transformations, have been proposed to achieve conflict-free vector access for some strides in vector processors with multi-module memories. In this paper, we extend these schemes to achieve this conflict-free access for a larger number of strides. The basic idea is to perform an out-of-order access to vectors of fixed length, equal to that of the vector registers of the processor. Both matched and unmatched memories are considered: we show that the number of strides is even larger for the latter case. The hardware for address calculations and access control is described and shown to be of similar complexity as that required for access in order. Mateo Valero, Tomás Lang, José María Llabería, Montse Peiron, Eduard Ayguadé, Juan J. Navarro |
ISCA | 3 |
| 1992 | Evaluation of A + B = K Conditions Without Carry PropagationabstractThe response time of parallel adders is mainly determined by the carry propagation delay. The evaluation of conditions of the type A+B=K is addressed. Although an addition is involved in the comparison, it is shown that it can be evaluated without carry propagation, thus drastically reducing the computation time. Dependencies produced by branches degrade the performance of pipelined computers. The evaluation of conditions is often one of the critical paths in the execution of branch instructions. A circuit is proposed for the fast evaluation of A+B=K conditions that can significantly improve processor performance.> Jordi Cortadella, José María Llabería |
IEEE Trans. Computers | 2 |
| 1991 | Transformation of systolic algorithms for interleaving partitionsabstractA systematic method to map systolic problems onto multicomputers is presented. A systolic problem is a problem for which it is possible to design a systolic algorithm. This method selects and transforms the systolic algorithm into a parallel algorithm with high granularity. The communications requirements are reduced and the performance can be increased. The proposed scheme requires a classification of dependences and it is based on the interleaved execution of several partitions of the systolic algorithm. The code to be executed in a processing element of the multicomputer system is obtained through application of the proposed systematic transformations to the original sequential code. By applying this method to algebraic path problem (APP), the authors illustrate the main features, and several performance measures for a torus of transputers system are presented, considering the various algorithms which are unified by the APP.> Agustín Fernández, José María Llabería, Juan J. Navarro, Miguel Valero-García |
ASAP | 2 |
| 1991 | Performance evaluation of transputer systems with linear algebra problems
Agustín Fernández, José María Llabería, Juan J. Navarro, Miguel Valero-García |
Microprocessing and Microprogramming | 2 |
| 1990 | Implementation of systolic algorithms using pipelined functional unitsabstractThe authors present a method to implement systolic algorithms (SAs) using pipelined functional units (PFUs). This kind of unit makes it possible to improve the throughput of a processor because of the possibility of initiating a new operation before the previous one has been completed. The method permits transformation of a SA so that it can be efficiently executed using PFUs. The method is based on two temporal transformations (slowdown and retiming) and one spatial transformation (coalescing). The temporal transformations permit the modification of the SA in such a way that dependences established by the PFU are preserved. The spatial transformation improves the hardware utilization. The method was applied to 1-D SAs with data contraflow. To demonstrate the effectiveness of the method, the authors describe an efficient implementation of a non-time-homogeneous SA with data contraflow for QR decomposition.> Miguel Valero-García, Juan J. Navarro, José María Llabería, Mateo Valero |
ASAP | 3 |
| 1989 | Instruction fetch unit for parallel execution of branch instructionsabstractA mechanism to reduce the cost of branches in pipelined processors is presented. This technique is implemented by means of a non-conventional cache (branch target cache) and an early branch detection circuit. Branches are executed by the instruction fetch unit (IFU) in parallel with the other instructions. In this way, the execution time cost for many branches can be effectively reduced to zero. In order to obtain the IFU design parameters, the mechanism is evaluated by means of an analytical model. Simulation results show the effectiveness of this technique. Antonio González 0001, José María Llabería |
ICS | 2 |
| 1989 | Systematic Hardware Adaptation of Systolic AlgorithmsabstractIn this paper we propose a methodology to adapt Systolic Algorithms to the hardware selected for their implementation. Systolic Algorithms obtained can be efficiently implemented using Pipelined Functional Units. The methodology is based on two transformation rules. These rules are applied to an initial Systolic Algorithm, possibly obtained through one of the design methodologies proposed by other authors. Parameters for these transformations are obtained from the specification of the hardware to be used. The methodology has been particularized in the case of one-dimensional Systolic Algorithms with data contraflow. Miguel Valero-García, Juan J. Navarro, José María Llabería, Mateo Valero |
ISCA | 3 |
| 1988 | A mechanism for reducing the cost of branches in RISC architectures
Antonio González 0001, José María Llabería, Jordi Cortadella |
Microprocess. Microprogramming | 2 |
| 1986 | Solving Matrix Problems with No Size Restriction on a Systolic Array Processor
Juan J. Navarro, José María Llabería, Mateo Valero |
ICPP | 2 |
| 1986 | Computing Size-Independent Matrix Problems on Systolic Array ProcessorsabstractA methodology to transform dense to band matrices is presented in this paper. This transformation, is accomplished by triangular blocks partitioning, and allows the implementation of solutions to problems with any given size, by means of contraflow systolic arrays, originally proposed by H.T. Kung. Matrix-vector and matrix-matrix multiplications are the operations considered here. The proposed transformations allow the optimal utilization of processing elements (PEs) of the systolic array when dense matrix are operated. Every computation is made inside the array by using adequate feedback. The feedback delay time depends only on the systolic array size. Juan J. Navarro, José María Llabería, Mateo Valero |
ISCA | 2 |
| 1985 | Analysis and Simulation of Multiplexed Single-Bus Networks With and Without BufferingabstractPerformance issues of a single-bus interconnection network for multiprocessor systems, operating in a multiplexed way, are presented in this paper. Several models are developed and used to allow system performance evaluation. Comparisons with equivalent crossbar systems are provided. It is shown how crossbar EBW values can be reached and exceeded when appropriate operation parameters are chosen in a multiplexed single-bus system. Another architectural feature is considered, concerning the utilization of buffers at the memory modules. With the buffering scheme, memory interference can be reduced so that the system performance is practically improved. José María Llabería, Mateo Valero, Enrique Herrada Lillo, Jesús Labarta |
ISCA | 1 |
| 1983 | A performance evaluation of the multiple bus network for multiprocessor systemsabstractIn this paper we present a mathematical model to compute the bandwidth of the multiple bus interconnection network. Due to the computational complexity associated with the exact solution, the processors are removed from the queues at the end of each memory cycle to facilitate the analysis. This leads to approximate solutions which are both easier to obtain and very accurate. Mateo Valero, José María Llabería, Jesús Labarta, Emilio Sanvicente, Tomás Lang |
SIGMETRICS | 2 |