Demo Data from EDBT 2026 / reviewers in the wild / expert
William Jalby
dblp:03/6244
· DBLP profile ↗
54ranked-venue papers
4as first author
1since 2021 · last 2025
0000-0002-4975-5469ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 47 · 3 first-author · 1 since 2021Software engineering, systems software and programming languages · 8Applied, interdisciplinary, general and emerging computing · 2 · 1 first-authorSecurity and privacy · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Computer architecture, parallel and distributed computing, and storage systems
13 papers |
Performance modeling and evaluation · 36% High-performance computing · 34% Electronic design automation · 16% | |
| Network and information security
1 paper |
Cryptographic primitives and cryptanalysis · 100% | |
| Software engineering, system software, and programming languages
4 papers |
Compilers and program optimization · 100% |
Topics — the 30 heaviest of 38, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
High-performance computing
performance optimization |
0.3 | 2 | 2018 | The Long and Winding Road Toward Efficient High-Performance Computing · Proc. IEEE 2018 Behavioral Characterization of Multiprocessor Memory Systems: A Case Study · SIGMETRICS 1989 |
High-performance computing › performance optimization
auto-tuning |
0.3 | 1 | 2018 | The Long and Winding Road Toward Efficient High-Performance Computing · Proc. IEEE 2018 |
Electronic design automation
hardware/software co-design |
0.3 | 1 | 2018 | The Long and Winding Road Toward Efficient High-Performance Computing · Proc. IEEE 2018 |
Performance modeling and evaluation
benchmarking |
0.3 | 3 | 2018 | CERE: LLVM-Based Codelet Extractor and REplayer for Piecewise Benchmarking and Optimization · ACM Trans. Archit. Code Optim. 2015 The Long and Winding Road Toward Efficient High-Performance Computing · Proc. IEEE 2018 The Cedar System and an Initial Performance Study · ISCA 1993 |
Performance modeling and evaluation
simulation |
0.2 | 1 | 2015 | CERE: LLVM-Based Codelet Extractor and REplayer for Piecewise Benchmarking and Optimization · ACM Trans. Archit. Code Optim. 2015 |
Performance modeling and evaluation
performance analysis tools |
0.1 | 1 | 2018 | The Long and Winding Road Toward Efficient High-Performance Computing · Proc. IEEE 2018 |
Compilers and program optimization
intermediate representation |
0.1 | 1 | 2015 | CERE: LLVM-Based Codelet Extractor and REplayer for Piecewise Benchmarking and Optimization · ACM Trans. Archit. Code Optim. 2015 |
Memory systems
cache |
0.1 | 7 | 1995 | Influence of Cross-Interferences on Blocked Loops: A Case Study with Matric-Vector Multiply · ACM Trans. Program. Lang. Syst. 1995 Cache Interference Phenomena · SIGMETRICS 1994 Impact of cache interferences on usual numerical dense loop nests · Proc. IEEE 1993 |
Cryptographic primitives and cryptanalysis
hash function cryptanalysis |
0.1 | 1 | 2005 | Collisions of SHA-0 and Reduced SHA-1 · EUROCRYPT 2005 |
Cryptographic primitives and cryptanalysis › hash function cryptanalysis
SHA-1 collision attack |
0.1 | 1 | 2005 | Collisions of SHA-0 and Reduced SHA-1 · EUROCRYPT 2005 |
Memory systems › cache management
cache interference |
0.0 | 3 | 1995 | Influence of Cross-Interferences on Blocked Loops: A Case Study with Matric-Vector Multiply · ACM Trans. Program. Lang. Syst. 1995 Cache Interference Phenomena · SIGMETRICS 1994 Impact of cache interferences on usual numerical dense loop nests · Proc. IEEE 1993 |
Memory systems
cache coherence |
0.0 | 1 | 2000 | Hardware Prediction for Data Coherency of Scientific Codes on DSM · SC 2000 |
Memory systems › shared memory
distributed shared memory |
0.0 | 1 | 2000 | Hardware Prediction for Data Coherency of Scientific Codes on DSM · SC 2000 |
Performance modeling and evaluation
workload characterization |
0.0 | 3 | 1993 | Experimentally Characterizing the Behavior of Multiprocessor Memory Systems. A Case Study · IEEE Trans. Software Eng. 1990 Behavioral Characterization of Multiprocessor Memory Systems: A Case Study · SIGMETRICS 1989 The Cedar System and an Initial Performance Study · ISCA 1993 |
Memory systems › cache design
block size |
0.0 | 1 | 1996 | Impact of Memory Contention on Dynamic Scheduling on NUMA Multiprocessors · IEEE Trans. Parallel Distributed Syst. 1996 |
Memory systems › memory interference
memory contention |
0.0 | 1 | 1996 | Impact of Memory Contention on Dynamic Scheduling on NUMA Multiprocessors · IEEE Trans. Parallel Distributed Syst. 1996 |
Memory systems
non-uniform memory access |
0.0 | 1 | 1996 | Impact of Memory Contention on Dynamic Scheduling on NUMA Multiprocessors · IEEE Trans. Parallel Distributed Syst. 1996 |
Parallel and multicore computing › task scheduling › dynamic scheduling
self-scheduling |
0.0 | 1 | 1996 | Impact of Memory Contention on Dynamic Scheduling on NUMA Multiprocessors · IEEE Trans. Parallel Distributed Syst. 1996 |
Parallel and multicore computing
task scheduling |
0.0 | 1 | 1996 | Impact of Memory Contention on Dynamic Scheduling on NUMA Multiprocessors · IEEE Trans. Parallel Distributed Syst. 1996 |
Performance modeling and evaluation
analytical modeling |
0.0 | 2 | 1996 | Impact of cache interferences on usual numerical dense loop nests · Proc. IEEE 1993 Impact of Memory Contention on Dynamic Scheduling on NUMA Multiprocessors · IEEE Trans. Parallel Distributed Syst. 1996 |
Performance modeling and evaluation › cache performance modeling
cache miss modeling |
0.0 | 1 | 1994 | Cache Interference Phenomena · SIGMETRICS 1994 |
High-performance computing
scientific computing systems |
0.0 | 2 | 2000 | Hardware Prediction for Data Coherency of Scientific Codes on DSM · SC 2000 Impact of cache interferences on usual numerical dense loop nests · Proc. IEEE 1993 |
Compilers and program optimization › memory optimization
data layout optimization |
0.0 | 1 | 1993 | To copy or not to copy: a compile-time technique for assessing when data copying should be used to eliminate cache conflicts · SC 1993 |
Memory systems › memory system modeling
cache behavior prediction |
0.0 | 1 | 1993 | Impact of cache interferences on usual numerical dense loop nests · Proc. IEEE 1993 |
Memory systems › cache › cache miss
cache conflict misses |
0.0 | 1 | 1993 | To copy or not to copy: a compile-time technique for assessing when data copying should be used to eliminate cache conflicts · SC 1993 |
Memory systems › cache › cache behavior
cache miss analysis |
0.0 | 1 | 1993 | Impact of cache interferences on usual numerical dense loop nests · Proc. IEEE 1993 |
Performance modeling and evaluation › parallel system performance
multiprocessor performance evaluation |
0.0 | 1 | 1993 | The Cedar System and an Initial Performance Study · ISCA 1993 |
Performance modeling and evaluation
parallel performance evaluation |
0.0 | 1 | 1993 | The Cedar System and an Initial Performance Study · ISCA 1993 |
Performance modeling and evaluation
cache performance modeling |
0.0 | 1 | 1992 | Characterizing the Behavior of Sparse Algorithms on Caches · SC 1992 |
High-performance computing › sparse linear algebra
sparse matrix computation |
0.0 | 1 | 1992 | Characterizing the Behavior of Sparse Algorithms on Caches · SC 1992 |
Methods — techniques the papers use, named apart from their topics
codelet replay · 0.4codelet extraction · 0.4performance analysis · 0.3auto-tuning · 0.3differential cryptanalysis · 0.1simulation · 0.0analytical modeling · 0.0block size optimization · 0.0stream detection · 0.0hardware prediction · 0.0experimental measurement · 0.0cache interference modeling · 0.0compile-time analysis · 0.0resource allocation · 0.0loop scheduling · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Noise Injection for Performance Bottleneck Analysis
Aurélien Delval, Pablo de Oliveira Castro, William Jalby, Etienne Renault |
Euro-Par (1) | 3 |
| 2018 | The Long and Winding Road Toward Efficient High-Performance ComputingabstractThe major challenge to Exaflop computing, and more generally, efficient high-end computing, is in finding the best “matches” between advanced hardware capabilities and the software used to program applications, so that top performance will be achieved. Several benchmarks show very disappointing performance progress over the last decade, clearly indicating a mismatch between hardware and software. To remedy this problem, it is important that key performance enablers at the software level-autotuning, performance analysis tools, full application optimization-are understood. For each area, we highlight major limitations and most promising approaches to reaching better performance and energy levels. Finally, we conclude by analyzing hardware and software design, trying to pave the way for more tightly integrated hardware and software codesign. William Jalby, David J. Kuck, Allen D. Malony, Michel Masella, Abdelhafid Mazouz, Mihail Popov |
Proc. IEEE | 1 |
| 2017 | An Incremental Methodology for Energy Measurement and ModelingabstractThis paper presents an empirical approach to measuring and modeling the energy consumption of multicore processors.The modeling approach allows us to find a breakdown of the energy consumption among a set of key hardware components, also called HW nodes. We explicitly model the front-end and the back-end in terms of the number of instructions executed. We also model the L1, L2 and L3 caches. Furthermore, we explicitly model the static and dynamic energy consumed by the the uncore and core components. From a software perspective, our methodology allows us to correlate energy to the executed code, which helps find opportunities for code optimization and tuning. Abdelhafid Mazouz, David C. Wong 0001, David J. Kuck, William Jalby |
ICPE | 4 |
| 2017 | Piecewise holistic autotuning of parallel programs with CEREabstractSummary Current architecture complexity requires fine tuning of compiler and runtime parameters to achieve best performance. Autotuning substantially improves default parameters in many scenarios, but it is a costly process requiring long iterative evaluations. We propose an automatic piecewise autotuner based on CERE (Codelet Extractor and REplayer). CERE decomposes applications into small pieces called codelets: Each codelet maps to a loop or to an OpenMP parallel region and can be replayed as a standalone program. Codelet autotuning achieves better speedups at a lower tuning cost. By grouping codelet invocations with the same performance behavior, CERE reduces the number of loops or OpenMP regions to be evaluated. Moreover, unlike whole‐program tuning, CERE customizes the set of best parameters for each specific OpenMP region or loop. We demonstrate the CERE tuning of compiler optimizations, number of threads, thread affinity, and scheduling policy on both nonuniform memory access and heterogeneous architectures. Over the NAS benchmarks, we achieve an average speedup of 1.08× after tuning. Tuning a codelet is 13× cheaper than whole‐program evaluation and predicts the tuning impact with a 94.7% accuracy. Similarly, exploring thread configurations and scheduling policies for a Black‐Scholes solver on an heterogeneous big.LITTLE architecture is over 40× faster using CERE. Mihail Popov, Chadi Akel, Yohan Chatelain, William Jalby, Pablo de Oliveira Castro |
Concurr. Comput. Pract. Exp. | 4 |
| 2016 | Piecewise Holistic Autotuning of Compiler and Runtime Parameters
Mihail Popov, Chadi Akel, William Jalby, Pablo de Oliveira Castro |
Euro-Par | 3 |
| 2015 | PCERE: Fine-Grained Parallel Benchmark Decomposition for Scalability PredictionabstractEvaluating the strong scalability of OpenMP applications is a costly and time-consuming process. It traditionally requires executing the whole application multiple times with different number of threads. We propose the Parallel Codelet Extractor and REplayer (PCERE), a tool to reduce the cost of scalability evaluation. PCERE decomposes applications into small pieces called codelets: each codelet maps to an OpenMP parallel region and can be replayed as a standalone program. To accelerate scalability prediction, PCERE replays codelets while varying the number of threads. Prediction speedup comes from two key ideas. First, the number of invocations during replay can be significantly reduced. Invocations that have the same performance are grouped together and a single representative is replayed. Second, sequential parts of the programs do not need to be replayed for each different thread configuration. PCERE codelets can be captured once and replayed accurately on multiple architectures, enabling cross-architecture parallel performance prediction. We evaluate PCERE on a C version of the NAS 3.0 Parallel Benchmarks (NPB). We achieve an average speed-up of 25 × on evaluating OpenMP applications scalability with an average error of 4.9% (median error of 1.7%). Mihail Popov, Chadi Akel, Florent Conti, William Jalby, Pablo de Oliveira Castro |
IPDPS | 4 |
| 2015 | CERE: LLVM-Based Codelet Extractor and REplayer for Piecewise Benchmarking and OptimizationabstractThis article presents Codelet Extractor and REplayer (CERE), an open-source framework for code isolation. CERE finds and extracts the hotspots of an application as isolated fragments of code, called codelets . Codelets can be modified, compiled, run, and measured independently from the original application. Code isolation reduces benchmarking cost and allows piecewise optimization of an application. Unlike previous approaches, CERE isolates codes at the compiler Intermediate Representation (IR) level. Therefore CERE is language agnostic and supports many input languages such as C, C++, Fortran, and D. CERE automatically detects codelets invocations that have the same performance behavior. Then, it selects a reduced set of representative codelets and invocations, much faster to replay, which still captures accurately the original application. In addition, CERE supports recompiling and retargeting the extracted codelets. Therefore, CERE can be used for cross-architecture performance prediction or piecewise code optimization. On the SPEC 2006 FP benchmarks, CERE codelets cover 90.9% and accurately replay 66.3% of the execution time. We use CERE codelets in a realistic study to evaluate three different architectures on the NAS benchmarks. CERE accurately estimates each architecture performance and is 7.3 × to 46.6 × cheaper than running the full benchmark. Pablo de Oliveira Castro, Chadi Akel, Eric Petit 0002, Mihail Popov, William Jalby |
ACM Trans. Archit. Code Optim. | 5 |
| 2014 | Fine-grained Benchmark Subsetting for System Selection
Pablo de Oliveira Castro, Yuriy Kashnikov, Chadi Akel, Mihail Popov, William Jalby |
CGO | 5 |
| 2014 | CQA: A code quality analyzer tool at binary levelabstractMost of today's performance analysis tools are focused on issues occurring at multi-core and communication level. However there are several reasons why an application may not correctly behave in terms of performance at the core level. For a significant part, loops in industrial applications are limited by the quality of the code generated by the compiler and do not always fully benefit from the available computing power of recent processors. For instance, when the compiler is not able to vectorize loops, up to a 8x factor can be lost. It is essential to first validate the core level performance before focusing on higher level issues. This paper presents the CQA tool, a loop-centric code quality analyzer based on a simplified unicore architecture performance modeling and on quality metrics. The tool analyzes the quality of the code generated by the compiler. It provides high level metrics along with human understandable reports that relates to source code. Our performance model assumes that all data are resident in the first level cache. It provides architectural bottlenecks and an estimation of the number of cycles spent in each iteration of a given innermost loop. Our modeling and analyses are statically done and requires no execution or recompilation of the application. We show practical examples of situations where our tool is able to provide very valuable information leading to a performance gain. Andres Charif Rubial, Emmanuel Oseret, Jose Noudohouenou, William Jalby, Ghislain Lartigue |
HiPC | 4 |
| 2013 | Topic 11: Multicore and Manycore Programming - (Introduction)
Luiz De Rose, Jan Eitzinger, William Jalby, Alba Cristina Magalhaes Alves de Melo, David Abramson 0001, Alastair F. Donaldson, Tomàs Margalef |
Euro-Par | 3 |
| 2013 | MIL: A language to build program analysis tools through static binary instrumentationabstractAs software complexity increases, the analysis of code behavior during its execution is becoming more important. Instrumentation techniques, through the insertion of code directly into binaries, are essential for program analyses used in debugging, runtime profiling, and performance evaluation. In the context of high-performance parallel applications, building an instrumentation framework is quite challenging. One of the difficulties is due to the necessity to capture both coarse-grain behavior, such as the execution time of different functions, as well as finer-grain actions, in order to pinpoint performance issues. In this paper, we propose a language, MIL, for the development of program analysis tools based on static binary instrumentation. The key feature of MIL is to ease the integration of static, global program analysis with instrumentation. We will show how this enables both a precise targeting of the code regions to analyze and a better understanding of the optimized program behavior. Andres Charif Rubial, Denis Barthou, Cédric Valensi, Sameer Shende, Allen D. Malony, William Jalby |
HiPC | 6 |
| 2013 | Is Source-Code Isolation Viable for Performance Characterization?abstractSource-code isolation finds and extracts the hotspots of an application as independent isolated fragments of code, called codelets. Codelets can be modified, compiled, run, and measured independently from the original application. Source-code isolation reduces benchmarking cost and allows piece-wise optimization of an application. Source-code isolation is faster than whole-program benchmarking and optimization since the user can concentrate only on the bottlenecks. This paper examines the viability of using isolated codelets in place of the original application for performance characterization and optimization. On the NAS benchmarks, we show that codelets capture 92.3% of the original execution time. We present a set of techniques for keeping codelets as faithful as possible to the original hotspots: 63.6% of the codelets have the same assembly as the original hotspots and 81.6% of the codelets have the same run time performance as the original hotspots. Chadi Akel, Yuriy Kashnikov, Pablo de Oliveira Castro, William Jalby |
ICPP | 4 |
| 2013 | Event Streaming for Online Performance Measurements ReductionabstractAs the power of supercomputers is exponentially increasing, programmers are facing complex codes designed to comply with today's challenging architectural constraints. In such context, the use of tools within the development cycle, is becoming crucial in order to optimise applications at scale. However, it is not possible to obtain all measurements one can think of, because of the cost to produce, store and analyse large amounts of instrumentation-data. Moreover, the file-system is becoming a critical resource, subject to performance and even stability problems under load. This emphasises the need for an alternative approach to trace data management. This paper proposes an alternative to trace-based coupling between instrumentation and analysis. We present a distributed analysis engine, providing concurrent application profiling, thanks to runtime coupling. After demonstrating the advantages of this method in terms of parallelism, we present performance results and sample outputs for NAS-MPI benchmarks and a representative C++ MPI application. Jean-Baptiste Besnard, Marc Pérache, William Jalby |
ICPP | 3 |
| 2013 | Quantifying performance bottleneck cost through differential analysisabstractAccurate performance analysis is critical for understanding application efficiency and then driving software or hardware optimizations. Although most of static and dynamic performance analysis tools provide useful information, they are not completely satisfactory. Static performance analysis does not provide an accurate view due to the lack of runtime information (eg: cache behavior). On the other hand, profilers, generally mixed with hardware counters, provide a wide range of performance metrics but lack the ability to correlate performance informations with the appropriate code fragment, data structure or instruction. Finally, cycle accurate simulators are too complex and too costly to be used routinely for optimization of real life applications. This paper presents the Differential Analysis method, an approach designed for simple and automatic detection of performance bottlenecks. This approach relies on DECAN, a tool which generates different binary variants obtained by patching individual or groups of instructions. The different variants are then measured and compared, allowing to evaluate the cost of an instruction group and therefore its optimization potential benefit. Differential analysis is illustrated by the use of DECAN on a range of HPC applications to detect performance bottlenecks. Souad Koliai, Zakaria Bendifallah, Mathieu Tribalat, Cédric Valensi, Jean-Thomas Acquaviva, William Jalby |
ICS | 6 |
| 2013 | Adaptive sampling for performance characterization of application kernelsabstractSUMMARY Characterizing performance is essential to optimize programs and architectures. The open source Adaptive Sampling Kit (ASK) measures the performance trade‐off in large design spaces. Exhaustively sampling all sets of parameters is computationally intractable. Therefore, ASK concentrates exploration in the most irregular regions of the design space through multiple adaptive sampling strategies. The paper presents the ASK architecture and a set of adaptive sampling strategies, including a new approach called Hierarchical Variance Sampling. ASK's usage is demonstrated on three performance characterization problems: memory stride accesses, Jacobian stencil code, and an industrial seismic application using 3D stencils. ASK builds accurate models of performance with a small number of measures. It considerably reduces the cost of performance exploration. For instance, the Jacobian stencil code design space, which has more than 31 × 108 combinations of parameters, is accurately predicted using only 1500 combinations. Copyright © 2013 John Wiley & Sons, Ltd. Pablo de Oliveira Castro, Eric Petit 0002, Asma Farjallah, William Jalby |
Concurr. Comput. Pract. Exp. | 4 |
| 2012 | ASK: Adaptive Sampling Kit for Performance Characterization
Pablo de Oliveira Castro, Eric Petit 0002, Jean Christophe Beyler, William Jalby |
Euro-Par | 4 |
| 2012 | Improving MPI Communication Overlap with Collaborative Polling
Sylvain Didelot, Patrick Carribault, Marc Pérache, William Jalby |
EuroMPI | 4 |
| 2011 | Hardware Performance Monitoring for the Rest of Us: A Position and Survey
Tipp Moseley, Neil Vachharajani, William Jalby |
NPC | 3 |
| 2009 | On Instruction-Level Method for Reducing Cache Penalties in Embedded VLIW ProcessorsabstractUsual cache optimisation techniques for high performance computing are difficult to apply in embedded VLIW applications. First, embedded applications are not always well structured, and few regular loop nests exist. Real world applications in embedded computing contain hot loops with pointers, indirect arrays accesses, function calls, indirect function calls, non constant stride accesses, etc. Consequently, loop transformations for reducing cache misses are impossible to apply, especially at the back-end level. Second, the strides of memory accesses do not appear to be constant at source code level, because of indirect accesses. Hence, usual prefetching techniques are not applicable. Third, embedded VLIW processors are "cheap" products, they have limited hardware dynamic mechanisms compared to high performance processors : no out-of-order execution, reduced memory hierarchies, small direct mapped caches, lower clock frequencies, etc. Consequently, the code optimisations methods must be simple and take care of code size. This article presents a back-end code optimisation for tolerating non-blocking cache effects at the instruction level (not at the loop level). Our method is based on a robust combination of memory pre-loading with data prefetching, allowing us to optimise both regular and irregular applications at the assembly level. Our experiments with mediabench and SPEC2000 benchmarks suites on the ST231 VLIW processor show a positive performance gain (compared to codes generated with -O3 compiler optimisation flag). Our method induces negligible code size growth (less than 3.9 \% in the extreme case). Samir Ammenouche, Sid Ahmed Ali Touati, William Jalby |
HPCC | 3 |
| 2009 | KBS-MAQAO: A Knowledge Based System for MAQAO ToolabstractThe quest for performance leads to an ever increasing processor complexity. Symmetrically compilers are following the same trend with deeper optimization chain involving a numerous set of techniques. As a result code performance is becoming more and more complex to guarantee, it is sensitive to butterfly effects and difficult to assess without extensive tuning and experiments. Currently, an array of tools is used to handle the performance tuning. Consequently, tuning is a time consuming task, burdensome with a poor productivity. Therefore, a modern approach is much needed, to address the complexity of the task in order to support the multidimensional aspect of performance and federate existing methods. We propose a new approach which is Knowledge Based System for MAQAO kernel (KBS-MAQAO). It represents case specific and general optimization techniques knowledge of an expert, stores the information about the application tested, the information about compiler used (successful/failed optimizations, compiler characteristics). Lamia Djoudi, Vasil Khachidze, William Jalby |
HPCC | 3 |
| 2008 | The Design and Architecture of MAQAOAdvisor: A Live Tuning Guide
Lamia Djoudi, Jose Noudohouenou, William Jalby |
HiPC | 3 |
| 2008 | Fine Tuning Matrix Multiplications on Multicore
Stéphane Zuckerman, Marc Pérache, William Jalby |
HiPC | 3 |
| 2007 | Loop Optimization using Hierarchical Compilation and Kernel DecompositionabstractThe increasing complexity of hardware features for recent processors makes high performance code generation very challenging. In particular, several optimization targets have to be pursued simultaneously (minimizing L1/L2/L3/TLB misses and maximizing instruction level parallelism). Very often, these optimization goals impose different and contradictory constraints on the transformations to be applied. We propose a new hierarchical compilation approach for the generation of high performance code relying on the use of state-of-the-art compilers. This approach is not application-dependent and do not require any assembly hand-coding. It relies on the decomposition of the original loop nest into simpler kernels, typically 1D to 2D loops, much simpler to optimize. We successfully applied this approach to optimize dense matrix muliply primitives (not only for the square case but to the more general rectangular cases) and convolution. The performance of the optimized codes on Itanium 2 and Pentium 4 architectures outperforms ATLAS and in most cases, matches hand-tuned vendor libraries (e.g. MKL) Denis Barthou, Sébastien Donadio, Patrick Carribault, Alexandre Duchateau, William Jalby |
CGO | 5 |
| 2006 | Topic 4: Compilers for High Performance
William Jalby, Oscar G. Plata, Barbara M. Chapman, Paul H. J. Kelly |
Euro-Par | 1 |
| 2006 | An efficient memory operations optimization technique for vector loops on Itanium 2 processorsabstractAbstract To keep up with a large degree of instruction level parallelism (ILP), the Itanium 2 cache systems use a complex organization scheme: load/store queues, banking and interleaving. In this paper, we study the impact of these cache systems on memory instructions scheduling. We demonstrate that, if no care is taken at compile time, the non‐precise memory disambiguation mechanism and the banking structure cause severe performance loss, even for very simple regular codes. We also show that grouping the memory operations in a pseudo‐vectorized way enables the compiler to generate more effective code for the Itanium 2 processor. The impact of this code optimization technique on register pressure is analyzed for various vectorization schemes. Copyright © 2006 John Wiley & Sons, Ltd. William Jalby, Christophe Lemuet, Sid Ahmed Ali Touati |
Concurr. Comput. Pract. Exp. | 1 |
| 2005 | Collisions of SHA-0 and Reduced SHA-1
Eli Biham, Rafi Chen, Antoine Joux, Patrick Carribault, Christophe Lemuet, William Jalby |
EUROCRYPT | 6 |
| 2004 | Improving Load/Store Queues Usage in Scientific ComputingabstractMemory disambiguation mechanisms, coupled with load/store queues in out-of-order processors, are crucial to increase instruction level parallelism (ILP), especially for memory-bound scientific codes. Designing ideal memory disambiguation mechanisms is too complex because it would require precise address bits comparators; thus, modern microprocessors implement simplified and imprecise ones that perform only partial address comparisons. In this paper, we study the impact of such simplifications on the sustained performance of some real processors such that Alpha 21264, Power 4 and Itanium 2. Despite all the advanced features of these processors, we demonstrate in this article that memory address disambiguation mechanisms can cause significant performance loss. We demonstrate that, even if data are located in low cache levels and enough ILP exist, the performance degradation can be up to 21 times slower if no care is taken on the order of accessing independent memory addresses. Instead of proposing a hardware solution to improve load/store queues, as done in [G. Chrysos et al., (1998), S. Sethumadhavan et al., (2003), I. Park et al., (2003), A. Yoaz et al., (1999), S. Onder (2002)], we show that a software (compilation) technique is possible. Such solution is based on the classical (and robust) Id/st vectorization. Our experiments highlight the effectiveness of such method on BLAS 1 codes that are representative of vector scientific loops. Christophe Lemuet, William Jalby, Sid Ahmed Ali Touati |
ICPP | 2 |
| 2000 | Coherency Behavior on DSM: A Case Study (Research Note)
Jean-Thomas Acquaviva, William Jalby |
Euro-Par | 2 |
| 2000 | Experimental Analysis of Coherency Behavior of Shared Memory Scientific ApplicationsabstractWe address the characterization of coherency traffic in shared memory scientific applications. In particular, we are focusing on intrinsic (i.e. architecture independent) coherency properties of scientific codes. The major goal of this study is to understand coherency behavior in particular to determine correlations between the activities of the key components: processors, cache lines, loops and so on. Based on a systematic experimentation study on the well known Splash 2 benchmarks, we discovered a few key properties of coherency behavior: unbalanced spread of coherency events over memory space, spatial properties of coherency events, concentration of coherency events on a very few loops, etc. Characterizing properly these properties is essential for both restructuring applications to improve coherency behavior and/or design new cost effective coherency mechanisms. Consequently, as a result of our characterization we suggest various research directions for improving performance of coherency actions. Jean-Thomas Acquaviva, William Jalby |
MASCOTS | 2 |
| 2000 | Hardware Prediction for Data Coherency of Scientific Codes on DSMabstractThis paper proposes a hardware mechanism for reducing coherency overhead occurring in scientific computations within DSM systems. A first phase aims at detecting, in the address space regular patterns (called streams) of coherency events (such as requests for exclusive, shared or invalidation). Once a stream is detected at a loop level, regularity of data access can be exploited at the loop level (spatial locality) but also between loops (temporal locality). We present a hardware mechanism capable of detecting and exploiting efficiently these regular patterns. Expectable benefits as well as hardware complexity are discussed and the limited drawbacks and potential over-heads are exposed. For a benchmarks suite of typical scientific applications results are very promising both in terms of coherency streams and the effectiveness of our optimizations. Jean-Thomas Acquaviva, William Jalby |
SC | 2 |
| 1999 | OCEANS - Optimising Compilers for Embedded Applications
Michel Barreteau, François Bodin, Zbigniew Chamski, Henri-Pierre Charles, Christine Eisenbeis, John R. Gurd, Jan Hoogerbrugge, William Jalby, Toru Kisuki, Peter M. W. Knijnenburg, Paul van der Mark, Andy Nisbet, Michael F. P. O'Boyle, Erven Rohou, André Seznec, Elena Stöhr, Menno Treffers, Harry A. G. Wijshoff |
Euro-Par | 9 |
| 1998 | OCEANS: Optimising Compilers for Embedded ApplicationsabstractThis paper presents an overview of the activities carried out within the ESPRIT project OCEANS whose objective is to investigate and develop advanced compiler infrastructure for embedded VLIW processors. This combines high and low-level optimisation approaches within an iterative framework for compilation. These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves. Michel Barreteau, François Bodin, Peter Brinkhaus, Zbigniew Chamski, Henri-Pierre Charles, Christine Eisenbeis, John R. Gurd, Jan Hoogerbrugge, William Jalby, Peter M. W. Knijnenburg, Michael F. P. O'Boyle, Erven Rohou, Rizos Sakellariou, André Seznec, Elena Stöhr, Menno Treffers, Harry A. G. Wijshoff |
Euro-Par | 10 |
| 1997 | OCEANS: Optimizing Compilers for Embedded Applications
Bas Aarts, Michel Barreteau, François Bodin, Peter Brinkhaus, Zbigniew Chamski, Henri-Pierre Charles, Christine Eisenbeis, John R. Gurd, Jan Hoogerbrugge, William Jalby, Peter M. W. Knijnenburg, Michael F. P. O'Boyle, Erven Rohou, Rizos Sakellariou, Henk Schepers, André Seznec, Elena Stöhr, Marco Verhoeven, Harry A. G. Wijshoff |
Euro-Par | 11 |
| 1996 | Impact of Memory Contention on Dynamic Scheduling on NUMA MultiprocessorsabstractSelf-scheduling is a method for task scheduling in parallel programs, in which each processor acquires a new block of tasks for execution whenever it becomes idle. To get the best performance, the block size must be chosen to balance the scheduling overhead against the load imbalance. To determine the best block size, a better understanding of the role of load imbalance in self-scheduling performance is needed. In this paper we study the effect of memory contention on task duration distributions and, hence, load balancing in self-scheduling on a Nonuniform Memory Access (NUMA) machine. Experimental studies on a BBN TC2000 are used to reveal the strengths and weaknesses of analytical performance models to predict running time and optimal block size. The models are shown to be very accurate for small block sizes. However, the models fail when the block size is large due to a previously unrecognized source of load imbalance. We extend the analytical models to address this failure. The implications for the construction of compilers and runtime systems are discussed. Dannie Durand, Thierry Montaut, Lionel Kervella, William Jalby |
IEEE Trans. Parallel Distributed Syst. | 4 |
| 1995 | Influence of Cross-Interferences on Blocked Loops: A Case Study with Matric-Vector MultiplyabstractState-of-the art data locality optimizing algorithms are targeted for local memories rather than for cache memories. Recent work on cache interferences seems to indicate that these phenomena can severely affect blocked algorithms cache performance. Because of cache conflicts, it is not possible to know the precise gain brought by blocking. It is even difficult to determine for which problem sizes blocking is useful. Computing the actual optimal block size is difficult because cache conflicts are highly irregular. In this article, we illustrate the issue of precisely evaluating cross-interferences in blocked loops with blocked matrix-vector multiply. Most significant interference phenomena are captured because unusual parameters such as array base addresses are being considered. The techniques used allow us to compute the precise improvement due to blocking and the threshold value of problem parameters for which the blocked loop should be preferred. It is also possible to derive an expression of the optimal block size as a function of problem parameters. Finally, it is shown that a precise rather than an approximate evaluation of cache conflicts is sometimes necessary to obtain near-optimal performance. Christine Fricker, Olivier Temam, William Jalby |
ACM Trans. Program. Lang. Syst. | 3 |
| 1994 | Cache Interference PhenomenaabstractThe impact of cache interferences on program performance (particularly numerical codes, which heavily use the memory hierarchy) remains unknown. The general knowledge is that cache interferences are highly irregular, in terms of occurrence and intensity. In this paper, the different types of cache interferences that can occur in numerical loop nests are identified. An analytical method is developed for detecting the occurrence of interferences and, more important, for computing the number of cache misses due to interferences. Simulations and experiments on real machines show that the model is generally accurate and that most interference phenomena are captured. Experiments also show that cache interferences can be intense and frequent. Certain parameters such as array base addresses or dimensions can have a strong impact on the occurrence of interferences. Modifying these parameters only can induce global execution time variations of 30% and more. Applications of these modeling techniques are numerous and range from performance evaluation and prediction to enhancement of data locality optimizations techniques. Olivier Temam, Christine Fricker, William Jalby |
SIGMETRICS | 3 |
| 1993 | Impact of Memory Contention on Dynamic Scheduling on NUMA MultiprocessorsabstractSelf-scheduling is a method for task schedul ing in parallel programs, in which each processor acquires a new block of tasks for execution whenever it becomes idle. To get the best performance, the block size must be chosen to balance the scheduling overhead against the load im balance. To determine the best block size, better analytical models of self-scheduling are needed. We present an experimental study of self-scheduling on a BBN TC2000, a NUMA machine. Previously published models to predict running time and optimal block size were tested using our experimental results. Although the models gave good predictions for small block sizes, for large block sizes the models fail, underestimating the running time by almost a factor of two. We present an upper bound on the running time and use it to explain this failure. Dannie Durand, Thierry Montaut, Lionel Kervella, William Jalby |
ICPP (1) | 4 |
| 1993 | Evaluating the Impact of Cache Interferences on Numerical CodesabstractIn numerical codes, the regular interleaved accesses that occur within do-loop nests induce cache interference phe nomena that can severely degrade program performance. Cache interferences can significantly increase the volume of memory traffic and the amount of communication in uniprocessors and multiprocessors. In this paper, we iden tify cache interference phenomena, determine their causes and the conditions under which they occur. Based on these results, we derive a methodology for computing an analyt ical expression of cache misses for most classic loop nests, which can be used for precise performance analysis and prediction. We show that cache performance is unstable, because some unexpected parameters such as arrays base address can play a significant role in interference phenom ena. We also show that the impact of cache interferences can be so high, that the benefits of current data local ity optimization techniques can be partially, if not totally, eradicated. Olivier Temam, Christine Fricker, William Jalby |
ICPP (1) | 3 |
| 1993 | The Cedar System and an Initial Performance StudyabstractIn this paper, we give an overview of the Cedar multiprocessor and present recent performance results. These include the performance of some computational kernels and the Perfect Benchmarks. We also present a methodology for judging parallel system performance and apply this methodology to Cedar, Cray YMP-8, and Thinking Machines CM-5. David J. Kuck, Edward S. Davidson, Duncan H. Lawrie, Ahmed H. Sameh, Chuanqi Zhu, Alexander V. Veidenbaum, Jeff Konicek, Pen-Chung Yew, Kyle A. Gallivan, William Jalby, Harry A. G. Wijshoff, Randall Bramley, Ulrike Meier Yang, Perry A. Emrath, David A. Padua, Rudolf Eigenmann, Jay P. Hoeflinger, Greg P. Jaxon, Zhiyuan Li 0001, T. Murphy, John T. Andrews, Stephen W. Turner |
ISCA | 10 |
| 1993 | To copy or not to copy: a compile-time technique for assessing when data copying should be used to eliminate cache conflictsabstractTo reduce conflict misses, this technique, the data layout in a cache is adjusted by copying array files into temporary arrays that exhibit better cache behavior. This approach incurs a cost proportional to the amount of data being copied. To date, there has been no discussion regarding either this tradeoff or the problem of determining what and when to copy. The authors present a compile-time technique for making this determination and present a selective copying strategy based on this methodology. Preliminary experimental results demonstrate that, because of the sensitivity of cache conflicts to small changes in problem size and base addresses, selective copying can lead to better overall performance than either no copying, complete copying, or copying based on manually applied heuristics. Olivier Temam, Elana D. Granston, William Jalby |
SC | 3 |
| 1993 | Impact of cache interferences on usual numerical dense loop nestsabstractIn numerical codes, the regular interleaved accesses that occur within do-loop nests induce cache interference phenomena that can severely degrade program performance. The authors identify cache interference phenomena and determine their causes and the conditions under which they occur. Based on these results, a methodology is derived for computing an analytical expression of cache misses for most classic loop nests, which can be used for precise performance analysis and prediction. It is shown that cache performance is unstable, because some unexpected parameters, such as arrays base address, can play a significant role in interference phenomena. It is also shown that the impact of cache interferences can be so high that the benefits of current data locality optimization techniques can be partially, if not totally, eradicated.> Oliver Temam, Christine Fricker, William Jalby |
Proc. IEEE | 3 |
| 1992 | Characterizing the Behavior of Sparse Algorithms on CachesabstractA methodology is presented for modeling the irregular references of sparse codes using probabilistic methods. The behavior on cache of one of the most frequent primitives, SpMxV sparse matrix vector multiply, is analyzed. A model of its references is built, and performance bottlenecks of SpMxV are analyzed using the model and simulations. The main parameters are identified and their role is explained and quantified. This analysis is then used to discuss optimizations of SpMxV. A blocking technique which takes into account the specifics of sparse codes is proposed.> Olivier Temam, William Jalby |
SC | 2 |
| 1991 | Preliminary Performance Analysis of the Cedar Multiprocessor Memory System
Kyle A. Gallivan, William Jalby, Stephen W. Turner, Alexander V. Veidenbaum, Harry A. G. Wijshoff |
ICPP (1) | 2 |
| 1991 | Behavioral characterization of decoupled access/execute architectureabstractThis paper presents a behavioral characterization methodology highlighting the effects of fine-grain parallelism features and memory hierarchies in scalar uniprocessors.This method is illustrated on a decoupled/access execute (DAE) architecture, the Astronautics ZS-1.DAE architectures are hard to analyze due to the complexity of their organization and provide an interesting target for a performance analysis study.However, our method is general and could be extended to the IBM RISC RS/6000 processor as well as othe~superscalar processors. Daniel Windheiser, William Jalby |
ICS | 2 |
| 1990 | Performance evaluation and prediction for parallel algorithms on the BBN GP1000abstractThe techniques of “load/store” memory reference modeling is based on deriving performance characteristics of the memory architecture of a computer by looking at the behavior of simple sequences of load, store and nop (null operation) instructions. The resulting data base can be used to match load/store templates against algorithm kernels to predict performance or as a source of data for testing analytical models of the architecture. In this paper we study the BBN GP1000 parallel processing system. We show how to build a subset of the load/store kernels needed to characterize the machine and illustrate the behavior of a simple model based on the data. François Bodin, Daniel Windheiser, William Jalby, Daya Atapattu, Mann-Ho Lee, Dennis Gannon |
ICS | 3 |
| 1990 | Experimentally Characterizing the Behavior of Multiprocessor Memory Systems. A Case StudyabstractIt is demonstrated how the behavior of a cache-based multi-vector-processor memory system can be systematically characterized and its performance experimentally correlated with key features of the address stream. The approach is based on the definition of a family of parameterized kernels used to explore specific aspects of the memory system's performance. The empirical results from this kernel suite provide the data from which architectural or algorithmic characteristics can be studied. The results of applying the approach to an Alliant FX/8 are presented and evaluated.> Kyle A. Gallivan, Dennis Gannon, William Jalby, Allen D. Malony, Harry A. G. Wijshoff |
IEEE Trans. Software Eng. | 3 |
| 1989 | Performance prediction of loop constructs on multiprocessor hierarchical-memory systemsabstractIn this paper we discuss the performance prediction of Fortran constructs commonly found in numerical scientific computing. Although the approach is applicable to multi-processors in general, within the scope of the paper we will concentrate on the Alliant FX/8 multiprocessor. The techniques proposed involve a combination of empirical observations, architectural models and analytical techniques, and exploits earlier work on data locality analysis and empirical characterization of the behavior of memory systems. The Lawrence Livermore Loops are used as a test-case to verify the approach. Kyle A. Gallivan, William Jalby, Allen D. Malony, Harry A. G. Wijshoff |
ICS | 2 |
| 1989 | Behavioral Characterization of Multiprocessor Memory Systems: A Case StudyabstractThe speed and efficiency of the memory system is a key limiting factor in the performance of supercomputers. Consequently, one of the major concerns when developing a high-performance code, either manually or automatically, is determining and characterizing the influence of the memory system on performance in terms of algorithmic parameters. Unfortunately, the performance data available to an algorithm designer such as various benchmarks and, occasionally, manufacturer-supplied information, e.g. instruction timings and architecture component characteristics, are rarely sufficient for this task. In this paper, we discuss a systematic methodology for probing the performance characteristics of a memory system via a hierarchy of data-movement kernels. We present and analyze the results obtained by such a methodology on a cache-based multi-vector processor (Alliant FX/8). Finally, we indicate how these experimental results can be used for predicting the performance of simple Fortran codes by a combination of empirical observations, architectural models and analytical techniques. Kyle A. Gallivan, Dennis Gannon, William Jalby, Allen D. Malony, Harry A. G. Wijshoff |
SIGMETRICS | 3 |
| 1988 | On the problem of optimizing data transfers for complex memory systemsabstractParallel supercomputers architectures with complex memory hierarchies or distributed memory systems have become very common. Unfortunately, the problems associated with restructuring software to take advantage of these memory systems are not eas-ily solved. This paper presents an overview of some of the mathematical issues behind several of these problems and attempts to give a brief look at some of the potential solutions. 1 Kyle A. Gallivan, William Jalby, Dennis Gannon |
ICS | 2 |
| 1988 | Squeezing more CPU performance out of a Cray-2 by Vector block schedulingabstractCompile-time scheduling of vector activities on the Cray 2 is studied using a simplified model of the vector instruction stream. An approach based on experience with an array-processor microde scheduling by the authors is shown to be practical. It calls for a pass of loop scheduling followed by a pass of resource allocation. Actual benchmarks of the resulting code are shown, exhibiting speedups as large as 50% over the current CFT77 compiler. The results also give a novel perspective on vector chaining vs. nonchaining processor architectures.> Christine Eisenbeis, William Jalby, Alain Lichnewsky |
SC | 2 |
| 1988 | Strategies for Cache and Local Memory Management by Global Program Transformation
Dennis Gannon, William Jalby, Kyle A. Gallivan |
J. Parallel Distributed Comput. | 2 |
| 1987 | Strategies for Cache and Local Memory Management by Global Program Transformation
Dennis Gannon, William Jalby, Kyle A. Gallivan |
ICS | 2 |
| 1986 | Optimizing Matrix Operations on a Parallel Multiprocessor with a Memory Hierarchical System
William Jalby, Ulrike Meier |
ICPP | 1 |
| 1985 | XOR-Schemes: A Flexible Data Organization in Parallel Memories
Jean Marc Frailong, William Jalby, Jacques Lenfant |
ICPP | 2 |