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.

Roberto Castañeda Lozano

dblp:38/8779 · DBLP profile ↗
← Back
16ranked-venue papers
7as first author
4since 2021 · last 2023
0000-0002-2806-7333ORCID · corroborated

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

Software engineering, systems software and programming languages · 9 · 5 first-author · 1 since 2021Artificial intelligence and machine learning · 6 · 2 first-author · 1 since 2021Systems, architecture and hardware · 4 · 2 first-author · 2 since 2021Security and privacy · 1 · 1 since 2021

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.

Software engineering, system software, and programming languages
2 papers
Compilers and program optimization · 100%
Theoretical computer science
1 paper
Mathematical optimization · 100%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Parallel and multicore computing · 77% GPUs and heterogeneous computing · 23%

Topics — the 5 heaviest of 7, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Parallel and multicore computing › parallel programming models and runtimes
parallel patterns
0.512021
Modernizing parallel code with pattern analysis · PPoPP 2021
Compilers and program optimization
instruction scheduling
0.412019
Combinatorial Register Allocation and Instruction Scheduling · ACM Trans. Program. Lang. Syst. 2019
Compilers and program optimization
register allocation
0.412019
Combinatorial Register Allocation and Instruction Scheduling · ACM Trans. Program. Lang. Syst. 2019
Mathematical optimization
constraint programming
0.412019
Combinatorial Register Allocation and Instruction Scheduling · ACM Trans. Program. Lang. Syst. 2019
Mathematical optimization
discrete optimization
0.412019
Combinatorial Register Allocation and Instruction Scheduling · ACM Trans. Program. Lang. Syst. 2019

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

