Demo Data from EDBT 2026 / reviewers in the wild / expert
Josep M. Codina
dblp:38/2184
· DBLP profile ↗
12ranked-venue papers
2as first author
0since 2021 · last 2011
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 10 · 2 first-authorSoftware engineering, systems software and programming languages · 4 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Computer architecture, parallel and distributed computing, and storage systems
6 papers |
Processor architecture and microarchitecture · 83% Reconfigurable computing and FPGAs · 12% Parallel and multicore computing · 4% | |
| Software engineering, system software, and programming languages
5 papers |
Compilers and program optimization · 100% |
Topics — the 15 heaviest of 15, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Processor architecture and microarchitecture › clustered architecture
clustered microarchitecture |
0.2 | 4 | 2009 | AGAMOS: A Graph-Based Approach to Modulo Scheduling for Clustered Microarchitectures · IEEE Trans. Computers 2009 Removing communications in clustered microarchitectures through instruction replication · ACM Trans. Archit. Code Optim. 2004 Instruction Replication for Clustered Microarchitectures · MICRO 2003 |
Processor architecture and microarchitecture
instruction scheduling |
0.1 | 2 | 2009 | AGAMOS: A Graph-Based Approach to Modulo Scheduling for Clustered Microarchitectures · IEEE Trans. Computers 2009 Graph-partitioning based instruction scheduling for clustered processors · MICRO 2001 |
Compilers and program optimization
instruction scheduling |
0.1 | 3 | 2004 | Removing communications in clustered microarchitectures through instruction replication · ACM Trans. Archit. Code Optim. 2004 Instruction Replication for Clustered Microarchitectures · MICRO 2003 Graph-partitioning based instruction scheduling for clustered processors · MICRO 2001 |
Compilers and program optimization › instruction scheduling › software pipelining
modulo scheduling |
0.1 | 2 | 2005 | Demystifying on-the-fly spill code · PLDI 2005 Removing communications in clustered microarchitectures through instruction replication · ACM Trans. Archit. Code Optim. 2004 |
Processor architecture and microarchitecture
chip multiprocessor |
0.1 | 1 | 2009 | Boosting single-thread performance in multi-core systems through fine-grain multi-threading · ISCA 2009 |
Processor architecture and microarchitecture › multithreading
fine-grain multithreading |
0.1 | 1 | 2009 | Boosting single-thread performance in multi-core systems through fine-grain multi-threading · ISCA 2009 |
Reconfigurable computing and FPGAs
modulo scheduling |
0.1 | 1 | 2009 | AGAMOS: A Graph-Based Approach to Modulo Scheduling for Clustered Microarchitectures · IEEE Trans. Computers 2009 |
Processor architecture and microarchitecture
multithreading |
0.1 | 1 | 2009 | Boosting single-thread performance in multi-core systems through fine-grain multi-threading · ISCA 2009 |
Compilers and program optimization
register allocation |
0.1 | 1 | 2005 | Demystifying on-the-fly spill code · PLDI 2005 |
Compilers and program optimization › register allocation
register pressure reduction |
0.1 | 1 | 2005 | Demystifying on-the-fly spill code · PLDI 2005 |
Processor architecture and microarchitecture
instruction-level parallelism |
0.0 | 2 | 2005 | Demystifying on-the-fly spill code · PLDI 2005 Removing communications in clustered microarchitectures through instruction replication · ACM Trans. Archit. Code Optim. 2004 |
Compilers and program optimization › loop transformation
loop scheduling |
0.0 | 1 | 2009 | AGAMOS: A Graph-Based Approach to Modulo Scheduling for Clustered Microarchitectures · IEEE Trans. Computers 2009 |
Parallel and multicore computing
thread-level parallelism |
0.0 | 1 | 2009 | Boosting single-thread performance in multi-core systems through fine-grain multi-threading · ISCA 2009 |
Processor architecture and microarchitecture › instruction scheduling
software pipelining |
0.0 | 1 | 2005 | Demystifying on-the-fly spill code · PLDI 2005 |
Hardware reliability and fault tolerance › soft errors
instruction duplication |
0.0 | 1 | 2004 | Removing communications in clustered microarchitectures through instruction replication · ACM Trans. Archit. Code Optim. 2004 |
Methods — techniques the papers use, named apart from their topics
instruction replication · 0.4pseudoschedules · 0.2multilevel graph partitioning · 0.2on-the-fly spilling · 0.1a posteriori spilling · 0.1amdahl's law · 0.1modulo scheduling · 0.1spill code generation · 0.1register allocation · 0.1graph partitioning · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2011 | A Power-Efficient Co-designed Out-of-Order ProcessorabstractA co-designed processor helps in cutting down both the complexity and power consumption by co-designing certain key performance enablers. In this paper, we propose a FIFO based co-designed out-of-order processor. Multiple FIFOs are added in order to dynamically schedule, in a complexity-effective manner, the micro-ops. We propose a commit logic that is able to commit the program state as a superblock commits atomically. This enables us to get rid of the Reorder Buffer (ROB) entirely. Instead to maintain the correct program state, we propose a four/eight entry Superblock Ordering Buffer (SOB). We also propose the per superblock Register Rename Table (SRRT) that holds the register state pertaining to the superblock. Our proposed processor dissipates 6% less power and obtains 12% speedup for SPECFP, as a result, it consumes less energy. Furthermore, we propose an enhanced steering heuristic and an early release mechanism to increase the performance of a FIFO based out-of-order processor. We obtain performance improvement of nearly 25% and 70% for a four FIFO and for a two FIFO configurations, respectively. We also show that our proposed steering heuristic based processor consumes 10% less energy than the previously proposed steering heuristic. Abhishek Deb, Josep M. Codina, Antonio González 0001 |
SBAC-PAD | 2 |
| 2009 | Anaphase: A Fine-Grain Thread Decomposition Scheme for Speculative MultithreadingabstractIndustry 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. Carlos Madriles, Pedro López 0001, Josep M. Codina, Enric Gibert, Fernando Latorre, Alejandro Martínez, Raúl Martínez, Antonio González 0001 |
PACT | 3 |
| 2009 | Boosting single-thread performance in multi-core systems through fine-grain multi-threadingabstractIndustry 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 Amdahl's law. Carlos Madriles, Pedro López 0001, Josep M. Codina, Enric Gibert, Fernando Latorre, Alejandro Martínez, Raúl Martínez, Antonio González 0001 |
ISCA | 3 |
| 2009 | AGAMOS: A Graph-Based Approach to Modulo Scheduling for Clustered MicroarchitecturesabstractThis paper presents AGAMOS, a technique to modulo schedule loops on clustered microarchitectures. The proposed scheme uses a multilevel graph partitioning strategy to distribute the workload among clusters and reduces the number of intercluster communications at the same time. Partitioning is guided by approximate schedules (i.e., pseudoschedules), which take into account all of the constraints that influence the final schedule. To further reduce the number of intercluster communications, heuristics for instruction replication are included. The proposed scheme is evaluated using the SPECfp95 programs. The described scheme outperforms a state-of-the-art scheduler for all programs and different cluster configurations. For some configurations, the speedup obtained when using this new scheme is greater than 40 percent, and for selected programs, performance can be more than doubled. Alex Aletà, Josep M. Codina, F. Jesús Sánchez, Antonio González 0001, David R. Kaeli |
IEEE Trans. Computers | 2 |
| 2008 | A software-hardware hybrid steering mechanism for clustered microarchitecturesabstractClustered microarchitectures provide a promising paradigm to solve or alleviate the problems of increasing microprocessor complexity and wire delays. High- performance out-of-order processors rely on hardware-only steering mechanisms to achieve balanced workload distribution among clusters. However, the additional steering logic results in a significant increase on complexity, which actually decreases the benefits of the clustered design. In this paper, we address this complexity issue and present a novel software-hardware hybrid steering mechanism for out-of-order processors. The proposed software- hardware cooperative scheme makes use of the concept of virtual clusters. Instructions are distributed to virtual clusters at compile time using static properties of the program such as data dependences. Then, at runtime, virtual clusters are mapped into physical clusters by considering workload information. Experiments using SPEC CPU2000 benchmarks show that our hybrid approach can achieve almost the same performance as a state-of-the-art hardware-only steering scheme, while requiring low hardware complexity. In addition, the proposed mechanism outperforms state-of-the-art software-only steering mechanisms by 5% and 10% on average for 2-cluster and 4-cluster machines, respectively. Qiong Cai, Josep M. Codina, José González 0002, Antonio González 0001 |
IPDPS | 2 |
| 2007 | Heterogeneous Clustered VLIW MicroarchitecturesabstractIncreasing performance, while at the same time reducing power consumption, is a major design tradeoff in current microprocessors. In this paper, we investigate the potential of using a heterogeneous clustered VLIW microarchitecture. In the proposed microarchitecture, each cluster, the interconnection network and the supporting memory hierarchy can run at different frequencies and voltages. Some of the clusters can then be configured to be performance-oriented and run at high frequency, while the other clusters can be configured to be low-power-oriented and run at lower frequencies, thus reducing overall consumption. For this heterogeneous design to be effective, we need to select the most suitable frequencies and voltages for each component. We propose a scheme to choose these parameters based on a model that estimates the energy consumption and the execution time of floating-point codes at compile time. Finally, we present a modulo scheduling technique based on graph partitioning that exploits the opportunities presented on heterogeneous clustered microarchitectures. Results show that the Energy-Delay product (ED2) can be significantly reduced by 15% on average for a microarchitecture with 4-clusters and by as much as 35% for selected programs Alex Aletà, Josep M. Codina, Antonio González 0001, David R. Kaeli |
CGO | 2 |
| 2007 | Virtual Cluster Scheduling Through the Scheduling GraphabstractThis paper presents an instruction scheduling and cluster assignment approach for clustered processors. The proposed technique makes use of a novel representation named the scheduling graph which describes all possible schedules. A powerful deduction process is applied to this graph, reducing at each step the set of possible schedules. In contrast to traditional list scheduling techniques, the proposed scheme tries to establish relations among instructions rather than assigning each instruction to a particular cycle. The main advantage is that wrong or poor schedules can be anticipated and discarded earlier. In addition, cluster assignment of instructions is performed using another novel concept called virtual clusters, which define sets of instructions that must execute in the same cluster. These clusters are managed during the deduction process to identify incompatibilities among instructions. The mapping of virtual to physical clusters is postponed until the scheduling of the instructions has finalized. The advantages this novel approach features include: (1) accurate scheduling information when assigning, and, (2) accurate information of the cluster assignment constraints imposed by scheduling decisions. We have implemented and evaluated the proposed scheme with superblocks extracted from Speclnt95 and MediaBench. The results show that this approach produces better schedules than the previous state-of-the-art. Speed-ups are up to 15%, with average speed-ups ranging from 2.5% (2-Clusters) to 9.5% (4-Clusters) Josep M. Codina, F. Jesús Sánchez, Antonio González 0001 |
CGO | 1 |
| 2005 | Demystifying on-the-fly spill codeabstractModulo scheduling is an effective code generation technique that exploits the parallelism in program loops by overlapping iterations. One drawback of this optimization is that register requirements increase significantly because values across different loop iterations can be live concurrently. One possible solution to reduce register pressure is to insert spill code to release registers. Spill code stores values to memory between the producer and consumer instructions.Spilling heuristics can be divided into two classes: 1) a posteriori approaches (spill code is inserted after scheduling the loop) or 2) on-the-fly approaches (spill code is inserted during loop scheduling). Recent studies have reported obtaining better results for spilling on-the-fly. In this work, we study both approaches and propose two new techniques, one for each approach. Our new algorithms try to address the drawbacks observed in previous proposals. We show that the new algorithms outperform previous techniques and, at the same time, reduce compilation time. We also show that, much to our surprise, a posteriori spilling can be in fact slitghtly more effective than on-the-fly spilling. Alex Aletà, Josep M. Codina, Antonio González 0001, David R. Kaeli |
PLDI | 2 |
| 2004 | Removing communications in clustered microarchitectures through instruction replicationabstractThe need to communicate values between clusters can result in a significant performance loss for clustered microarchitectures. In this work, we describe an optimization technique that removes communications by selectively replicating an appropriate set of instructions. Instruction replication is done carefully because it might degrade performance due to the increased contention it can place on processor resources. The proposed scheme is built on top of a previously proposed state-of-the-art modulo-scheduling algorithm. Though this algorithm has been proved to be very effective at reducing communications, results show that the number of communications can be further decreased by around one-third through replication, which results in a significant speedup. IPC is increased by 25% on average for a four-cluster microarchitecture and by as much as 70% for selected programs. We also show that replicating appropriate sets of instructions is more effective than doubling the intercluster connection network bandwidth. Alex Aletà, Josep M. Codina, Antonio González 0001, David R. Kaeli |
ACM Trans. Archit. Code Optim. | 2 |
| 2003 | Instruction Replication for Clustered MicroarchitecturesabstractThis work presents a new compilation technique that uses instruction replication in order to reduce the number of communications executed on a clustered microarchitecture. For such architectures, the need to communicate values between clusters can result in a significant performance loss. Inter-cluster communications can be reduced by selectively replicating an appropriate set of instructions. However, instruction replication must be done carefully since it may also degrade performance due to the increased contention it can place on processor resources. The proposed scheme is built on top of a previously proposed state-of-the-art modulo scheduling algorithm that effectively reduces communications. Results show that the number of communications can decrease using replication, which results in significant speed-ups. IPC is increased by 25% on average for a 4-cluster microarchitecture and by as mush as 70% for selected programs. Alex Aletà, Josep M. Codina, Antonio González 0001, David R. Kaeli |
MICRO | 2 |
| 2002 | A comparative study of modulo scheduling techniquesabstractModulo Scheduling is an instruction scheduling technique that is used by many current compilers. Different approaches have been proposed in the past but there is not a quantitative comparison among them, using the same compiling platform, benchmarks and architectures.This paper presents a performance comparison of the most relevant Modulo Scheduling techniques, based on a detailed quantitative evaluation of them. The results point out which are the most effective techniques for different architectures, which is useful for compiler designers when choosing the most appropriate technique for a particular processor architecture. Josep M. Codina, Josep Llosa, Antonio González 0001 |
ICS | 1 |
| 2001 | Graph-partitioning based instruction scheduling for clustered processorsabstractThis paper presents a novel scheme to schedule loops for clustered microarchitectures. The scheme is based on a preliminary cluster assignment phase implemented through graph partitioning techniques followed by a scheduling phase that integrates register allocation and spill code generation. The graph partitioning scheme is shown to be very effective due to its global view of the whole code while the partition is generated. Results show a significant speedup when compared with previously proposed techniques. For some processor configuration the average speedup for the SPECfp95 is 23% with respect to the published scheme with the best performance. Besides, the proposed scheme is much faster (between 2-7 times, depending on the configuration). Alex Aletà, Josep M. Codina, F. Jesús Sánchez, Antonio González 0001 |
MICRO | 2 |