Christoph W. Kessler

dblp:k/ChristophWKessler · also Christoph W. Keßler · DBLP profile ↗
← Back
56ranked-venue papers
21as first author
7since 2021 · last 2026
0000-0001-5241-0026ORCID · verified

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

Systems, architecture and hardware · 30 · 12 first-author · 3 since 2021Software engineering, systems software and programming languages · 8 · 3 first-author · 2 since 2021Human-computer interaction and ubiquitous computing · 3 · 2 first-authorTheory of computation · 1 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 1 · 1 since 2021
YearPublicationVenuePosition
2026 Quality assurance of LLM-generated code: Addressing non-functional quality characteristics
abstract
In recent years, large language models have been widely integrated into software engineering workflows, supporting tasks like code generation. While prior evaluations focus on functional correctness, there is still a limited understanding of the non-functional quality characteristics of generated code. Guided by the ISO/IEC 25010 quality model, this study adopts a multi-methods approach comprising three complementary elements: a literature review of 109 papers, two industry workshops with practitioners from multiple organizations, and an empirical analysis of patching real-world software issues using three LLMs. Motivated by insights from both the literature and practitioners, the empirical study examined the quality of generated patches regarding security, maintainability, and performance efficiency, which were identified as critical code-level quality attributes. Our results indicate that existing research primarily emphasizes security, performance efficiency, and maintainability, while other quality attributes are understudied. In contrast, practitioners prioritize maintainability and readability, warning that generated code may accelerate the accumulation of technical debt. The empirical evaluation demonstrates the instability of optimizing NFQCs through prompts in practical software engineering settings. Overall, our findings expose a misalignment between academic focus, industry priorities, and observed model behavior, highlighting the need to integrate quality assurance mechanisms into LLM code generation pipelines to ensure that future generated code not only passes tests but truly passes with quality.
Xin Sun 0019, Daniel Ståhl, Kristian Sandahl, Christoph W. Kessler
J. Syst. Softw.4
2025 Quality-Aware Energy-Efficient Scheduling of Moldable-Parallel Streaming Computations on Heterogeneous Multicore CPUs with DVFS
Sajad Khosravi, Sebastian Litzinger, Christoph W. Kessler, Jörg Keller 0001
JSSPP3
2025 Optimization of resource-aware parallel and distributed computing: a review
abstract
This paper presents a review of state-of-the-art solutions concerning the optimization of computing in the field of parallel and distributed systems. Firstly, we contribute by identifying resources and quality metrics in this context including servers, network interconnects, storage systems, computational devices as well as execution time/performance, energy, security, and error vulnerability, respectively. We subsequently identify commonly used problem formulations and algorithms for integer linear programming, greedy algorithms, dynamic programming, genetic algorithms, particle swarm optimization, ant colony optimization, game theory, and reinforcement learning. Afterward, we characterize frequently considered optimization problems by stating these terms in domains such as data centers, cloud, fog, blockchain, high performance, and volunteer computing. Based on the extensive analysis, we identify how particular resources and corresponding quality metrics are considered in these domains and which problem formulations are used for which system types, either parallel or distributed environments. This allows us to formulate open research problems and challenges in this field and analyze research interest in problem formulations/domains in recent years.
Pawel Czarnul, Marcel Antal, Hamza Baniata, Dalvan Griebler, Attila Kertész, Christoph W. Kessler, Andreas Kouloumpris, Salko Kovacic, András Márkus, Maria K. Michael, Panagiota Nikolaou, Isil Öz, Radu Prodan, Gordana Rakic
J. Supercomput.6
2022 Analyzing Programming Effort Model Accuracy of High-Level Parallel Programs for Stream Processing
abstract
Over the years, several Parallel Programming Models (PPMs) have supported the abstraction of programming complexity for parallel computer systems. However, few studies aim to evaluate the productivity reached by such abstractions since this is a complex task that involves human beings. There are several studies to develop predictive methods to estimate the effort required to develop software applications. In order to evaluate the reliability of such metrics, it is necessary to assess the accuracy in different programming paradigms. In this work, we used the data of an experiment conducted with beginners in parallel programming to determine the effort required for implementing stream parallelism using FastFlow, SPar, and TBB. Our results show that some traditional software effort estimation models, such as COCOMO II, fall short. In contrast, Planning Poker could contribute toward a parallel-aware effort model.
Gabriella Andrade, Dalvan Griebler, Rodrigo Pereira dos Santos, Christoph W. Kessler, August Ernstsson, Luiz Gustavo Fernandes
SEAA4
2022 EXA2PRO: A Framework for High Development Productivity on Heterogeneous Computing Systems
abstract
Programming upcoming exascale computing systems is expected to be a major challenge. New programming models are required to improve programmability, by hiding the complexity of these systems from application developers. The EXA2PRO programming framework aims at improving developers’ productivity for applications that target heterogeneous computing systems. It is based on advanced programming models and abstractions that encapsulate low-level platform-specific optimizations and it is supported by a runtime that handles application deployment on heterogeneous nodes. It supports a wide variety of platforms and accelerators (CPU, GPU, FPGA-based Data-Flow Engines), allowing developers to efficiently exploit heterogeneous computing systems, thus enabling more HPC applications to reach exascale computing. The EXA2PRO framework was evaluated using four HPC applications from different domains. By applying the EXA2PRO framework, the applications were automatically deployed and evaluated on a variety of computing architectures, enabling developers to obtain performance results on accelerators, test scalability on MPI clusters and productively investigate the degree by which each application can efficiently use different types of hardware resources.
Lazaros Papadopoulos, Dimitrios Soudris, Christoph W. Kessler, August Ernstsson, Johan Ahlqvist, Nikos Vasilas, Athanasios I. Papadopoulos, Panos Seferlis, Charles Prouveur, Matthieu Haefele, Samuel Thibault, Athanasios Salamanis, Theodoros Ioakimidis, Dionisis D. Kehagias
IEEE Trans. Parallel Distributed Syst.3
2021 Temperature-Aware Energy-Optimal Scheduling of Moldable Streaming Tasks onto 2D-Mesh-Based Many-Core CPUs with DVFS
Christoph W. Kessler, Jörg Keller 0001, Sebastian Litzinger
JSSPP1
2021 Crown-scheduling of sets of parallelizable tasks for robustness and energy-elasticity on many-core systems with discrete dynamic voltage and frequency scaling
abstract
Crown scheduling is a static scheduling approach for sets of parallelizable tasks with a common deadline, aiming to minimize energy consumption on parallel processors with frequency scaling. We demonstrate that crown schedules are robust, i. e. that the runtime prolongation of one task by a moderate percentage does not cause a deadline transgression by the same fraction. In addition, by speeding up some tasks scheduled after the prolonged task, the deadline can still be met at a moderate additional energy consumption. We present a heuristic to perform this re-scaling online and explore the tradeoff between additional energy consumption in normal execution and limitation of deadline transgression in delay cases. We evaluate our approach with scheduling experiments on synthetic and application task sets. Finally, we consider influence of heterogeneous platforms such as ARM’s big.LITTLE on robustness.
Christoph W. Kessler, Sebastian Litzinger, Jörg Keller 0001
J. Syst. Archit.1
2020 Robustness and Energy-elasticity of Crown Schedules for Sets of Parallelizable Tasks on Many-core Systems with DVFS
abstract
Croivn scheduling is a static scheduling approach for sets of parallelizable tasks with a common deadline, aiming to minimize energy consumption on parallel processors with frequency scaling. We demonstrate that crown schedules are robust, i.e. that the runtime prolongation of one task by a moderate percentage does not cause a deadline transgression by the same fraction. In addition, by speeding up some tasks scheduled after the prolonged task, the deadline can still be met at a moderate additional energy consumption. We present a heuristic to perform this re-scaling online. We evaluate our approach with scheduling experiments on synthetic task sets.
Christoph W. Kessler, Sebastian Litzinger, Jörg Keller 0001
PDP1
2020 Maximizing Profit in Energy-Efficient Moldable Task Execution with Deadline
abstract
We consider static scheduling of parallelizable tasks onto machines with frequency scaling for the case that not all tasks can be executed prior to a deadline. We model this scenario from a HPC cluster operator's perspective. We solve the combinatorial optimization problem to maximize the operator's profit by integer linear programming and by a heuristic. We evaluate the heuristic with synthetic benchmark task sets and demonstrate that it achieves at most 20 % less profit than the solution via linear programming, so that it can be used for large task sets where the latter is not feasible anymore.
Sebastian Litzinger, Jörg Keller 0001, Christoph W. Kessler
PDP3
2020 Voltage Island-Aware Energy-Efficient Scheduling of Parallel Streaming Tasks on Many-Core CPUs
abstract
For multi- and many-core CPUs, dynamic voltage and frequency scaling (DVFS) for individual cores provides an effective way for energy-efficient execution of applications. However, this requires additional hardware within the chip that regulates voltage and frequency for each hardware sub-component that can be scaled separately. Because of the significant cost of this control hardware, it is often not realistic to provide such a regulator for each individual core. Instead, chip manufacturers group cores into islands consisting of multiple cores with a common regulator, and energy optimizing solutions must take this constraint into account when assigning frequencies to jobs and cores. Crown Scheduling is a technique for the combined resource allocation, mapping and discrete DVFS-level selection for actor networks consisting of moldable parallel streaming tasks for energy efficient execution given a throughput constraint. We extend crown scheduling to compute correct schedules also in the presence of DVFS islands constraints. We find that, for most task sets, the crown scheduler computes almost equally good schedules for target architectures with and without island constraints.
Nicolas Melot, Christoph W. Kessler, Jörg Keller 0001
PDP2
2020 Portable exploitation of parallel and heterogeneous HPC architectures in neural simulation using SkePU
abstract
The complexity of modern HPC systems requires the use of new tools that support advanced programming models and offer portability and programmability of parallel and heterogeneous architectures. In this work we evaluate the use of SkePU framework in an HPC application from the neural computing domain. We demonstrate the successful deployment of the application based on SkePU using multiple back-ends (OpenMP, OpenCL and MPI) and present lessons-learned towards future extensions of the SkePU framework.
Sotirios Panagiotou, August Ernstsson, Johan Ahlqvist, Lazaros Papadopoulos, Christoph W. Kessler, Dimitrios Soudris
SCOPES5
2020 Leveraging access mode declarations in a model for memory consistency in heterogeneous systems
Ludovic Henrio, Christoph W. Kessler, Lu Li 0001
J. Log. Algebraic Methods Program.2
2020 Programming languages for data-Intensive HPC applications: A systematic mapping study
Vasco Amaral 0001, Beatriz Norberto, Miguel Goulão, Marco Aldinucci, Siegfried Benkner, Andrea Bracciali, Paulo Carreira 0001, Edgars Celms, Luís Correia 0001, Clemens Grelck, Helen D. Karatza, Christoph W. Kessler, Peter Kilpatrick, Hugo F. M. C. Martiniano, Ilias Mavridis, Sabri Pllana, Ana Respício, José Simão, Luís Veiga, Ari Visa
Parallel Comput.12
2020 Static Scheduling of Moldable Streaming Tasks With Task Fusion for Parallel Systems With DVFS
abstract
We consider the problem of statically scheduling a task graph of moldable streaming tasks (i.e., the actor network) to a multicore or many-core CPU with discrete dynamic voltage and frequency scaling (DVFS). We employ an integer linear programming (ILP) approach that combines allocating cores to tasks, mapping tasks to core subsets, selecting a DVFS level for each task, and considering all options for task fusion as provided by a cost model, given data throughput and latency requirements and targeting low energy consumption. We also propose a partly decoupled approach that applies greedy prefusion before running an ILP-based scheduler considering the other three subproblems together. We use microbenchmarking on an ARM big.LITTLE architecture to quantify the advantage of task fusion in the above setting, and evaluate the use of task fusion in terms of energy savings, latency improvement, and scheduling time for three real-world applications. We confirm the scheduling results by running the applications with and without task fusions on the ARM big.LITTLE. Results indicate that streaming applications can profit from task fusion, as we achieve a significant reduction of energy consumption in most cases, while scheduling time is only moderately increased.
Christoph W. Kessler, Sebastian Litzinger, Jörg Keller 0001
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.1
2020 Hybrid CPU-GPU execution support in the skeleton programming framework SkePU
abstract
In this paper, we present a hybrid execution backend for the skeleton programming framework SkePU. The backend is capable of automatically dividing the workload and simultaneously executing the computation on a multi-core CPU and any number of accelerators, such as GPUs. We show how to efficiently partition the workload of skeletons such as Map, MapReduce, and Scan to allow hybrid execution on heterogeneous computer systems. We also show a unified way of predicting how the workload should be partitioned based on performance modeling. With experiments on typical skeleton instances, we show the speedup for all skeletons when using the new hybrid backend. We also evaluate the performance on some real-world applications. Finally, we show that the new implementation gives higher and more reliable performance compared to an old hybrid execution implementation based on dynamic scheduling.
Tomas Öhberg, August Ernstsson, Christoph W. Kessler
J. Supercomput.3
2019 Global optimization of operand transfer fusion in heterogeneous computing
abstract
We consider the problem of minimizing, for a dataflow graph of kernel calls, the overall number of operand data transfers, and thus, the accumulated transfer startup overhead, in heterogeneous systems with non-shared memory. Our approach analyzes the kernel-operand dependence graph and reorders the operand arrays in memory such that transfers and memory allocations of multiple operands adjacent in memory can be merged, saving transfer startup costs and memory allocation overheads.
Christoph W. Kessler
SCOPES1
2019 Extending smart containers for data locality-aware skeleton programming
abstract
Summary We present an extension for the SkePU skeleton programming framework to improve the performance of sequences of transformations on smart containers. By using lazy evaluation, SkePU records skeleton invocations and dependencies as directed by smart container operands. When a partial result is required by a different part of the program, the run‐time system will process the entire lineage of skeleton invocations; tiling is applied to keep chunks of container data in the working set for the whole sequence of transformations. The approach is inspired by big data frameworks operating on large clusters where good data locality is crucial. We also consider benefits other than data locality with the increased run‐time information given by the lineage structures, such as backend selection for heterogeneous systems. Experimental evaluation of example applications shows potential for performance improvements due to better cache utilization, as long as the overhead of lineage construction and management is kept low.
August Ernstsson, Christoph W. Kessler
Concurr. Comput. Pract. Exp.2
2018 Lazy Allocation and Transfer Fusion Optimization for GPU-Based Heterogeneous Systems
abstract
We present two memory optimization techniques which improve the efficiency of data transfer over PCIe bus for GPU-based heterogeneous systems, namely lazy allocation and transfer fusion optimization. Both are based on merging data transfers so that less overhead is incurred, thereby increasing transfer throughput and making accelerator usage profitable also for smaller operand sizes. We provide the design and prototype implementation of the two techniques in CUDA. Microbenchmarking results show that especially for smaller and medium-sized operands significant speedups can be achieved. We also prove that our transfer fusion optimization algorithm is optimal.
Lu Li 0001, Christoph W. Kessler
PDP2
2018 MeterPU: a generic measurement abstraction API - Enabling energy-tuned skeleton backend selection
Lu Li 0001, Christoph W. Kessler
J. Supercomput.2
2017 Asymmetric Crown Scheduling
abstract
Streaming applications are often used for embedded and high-performance multi and manycore processors. Achieving high throughput without wasting energy can be achieved by static scheduling of parallelizable tasks with frequency scaling. We present asymmetric crown scheduling, which improves on the static crown scheduling approach by allowing flexible split ratios when subdividing processor groups. We formulate the scheduler as an integer linear program and evaluate it with synthetic task sets. The results demonstrate that a small number of split ratios improves energy efficiency of crown schedules by up to 12% with slightly higher scheduling time.
Manfred Torggler, Jörg Keller 0001, Christoph W. Kessler
PDP3
2016 Efficient Execution of SkePU Skeleton Programs on the Low-Power Multicore Processor Myriad2
abstract
SkePU is a state-of-the-art skeleton programming library for high-level portable programming and efficient execution on heterogeneous parallel computer systems, with a publically available implementation for general-purpose multicore CPU and multi-GPU systems. This paper presents the design, implementation and evaluation of a new back-end of the SkePU skeleton programming library for the new low-power multicore processor Myriad2 by Movidius Ltd. This enables seamless code portability of SkePU applications across both HPC and embedded (Myriad2) parallel computing systems, with decent performance, on these architecturally very diverse types of execution platforms.
Sebastian Thorarensen, Rosandra Cuello, Christoph W. Kessler, Lu Li 0001, Brendan Barry
PDP3
2016 An Extensible Platform Description Language Supporting Retargetable Toolchains and Adaptive Execution
abstract
XPDL is a modular, extensible platform description language for heterogeneous multicore systems and clusters. XPDL models provide metadata about hardware and installed system software that are relevant for adaptive static and dynamic optimizations of application programs and system settings for improved performance and energy efficiency. XPDL is based on XML and uses hyperlinks and inheritance to create modular, distributed libraries of platform models. We also provide a retargetable toolchain that browses and processes XPDL models and generates driver code for microbenchmarking to bootstrap empirical performance and energy models at deployment time. A C++ API enables convenient introspection of platform models, even at run-time, which allows for adaptive dynamic program optimizations such as tuned selection of implementation variants.
Christoph W. Kessler, Lu Li 0001, Aras Atalar, Alin Dobre
SCOPES1
2016 Energy-Optimized Static Scheduling for Many-Cores with Task Parallelization, DVFS and Core Consolidation
abstract
We demonstrate how static, energy-efficient, compiler-generated schedules for independent, parallelizable tasks on parallel machines can be improved by modeling idle power. We assume that the static power consumption of a core comprises a notable fraction of the core's total power, which is more and more often the case. The improvement is achieved by optimally packing cores when deciding about core allocation, mapping and DVFS for each task so that all unused cores can be switched off and overall energy usage is minimized. We evaluate our proposal with a benchmark suite of task collections, and compare the resulting schedules with an optimal scheduler that does not take idle power and core switch-off into account. We find that we can reduce energy consumption by 66% for mostly sequential tasks on many cores and by up to 91% for a realistic multicore processor model.
Nicolas Melot, Christoph W. Kessler, Jörg Keller 0001
SCOPES2
2016 Pruning strategies in adaptive off-line tuning for optimized composition of components on heterogeneous systems
Lu Li 0001, Usman Dastgeer, Christoph W. Kessler
Parallel Comput.3
2015 Fast Crown Scheduling Heuristics for Energy-Efficient Mapping and Scaling of Moldable Streaming Tasks on Many-Core Systems
abstract
Exploiting effectively massively parallel architectures is a major challenge that stream programming can help to face. We investigate the problem of generating energy-optimal code for a collection of streaming tasks that include parallelizable or moldable tasks on a generic manycore processor with dynamic discrete frequency scaling. In this paper we consider crown scheduling, a novel technique for the combined optimization of resource allocation, mapping and discrete voltage/frequency scaling for moldable streaming task collections in order to optimize energy efficiency given a throughput constraint. We present optimal off-line algorithms for separate and integrated crown scheduling based on integer linear programming (ILP) and heuristics able to compute solution faster and for bigger problems. We make no restricting assumption about speedup behavior.
Nicolas Melot, Christoph W. Kessler, Jörg Keller 0001, Patrick Eitschberger
SCOPES2
2015 Performance-aware composition framework for GPU-based systems
Usman Dastgeer, Christoph W. Kessler
J. Supercomput.2
2014 Fast Crown Scheduling Heuristics for Energy-Efficient Mapping and Scaling of Moldable Streaming Tasks on Manycore Systems
abstract
Exploiting effectively massively parallel architectures is a major challenge that stream programming can help facilitate. We investigate the problem of generating energy-optimal code for a collection of streaming tasks that include parallelizable or moldable tasks on a generic manycore processor with dynamic discrete frequency scaling. Streaming task collections differ from classical task sets in that all tasks are running concurrently, so that cores typically run several tasks that are scheduled round-robin at user level in a data-driven way. A stream of data flows through the tasks and intermediate results may be forwarded to other tasks, as in a pipelined task graph. In this article, we consider crown scheduling , a novel technique for the combined optimization of resource allocation, mapping, and discrete voltage/frequency scaling for moldable streaming task collections in order to optimize energy efficiency given a throughput constraint. We first present optimal offline algorithms for separate and integrated crown scheduling based on integer linear programming (ILP). We make no restricting assumption about speedup behavior. We introduce the fast heuristic Longest Task, Lowest Group (LTLG) as a generalization of the Longest Processing Time (LPT) algorithm to achieve a load-balanced mapping of parallel tasks, and the Height heuristic for crown frequency scaling. We use them in feedback loop heuristics based on binary search and simulated annealing to optimize crown allocation. Our experimental evaluation of the ILP models for a generic manycore architecture shows that at least for small and medium-sized streaming task collections even the integrated variant of crown scheduling can be solved to optimality by a state-of-the-art ILP solver within a few seconds. Our heuristics produce makespan and energy consumption close to optimality within the limits of the phase-separated crown scheduling technique and the crown structure. Their optimization time is longer than the one of other algorithms we test, but our heuristics consistently produce better solutions.
Nicolas Melot, Christoph W. Kessler, Jörg Keller 0001, Patrick Eitschberger
ACM Trans. Archit. Code Optim.2
2013 Adaptive Implementation Selection in the SkePU Skeleton Programming Library
Usman Dastgeer, Lu Li 0001, Christoph W. Kessler
APPT3
2013 A Framework for Performance-Aware Composition of Applications for GPU-Based Systems
abstract
User-level components of applications can be made performance-aware by annotating them with performance model and other metadata. We present a component model and a composition framework for the performance-aware composition of applications for modern GPU-based systems from such components, which may expose multiple implementation variants. The framework targets the composition problem in an integrated manner, with particular focus on global performance-aware composition across multiple invocations. We demonstrate several key features of our framework relating to performance-aware composition including implementation selection, both with performance characteristics being known (or learned) beforehand as well as cases when they are learned at runtime. We also demonstrate hybrid execution capabilities of our framework on real applications. Furthermore, as an important step towards global composition, we present a bulk composition technique that can make better composition decisions by considering information about upcoming calls along with data flow information extracted from the source program by static analysis, thus improving over the traditional greedy performance-aware policy that only considers the current call for optimization.
Usman Dastgeer, Christoph W. Kessler
ICPP2
2012 Programmability and performance portability aspects of heterogeneous multi-/manycore systems
abstract
We discuss three complementary approaches that can provide both portability and an increased level of abstraction for the programming of heterogeneous multicore systems. Together, these approaches also support performance portability, as currently investigated in the EU FP7 project PEPPHER. In particular, we consider (1) a library-based approach, here represented by the integration of the SkePU C++ skeleton programming library with the StarPU runtime system for dynamic scheduling and dynamic selection of suitable execution units for parallel tasks; (2) a language-based approach, here represented by the Offload-C++ high-level language extensions and Offload compiler to generate platform-specific code; and (3) a component-based approach, specifically the PEPPHER component system for annotating user-level application components with performance metadata, thereby preparing them for performance-aware composition. We discuss the strengths and weaknesses of these approaches and show how they could complement each other in an integrational programming framework for heterogeneous multicore systems.
Christoph W. Kessler, Usman Dastgeer, Samuel Thibault, Raymond Namyst, Andrew Richards, Uwe Dolinsky, Siegfried Benkner, Jesper Larsson Träff, Sabri Pllana
DATE1
2012 Design of the Language Replica for Hybrid PRAM-NUMA Many-core Architectures
abstract
Parallel programming is widely considered very demanding for an average programmer due to inherent asynchrony of underlying parallel architectures. In this paper we describe the main design principles and core features of Replica -- a parallel language aimed for high-level programming of a new paradigm of reconfigurable, scalable and powerful synchronous shared memory architectures that promise to make parallel programming radically easier with the help of strict memory consistency and deterministic synchronous execution of hardware threads and multi-operations.
Jari-Matti Mäkelä, Erik Hansson, Daniel Åkesson, Martti Forsell, Christoph W. Kessler, Ville Leppänen
ISPA5
2012 Optimized composition of performance-aware parallel components
abstract
SUMMARY We describe the principles of a novel framework for performance‐aware composition of sequential and explicitly parallel software components with implementation variants. Automatic composition results in a table‐driven implementation that, for each parallel call of a performance‐aware component, looks up the expected best implementation variant, processor allocation and schedule given the current problem, and processor group sizes. The dispatch tables are computed off‐line at component deployment time by an interleaved dynamic programming algorithm from time‐prediction meta‐code provided by the component supplier. Copyright © 2011 John Wiley & Sons, Ltd.
Christoph W. Kessler, Welf Löwe
Concurr. Comput. Pract. Exp.1
2012 Integrated Code Generation for Loops
abstract
Code generation in a compiler is commonly divided into several phases: instruction selection, scheduling, register allocation, spill code generation, and, in the case of clustered architectures, cluster assignment. These phases are interdependent; for instance, a decision in the instruction selection phase affects how an operation can be scheduled We examine the effect of this separation of phases on the quality of the generated code. To study this we have formulated optimal methods for code generation with integer linear programming; first for acyclic code and then we extend this method to modulo scheduling of loops. In our experiments we compare optimal modulo scheduling, where all phases are integrated, to modulo scheduling, where instruction selection and cluster assignment are done in a separate phase. The results show that, for an architecture with two clusters, the integrated method finds a better solution than the nonintegrated method for 27% of the instances.
Mattias V. Eriksson, Christoph W. Kessler
ACM Trans. Embed. Comput. Syst.2
2011 Case Study of Efficient Parallel Memory Access Programming for the Embedded Heterogeneous Multicore DSP Architecture ePUMA
abstract
We consider the challenges in writing efficient code for ePUMA, a novel domain-specific heterogeneous multicore architecture with SIMD DSP slave cores, multi-banked on-chip vector register files for parallel access and configurable permutation hardware that decouples memory access from computation. Suitable data layout in memory and in vector registers, combined with using ePUMA's powerful addressing modes, is key to exploiting SIMD units efficiently and achieving the throughput required for prospective applications in 4G mobile telecommunication and multimedia.
Erik Hansson, Joar Sohl, Christoph W. Kessler, Dake Liu
CISIS3
2010 Optimized On-Chip-Pipelined Mergesort on the Cell/B.E
Rikard Hultén, Christoph W. Kessler, Jörg Keller 0001
Euro-Par (2)2
2010 Theory and Algorithms for Parallel Computation
Christoph W. Kessler, Thomas Rauber, Yves Robert, Vittorio Scarano
Euro-Par (2)1
2009 Integrated Modulo Scheduling for Clustered VLIW Architectures
Mattias V. Eriksson, Christoph W. Kessler
HiPEAC2
2009 Message from the PDSEC-09 workshop chairs
abstract
Welcome to the 10th IEEE International Workshop on Parallel and Distributed Scientific and Engineering Computing (PDSEC-09), held on 29 May 2009 in Rome, Italy, in conjunction with the 23rd IEEE Int. Parallel and Distributed Processing Symposium (IPDPS 2009).
Beniamino Di Martino, Christoph W. Kessler, Yi Pan 0001, Thomas Rauber, Gudula Rünger, Laurence T. Yang
IPDPS2
2008 Optimal vs. heuristic integrated code generation for clustered VLIW architectures
abstract
In this paper we present two algorithms for integrated code generation for clustered VLIW architectures. One algorithm is a heuristic based on genetic algorithms, the other algorithm is based on integer linear programming. The performance of the algorithms are compared on a portion of the Mediabench [10] benchmark suite. We found the results of the genetic algorithm to be within one or two clock cycles from optimal for the cases where the optimum is known. In addition the heuristic algorithm produces results in predictable time also when the optimal integer linear program fails.
Mattias V. Eriksson, Oskar Skoog, Christoph W. Kessler
SCOPES3
2007 A Formal Framework for Automated Round-Trip Software Engineering in Static Aspect Weaving and Transformations
abstract
We present a formal framework for a recently introduced approach to automated round-trip software engineering (ARE) in source-level aspect weaving systems. Along with the formalization we improve the original method and suggest a new concept of weaving transactions in aspect-oriented programming (AOP). As the major contribution we formally show how, given a tree-shaped intermediate representation of a program and an ancillary transposition tree, manual edits in statically woven code can consistently be mapped back to their proper source of origin, which is either in the application core or in an element in the aspect space. The presented formalism is constructive. It frames AOP by generalizing static aspect weaving to classical tree transformations.
Mikhail Chalabine, Christoph W. Kessler
ICSE2
2007 Classification and generation of schedules for VLIW processors
abstract
Abstract Exact methods for optimal instruction scheduling are gaining importance. They differ, however, considerably in the assumed processor model and in the space of schedules searched for an optimal solution. We identify and analyze different classes of schedules for VLIW processors. The classes are induced by various common techniques for generating or enumerating them, such as integer linear programming or list scheduling with backtracking. In particular, we study the relationship between VLIW schedules and their equivalent linearized forms (which may be used, e.g., with superscalar processors), and we identify classes of VLIW schedules that can be created from a linearized form using VLIW compaction methods that are just the static equivalents of dynamic instruction dispatch algorithms of in‐order and out‐of‐order issue superscalar processors. For example, we study the class of greedy schedules and show that, if all instructions have multiblock reservation tables, it is safe for time optimization to consider greedy schedules only. We also show that, in certain situations, certain schedules generally cannot be constructed by incremental scheduling algorithms that are based on topological sorting of the data dependence graph. We summarize our findings as a hierarchy of classes of VLIW schedules. These results can sharpen the interpretation of the term ‘optimality’ used with various methods for optimal VLIW scheduling, and may help to identify classes that can be safely ignored when searching for an optimal schedule. Copyright © 2007 John Wiley & Sons, Ltd.
Christoph W. Kessler, Andrzej Bednarski, Mattias V. Eriksson
Concurr. Comput. Pract. Exp.1
2006 Optimal Integrated VLIW Code Generation with Integer Linear Programming
Andrzej Bednarski, Christoph W. Kessler
Euro-Par2
2006 Automated Round-trip Software Engineering in Aspect Weaving Systems
abstract
We suggest an approach to automated round-trip software engineering in source-level aspect weaving systems that allows for transparent mapping of manual edits in the woven program back to the appropriate source of origin, which is either the application core or the aspect space
Mikhail Chalabine, Christoph W. Kessler, Peter Bunus
ASE2
2006 Optimal integrated code generation for VLIW architectures
abstract
Abstract We present a dynamic programming method for optimal integrated code generation for basic blocks that minimizes execution time. It can be applied to single‐issue pipelined processors, in‐order‐issue superscalar processors, VLIW architectures with a single homogeneous register set, and clustered VLIW architectures with multiple register sets. For the case of a single register set, our method simultaneously copes with instruction selection, instruction scheduling, and register allocation. For clustered VLIW architectures, we also integrate the optimal partitioning of instructions, allocation of registers for temporary variables, and scheduling of data transfer operations between clusters. Our method is implemented in the prototype of a retargetable code generation framework for digital signal processors (DSPs), called OPTIMIST. We present results for the processors ARM9E, TI C62x, and a single‐cluster variant of C62x. Our results show that the method can produce optimal solutions for small and (in the case of a single register set) medium‐sized problem instances with a reasonable amount of time and space. For larger problem instances, our method can be seamlessly changed into a heuristic. Copyright © 2006 John Wiley & Sons, Ltd.
Christoph W. Kessler, Andrzej Bednarski
Concurr. Comput. Pract. Exp.1
2004 Topic 10: Parallel Programming: Models, Methods and Programming Languages
Paul H. J. Kelly, Sergei Gorlatch, Christoph W. Kessler, Daniel J. Quinlan
Euro-Par3
2004 A practical access to the theory of parallel algorithms
abstract
We describe a parallel programming environment that implements the PRAM (Parallel Random Access Machine) model. The programming environment consists of a C-based PRAM programming language called FORK with a compiler, libraries and tools, and a fast PRAM simulator. The software is freely available for Unix workstations. The programming environment and a systematic way of writing structured parallel programs for the PRAM model are described in a recent textbook.Even though the programming environment was originally developed for a hardware research project, we show that the system is also especially suited for complementing classical theory courses on PRAM algorithms by programming exercises that allow students to experiment with PRAM-style parallelism and actually implement the algorithms as they appear in the theory textbooks.We describe how the environment was used in a recent graduate-level course on parallel algorithms, and report on feedback that we got from the participants.
Christoph W. Kessler
SIGCSE1
2004 Managing distributed shared arrays in a bulk-synchronous parallel programming environment
abstract
Abstract NestStep is a parallel programming language for the BSP (bulk‐hronous parallel) programming model. In this article we describe the concept of distributed shared arrays in NestStep and its implementation on top of MPI. In particular, we present a novel method for runtime scheduling of irregular, direct remote accesses to sections of distributed shared arrays. Our method, which is fully parallelized, uses conventional two‐sided message passing and thus avoids the overhead of a standard implementation of direct remote memory access based on one‐sided communication. The main prerequisite is that the given program is structured in a BSP‐compliant way. Copyright © 2004 John Wiley & Sons, Ltd.
Christoph W. Kessler
Concurr. Comput. Pract. Exp.1
2002 A dialog between authors and teachers
abstract
The goal of this panel is to examine the following questions with the audience:
Nell B. Dale, Judith Bishop, David J. Barnes, Christoph W. Kessler
ITiCSE4
2002 Mid-term course evaluations with muddy cards
abstract
No abstract available.
Christoph W. Kessler, Simin Nadjm-Tehrani
ITiCSE1
2000 NestStep: Nested Parallelism and Virtual Shared Memory for the BSP Model
Christoph W. Kessler
J. Supercomput.1
1999 Language and library support for practical PRAM programming
Christoph W. Kessler, Jesper Larsson Träff
Parallel Comput.1
1998 Scheduling Expression DAGs for Minimal Register Need
Christoph W. Kessler
Comput. Lang.1
1997 Applicability of Program Comprehension to Sparse Matrix Computations
Christoph W. Kessler
Euro-Par1
1996 A Library of Basic PRAM Algorithms and its Implementation in FORK
abstract
Article Free Access Share on A library of basic PRAM algorithms and its implementation in FORK Authors: Christoph W. Kessler FB 4 Informatik, Universität Trier D-54286 Trier, Germany FB 4 Informatik, Universität Trier D-54286 Trier, GermanyView Profile , Jesper Larsson Träff Max-Planck-Institut für Informatik D-66123 Saarbrücken, Germany Max-Planck-Institut für Informatik D-66123 Saarbrücken, GermanyView Profile Authors Info & Claims SPAA '96: Proceedings of the eighth annual ACM symposium on Parallel Algorithms and ArchitecturesJune 1996 Pages 193–195https://doi.org/10.1145/237502.237545Online:24 June 1996Publication History 4citation220DownloadsMetricsTotal Citations4Total Downloads220Last 12 Months6Last 6 weeks2 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
Christoph W. Kessler, Jesper Larsson Träff
SPAA1
1995 Optimal Continguous Expression DAG Evaluations
Christoph W. Kessler, Thomas Rauber
FCT1
1995 Generating Optimal Contiguous Evaluations for Expression DAGs
Christoph W. Kessler, Thomas Rauber
Comput. Lang.1