dynamic dataflow graph tracing · 1.0constraint matching · 1.0constraint programming · 0.8combinatorial optimization · 0.8
YearPublicationVenuePosition
2023 Securing Optimized Code Against Power Side Channels
abstract
Side-channel attacks impose a serious threat to cryptographic algorithms, including widely employed ones, such as AES and RSA. These attacks take advantage of the algorithm implementation in hardware or software to extract secret information via side channels. Software masking is a mitigation approach against power side-channel attacks aiming at hiding the secret-revealing dependencies from the power footprint of a vulnerable implementation. However, this type of software mitigation often depends on general-purpose compilers, which do not preserve non-functional properties. Moreover, microarchitectural features, such as the memory bus and register reuse, may also leak secret information. These abstractions are not visible at the high-level implementation of the program. Instead, they are decided at compile time. To remedy these problems, security engineers often sacrifice code efficiency by turning off compiler optimization and/or performing local, post-compilation transformations. This paper proposes Secure by Construction Code Generation (SecCG), a constraint-based compiler approach that generates optimized yet protected against power side channels code. SecCG controls the quality of the mitigated program by efficiently searching the best possible low-level implementation according to a processor cost model. In our experiments with twelve masked cryptographic functions up to 100 lines of code on Mips32 and ARM Thumb, SecCG speeds up the generated code from 77% to 6.6 times compared to non-optimized secure code with an overhead of up to 13% compared to non-secure optimized code at the expense of a high compilation cost. For security and compiler researchers, this paper proposes a formal model to generate power side channel free low-level code. For software engineers, SecCG provides a practical approach to optimize performance critical and vulnerable cryptographic implementations that preserve security properties against power side channels.
Rodothea-Myrsini Tsoupidi, Roberto Castañeda Lozano, Elena Troubitsyna, Panagiotis Papadimitratos
CSF2
2021 Loop Parallelization using Dynamic Commutativity Analysis
abstract
Automatic parallelization has largely failed to keep its promise of extracting parallelism from sequential legacy code to maximize performance on multi-core systems outside the numerical domain. In this paper, we develop a novel dynamic commutativity analysis (DCA) for identifying parallelizable loops. Using commutativity instead of dependence tests, DCA avoids many of the overly strict data dependence constraints limiting existing parallelizing compilers. DCA extends the scope of automatic parallelization to uniformly include both regular array-based and irregular pointer-based codes. We have prototyped our novel parallelism detection analysis and evaluated it extensively against five state-of-the-art dependence-based techniques in two experimental settings. First, when applied to the NAS benchmarks which contain almost 1400 loops, DCA is able to identify as many parallel loops (over 1200) as the profile-guided dependence techniques and almost twice as many as all the static techniques combined. We then apply DCA to complex pointer-based loops, where it can successfully detect parallelism, while existing techniques fail to identify any. When combined with existing parallel code generation techniques, this results in an average speedup of 3.6 × (and up to 55x) across the NAS benchmarks on a 72-core host, and up to 36.9x for the pointer-based loops, demonstrating the effectiveness of DCA in identifying profitable parallelism across a wide range of loops.
Christos Vasiladiotis, Roberto Castañeda Lozano, Murray Cole, Björn Franke
CGO2
2021 Modernizing parallel code with pattern analysis
abstract
Fifty years of parallel programming has generated a substantial legacy parallel codebase, creating a new portability challenge: re-parallelizing already parallel code. Our solution exploits inherently portable parallel patterns, and addresses the challenge of identifying patternization opportunities in legacy parallel code via constraint matching on traced dynamic dataflow graphs. Notably, this makes the analysis source-independent and equally applicable to sequential and parallel legacy code. We identify various map and reduction patterns, including compositions, in Pthreads code. Experiments with the Starbench suite show that our analysis is effective (finding 86% of the patterns known in the literature), accurate (reporting actual patterns in 98% of the cases), and efficient (scaling linearly with the size of the execution traces). We re-express the found patterns via a parallel pattern library, making code freely portable across CPU/GPU systems and performing competitively with hand-tuned implementations at zero additional effort.
Roberto Castañeda Lozano, Murray Cole, Björn Franke
PPoPP1
2021 Constraint-based Diversification of JOP Gadgets
abstract
Modern software deployment process produces software that is uniform, and hence vulnerable to large-scale code-reuse attacks, such as Jump-Oriented Programming (JOP) attacks. Compiler-based diversification improves the resilience and security of software systems by automatically generating different assembly code versions of a given program. Existing techniques are efficient but do not have a precise control over the quality, such as the code size or speed, of the generated code variants. This paper introduces Diversity by Construction (DivCon), a constraint-based compiler approach to software diversification. Unlike previous approaches, DivCon allows users to control and adjust the conflicting goals of diversity and code quality. A key enabler is the use of Large Neighborhood Search (LNS) to generate highly diverse assembly code efficiently. For larger problems, we propose a combination of LNS with a structural decomposition of the problem. To further improve the diversification efficiency of DivCon against JOP attacks, we propose an application-specific distance measure tailored to the characteristics of JOP attacks. We evaluate DivCon with 20 functions from a popular benchmark suite for embedded systems. These experiments show that DivCon's combination of LNS and our application-specific distance measure generates binary programs that are highly resilient against JOP attacks (they share between 0.15% to 8% of JOP gadgets) with an optimality gap of 10%. Our results confirm that there is a trade-off between the quality of each assembly code version and the diversity of the entire pool of versions. In particular, the experiments show that DivCon is able to generate binary programs that share a very small number of gadgets, while delivering near-optimal code. For constraint programming researchers and practitioners, this paper demonstrates that LNS is a valuable technique for finding diverse solutions. For security researchers and software engineers, DivCon extends the scope of compiler-based diversification to performance-critical and resource-constrained applications.
Rodothea-Myrsini Tsoupidi, Roberto Castañeda Lozano, Benoit Baudry
J. Artif. Intell. Res.2
2020 Parallelizing Parallel Programs: A Dynamic Pattern Analysis for Modernization of Legacy Parallel Code
abstract
No abstract available.
Roberto Castañeda Lozano, Murray Cole, Björn Franke
PACT1
2020 Constraint-Based Software Diversification for Efficient Mitigation of Code-Reuse Attacks
Rodothea-Myrsini Tsoupidi, Roberto Castañeda Lozano, Benoit Baudry
CP2
2020 A Hybrid Approach to Parallel Pattern Discovery in C++
abstract
Parallel pattern libraries offer a strong combination of abstraction and performance. However, discovering places in sequential code where parallel patterns should be introduced is still highly non-trivial, often requiring expert manual analysis and profiling. We present a hybrid discovery technique to detect instances of parallel patterns in sequential code. This employs both static and dynamic trace-based analysis, together with hotspot detection. We evaluate our pattern discovery mechanism on a number of representative benchmarks. We evaluate the performance of the resulting parallelised benchmarks on a 24-core parallel machine.
Christopher Brown 0002, Vladimir Janjic, Adam D. Barwell, John Donald Thomson, Roberto Castañeda Lozano, Murray Cole, Björn Franke, José Daniel García, David del Rio Astorga, Kenneth MacKenzie
PDP5
2019 Combinatorial Register Allocation and Instruction Scheduling
abstract
This article introduces a combinatorial optimization approach to register allocation and instruction scheduling, two central compiler problems. Combinatorial optimization has the potential to solve these problems optimally and to exploit processor-specific features readily. Our approach is the first to leverage this potential in practice : it captures the complete set of program transformations used in state-of-the-art compilers, scales to medium-sized functions of up to 1,000 instructions, and generates executable code. This level of practicality is reached by using constraint programming, a particularly suitable combinatorial optimization technique. Unison, the implementation of our approach, is open source, used in industry, and integrated with the LLVM toolchain. An extensive evaluation confirms that Unison generates better code than LLVM while scaling to medium-sized functions. The evaluation uses systematically selected benchmarks from MediaBench and SPEC CPU2006 and different processor architectures (Hexagon, ARM, MIPS). Mean estimated speedup ranges from 1.1% to 10% and mean code size reduction ranges from 1.3% to 3.8% for the different architectures. A significant part of this improvement is due to the integrated nature of the approach. Executing the generated code on Hexagon confirms that the estimated speedup results in actual speedup. Given a fixed time limit, Unison solves optimally functions of up to 946 instructions, nearly an order of magnitude larger than previous approaches. The results show that our combinatorial approach can be applied in practice to trade compilation time for code quality beyond the usual compiler optimization levels, identify improvement opportunities in heuristic algorithms, and fully exploit processor-specific features.
Roberto Castañeda Lozano, Mats Carlsson, Gabriel Hjort Blindell, Christian Schulte 0001
ACM Trans. Program. Lang. Syst.1
2017 Complete and Practical Universal Instruction Selection
abstract
In code generation, instruction selection chooses processor instructions to implement a program under compilation where code quality crucially depends on the choice of instructions. Using methods from combinatorial optimization, this paper proposes an expressive model that integrates global instruction selection with global code motion. The model introduces (1) handling of memory computations and function calls, (2) a method for inserting additional jump instructions where necessary, (3) a dependency-based technique to ensure correct combinations of instructions, (4) value reuse to improve code quality, and (5) an objective function that reduces compilation time and increases scalability by exploiting bounding techniques. The approach is demonstrated to be complete and practical, competitive with LLVM, and potentially optimal (w.r.t. the model) for medium-sized functions. The results show that combinatorial optimization for instruction selection is well-suited to exploit the potential of modern processors in embedded systems.
Gabriel Hjort Blindell, Mats Carlsson, Roberto Castañeda Lozano, Christian Schulte 0001
ACM Trans. Embed. Comput. Syst.3
2016 Register allocation and instruction scheduling in Unison
abstract
This paper describes Unison, a simple, flexible, and potentially optimal software tool that performs register allocation and instruction scheduling in integration using combinatorial optimization. The tool can be used as an alternative or as a complement to traditional approaches, which are fast but complex and suboptimal. Unison is most suitable whenever high-quality code is required and longer compilation times can be tolerated (such as in embedded systems or library releases), or the targeted processors are so irregular that traditional compilers fail to generate satisfactory code.
Roberto Castañeda Lozano, Mats Carlsson, Gabriel Hjort Blindell, Christian Schulte 0001
CC1
2015 Modeling Universal Instruction Selection
Gabriel Hjort Blindell, Roberto Castañeda Lozano, Mats Carlsson, Christian Schulte 0001
CP2
2015 Erratum to: Modeling Universal Instruction Selection
Gabriel Hjort Blindell, Roberto Castañeda Lozano, Mats Carlsson, Christian Schulte 0001
CP2
2014 Combinatorial spill code optimization and ultimate coalescing
abstract
This paper presents a novel combinatorial model that integrates global register allocation based on ultimate coalescing, spill code optimization, register packing, and multiple register banks with instruction scheduling (including VLIW). The model exploits alternative temporaries that hold the same value as a new concept for ultimate coalescing and spill code optimization.
Roberto Castañeda Lozano, Mats Carlsson, Gabriel Hjort Blindell, Christian Schulte 0001
LCTES1
2014 Optimal general offset assignment
abstract
We present an exact approach to the General Offset Assignment problem arising in the domain of address code generation for application specific and digital signal processors. General Offset Assignment is composed of two subproblems, namely to find a permutation of variables in memory and to select a responsible address register for each access to one of these variables. Our method is a combination of established techniques to solve both subproblems using integer linear programming. To the best of our knowledge, it is the first approach capable of solving almost all instances of the established OffsetStone benchmark set to global optimality within reasonable time. We provide a first comprehensive evaluation of the quality of several state-of-the-art heuristics relative to the optimal solutions.
Sven Mallach, Roberto Castañeda Lozano
SCOPES2
2012 Constraint-Based Register Allocation and Instruction Scheduling
Roberto Castañeda Lozano, Mats Carlsson, Frej Drejhammar, Christian Schulte 0001
CP1
2010 Testing Continuous Double Auctions with a Constraint-Based Oracle
Roberto Castañeda Lozano, Christian Schulte 0001, Lars Wahlberg
CP1