Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Jens Knoop

dblp:k/JensKnoop · DBLP profile ↗
← Back
45ranked-venue papers
23as first author
0since 2021 · last 2017
—ORCID · none

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

Software engineering, systems software and programming languages · 28 · 14 first-authorSystems, architecture and hardware · 9 · 6 first-authorTheory of computation · 7 · 3 first-authorArtificial intelligence and machine learning · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
8 papers
Compilers and program optimization · 81% Program analysis · 15% Concurrent programming · 4%
Computer architecture, parallel and distributed computing, and storage systems
3 papers
Parallel and multicore computing · 73% High-performance computing · 15% Embedded and real-time systems · 12%

Topics — the 14 heaviest of 17, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Compilers and program optimization
code motion
0.152000
Sparse Code Motion · POPL 2000
Code Motion for Explicitly Parallel Programs · PPoPP 1999
The Power of Assignment Motion · PLDI 1995
Compilers and program optimization › compiler optimization › redundancy elimination
partial redundancy elimination
0.022000
Sparse Code Motion · POPL 2000
The Power of Assignment Motion · PLDI 1995
Compilers and program optimization › parallel language compilation
data-parallel compilation
0.012002
Distribution Assignment Placement: Effective Optimization of Redistribution Costs · IEEE Trans. Parallel Distributed Syst. 2002
Parallel and multicore computing
data-parallel programming
0.012002
Distribution Assignment Placement: Effective Optimization of Redistribution Costs · IEEE Trans. Parallel Distributed Syst. 2002
Compilers and program optimization
code size reduction
0.012000
Sparse Code Motion · POPL 2000
Program analysis › data flow analysis
bit-vector analysis
0.021996
Parallelism for Free: Efficient and Optimal Bitvector Analyses for Parallel Programs · ACM Trans. Program. Lang. Syst. 1996
Lazy Code Motion · PLDI 1992
Program analysis
data flow analysis
0.021996
Parallelism for Free: Efficient and Optimal Bitvector Analyses for Parallel Programs · ACM Trans. Program. Lang. Syst. 1996
Lazy Code Motion · PLDI 1992
Compilers and program optimization
parallel program optimization
0.011999
Code Motion for Explicitly Parallel Programs · PPoPP 1999
Compilers and program optimization › code motion
lazy code motion
0.021994
Optimal Code Motion: Theory and Practice · ACM Trans. Program. Lang. Syst. 1994
Lazy Code Motion · PLDI 1992
Parallel and multicore computing › parallel computing
parallel program analysis
0.011996
Parallelism for Free: Efficient and Optimal Bitvector Analyses for Parallel Programs · ACM Trans. Program. Lang. Syst. 1996
Compilers and program optimization
dead code elimination
0.011994
Partial Dead Code Elimination · PLDI 1994
Compilers and program optimization › dead code elimination
partial dead code elimination
0.011994
Partial Dead Code Elimination · PLDI 1994
Concurrent programming › concurrency semantics
interleaving semantics
0.011999
Code Motion for Explicitly Parallel Programs · PPoPP 1999
Concurrent programming
synchronization
0.011999
Code Motion for Explicitly Parallel Programs · PPoPP 1999

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

redundancy elimination · 0.1dead code elimination · 0.1bitvector dataflow analysis · 0.0dataflow analysis · 0.0data flow analysis · 0.0correctness reasoning · 0.0
YearPublicationVenuePosition
2017 Replacing conjectures by positive knowledge: Inferring proven precise worst-case execution time bounds using symbolic execution
Jens Knoop, Laura Kovács, Jakob Zwirchmayr
J. Symb. Comput.1
2015 T-CREST: Time-predictable multi-core architecture for embedded systems
abstract
Real-time systems need time-predictable platforms to allow static analysis of the worst-case execution time (WCET). Standard multi-core processors are optimized for the average case and are hardly analyzable. Within the T-CREST project we propose novel solutions for time-predictable multi-core architectures that are optimized for the WCET instead of the average-case execution time. The resulting time-predictable resources (processors, interconnect, memory arbiter, and memory controller) and tools (compiler, WCET analysis) are designed to ease WCET analysis and to optimize WCET performance. Compared to other processors the WCET performance is outstanding. The T-CREST platform is evaluated with two industrial use cases. An application from the avionic domain demonstrates that tasks executing on different cores do not interfere with respect to their WCET. A signal processing application from the railway domain shows that the WCET can be reduced for computation-intensive tasks when distributing the tasks on several cores and using the network-on-chip for communication. With three cores the WCET is improved by a factor of 1.8 and with 15 cores by a factor of 5.7. The T-CREST project is the result of a collaborative research and development project executed by eight partners from academia and industry. The European Commission funded T-CREST.
Martin Schoeberl, Sahar Abbaspour, Benny Akesson, Neil C. Audsley, Raffaele Capasso, Jamie Garside, Kees Goossens, Sven Goossens, Scott Hansen, Reinhold Heckmann, Stefan Hepp, Benedikt Huber, Alexander Jordan, Evangelia Kasapaki, Jens Knoop, Yonghui Li 0002, Daniel Wiltsche-Prokesch, Wolfgang Puffitsch, Peter P. Puschner, André Rocha, Cláudio Silva 0002, Jens Sparsø, Alessandro Tocchi
J. Syst. Archit.15
2014 Model-Based Code-Generators and Compilers - Track Introduction
Uwe Aßmann, Jens Knoop, Wolf Zimmermann
ISoLA (1)2
2013 SmacC: A Retargetable Symbolic Execution Engine
Armin Biere, Jens Knoop, Laura Kovács, Jakob Zwirchmayr
ATVA2
2013 The T-CREST approach of compiler and WCET-analysis integration
abstract
A good worst-case performance and the availability of high-quality bounds on the worst-case execution time (WCET) of tasks are central for the construction of hard realtime computer systems for safety-critical applications. Timing-predictability of the whole software/hardware system is a necessary prerequisite to achieve this. We show that a predictable architecture and the tight and seamless integration of compilation and WCET analysis is beneficial to achieve the initial two goals of good worst-case performance and the availability of high-quality bounds on the WCET of computation tasks. Information generated by the compiler improves the WCET analysis. Detailed timing feedback from the WCET analysis helps the compiler to reduce the worst case execution time. The paper describes the interface and the interaction between the industrial strength WCET analysis tool and the compiler as developed in the EU FP7 T-CREST project, and demonstrates the cooperation of these tools with an illustrative example.
Peter P. Puschner, Daniel Wiltsche-Prokesch, Benedikt Huber, Jens Knoop, Stefan Hepp, Gernot Gebhard
ISORC4
2013 Practical experiences of applying source-level WCET flow analysis to industrial code
Björn Lisper, Andreas Ermedahl, Dietmar Schreiner, Jens Knoop, Peter Gliwa
Int. J. Softw. Tools Technol. Transf.4
2013 Comparison of type-based and alias-based component recognition for embedded systems software
Dietmar Schreiner, Gergö Barany, Markus Schordan, Jens Knoop
Int. J. Softw. Tools Technol. Transf.4
2012 Software Aspects of Robotic Systems
Jens Knoop, Dietmar Schreiner
ISoLA (2)1
2012 r-TuBound: Loop Bounds for WCET Analysis (Tool Paper)
Jens Knoop, Laura Kovács, Jakob Zwirchmayr
LPAR1
2011 Beyond loop bounds: comparing annotation languages for worst-case execution time analysis
abstract
Worst-case execution time (WCET) analysis is concerned with computing a precise-as-possible bound for the maximum time the execution of a program can take. This information is indispensable for developing safety-critical real-time systems, e. g., in the avionics and automotive fields. Starting with the initial works of Chen, Mok, Puschner, Shaw, and others in the mid and late 1980s, WCET analysis turned into a well-established and vibrant field of research and development in academia and industry. The increasing number and diversity of hardware and software platforms and the ongoing rapid technological advancement became drivers for the development of a wide array of distinct methods and tools for WCET analysis. The precision, generality, and efficiency of these methods and tools depend much on the expressiveness and usability of the annotation languages that are used to describe feasible and infeasible program paths. In this article we survey the annotation languages which we consider formative for the field. By investigating and comparing their individual strengths and limitations with respect to a set of pivotal criteria, we provide a coherent overview of the state of the art. Identifying open issues, we encourage further research. This way, our approach is orthogonal and complementary to a recent approach of Wilhelm et al. who provide a thorough survey of WCET analysis methods and tools that have been developed and used in academia and industry.
Raimund Kirner, Jens Knoop, Adrian Prantl, Markus Schordan, Albrecht Kadlec
Softw. Syst. Model.2
2010 On the Role of Non-functional Properties in Compiler Verification
Jens Knoop, Wolf Zimmermann
ISoLA (2)1
2010 Practical Experiences of Applying Source-Level WCET Flow Analysis on Industrial Code
Björn Lisper, Andreas Ermedahl, Dietmar Schreiner, Jens Knoop, Peter Gliwa
ISoLA (2)4
2010 Scratchpad memory allocation for data aggregates via interval coloring in superperfect graphs
abstract
Existing methods place data or code in scratchpad memory (SPM) by relying on heuristics or resorting to integer programming or mapping it to a graph-coloring problem. In this article, the SPM allocation problem for arrays is formulated as an interval coloring problem. The key observation is that in many embedded C programs, two arrays can be modeled such that either their live ranges do not interfere or one contains the other (with good accuracy). As a result, array interference graphs often form a special class of superperfect graphs (known as comparability graphs), and their optimal interval colorings become efficiently solvable. This insight has led to the development of an SPM allocation algorithm that places arrays in an interference graph in SPM by examining its maximal cliques. If the SPM is no smaller than the clique number of an interference graph, then all arrays in the graph can be placed in SPM optimally. Otherwise, we rely on containment-motivated heuristics to split or spill array live ranges until the resulting graph is optimally colorable. We have implemented our algorithm in SUIF/machSUIF and evaluated it using a set of embedded C benchmarks from MediaBench and MiBench. Compared to a graph-coloring algorithm and an optimal ILP algorithm (when it runs to completion), our algorithm achieves close-to-optimal results and is superior to graph coloring for the benchmarks tested.
Lian Li 0002, Jingling Xue, Jens Knoop
ACM Trans. Embed. Comput. Syst.3
2009 Adding Timing-Awareness to AUTOSAR Basic-Software -- A Component Based Approach
abstract
AUTOSAR as specified in its current version fosters timing-constraints at application level to support the development of real-time automotive applications. However, the standard's actual specification does not consider any timing information for its basic software. In consequence, the over-all timing-behavior of software running at a specific system node can not be calculated and thus validated at development-time. Even worse, any exchange or modification of basic software modules induces unpredictable alteration in system timing, and may even lead to a severe miss of execution deadlines. Within this paper we solve this issue by using a component based basic software architecture, as much as timing-aware software composition for basic software components. We therefore introduce timing contracts as enhancement for existing interface contracts, specify a timing annotation language on a conceptual level, and demonstrate how to capitalize on our approach by calculating timings within composed basic software architectures at development time.
Dietmar Schreiner, Markus Schordan, Jens Knoop
ISORC3
2006 A Fresh Look at PRE as a Maximum Flow Problem
Jingling Xue, Jens Knoop
CC2
2004 Optimizing for space and time usage with speculative partial redundancy elimination
abstract
Speculative partial redundancy elimination (SPRE) uses execution profiles to improve the expected performance of programs. We show how the problem of placing expressions to achieve the optimal expected performance can be mapped to a particular kind of network flow problem and hence solved by well known techniques. Our solution is sufficiently efficient to be used in practice. Furthermore, the objective function may be chosen so that reduction in space requirements is the primary goal and execution time is secondary. One surprising result that an explosion in size may occur if speed is the sole goal, and consideration of space usage is therefore important.
Bernhard Scholz, R. Nigel Horspool, Jens Knoop
LCTES3
2002 Distribution Assignment Placement: Effective Optimization of Redistribution Costs
abstract
Data locality and workload balance are key factors for getting high performance out of data-parallel programs on multiprocessor architectures. Data-parallel languages such as High-Performance Fortran (HPF) thus offer means allowing a programmer both to specify data distributions and to change them dynamically in order to maintain these properties. On the other hand, redistributions can be quite expensive and can significantly degrade a program's performance. They must thus be reduced to a minimum. In this article, we present a novel, aggressive approach for avoiding unnecessary remappings, which works by eliminating partially dead and partially redundant distribution changes. Basically, this approach evolves from extending and combining two algorithms for these optimizations, each achieving optimal results on its own. In distinction to the sequential setting, the data-parallel setting leads naturally to a family of algorithms of varying power and efficiency, allowing requirement-customized solutions. The power and flexibility of the new approach are demonstrated by various examples, which range from typical HPF fragments to real-world programs. Performance measurements underline its importance and show its effectiveness on different hardware platforms and in different settings.
Jens Knoop, Eduard Mehofer
IEEE Trans. Parallel Distributed Syst.1
2001 Topic 04: Compilers for High Performance
Jens Knoop, Keshav Pingali, Michael F. P. O'Boyle
Euro-Par1
2000 Constant Propagation on the Value Graph: Simple Constants and Beyond
Jens Knoop, Oliver Rüthing
CC1
2000 Compilers for High Performance
Samuel P. Midkiff, Barbara M. Chapman, Jean-Francois Collard, Jens Knoop
Euro-Par4
2000 Sparse Code Motion
abstract
In this article, we add a third dimension to partial redundancy elimination by considering code size as a further optimization goal in addition to the more classical consideration of computation costs and register pressure. This results in a family of sparse code motion algorithms coming as modular extensions of the algorithms for busy and lazy code motion. Each of them optimally captures a predefined choice of priority between these three optimization goals, e.g. code size can be minimized while (1) guaranteeing at least the performance of the argument program, or (2) even computational optimality. Each of them can further be refined to simultaneously reduce the lifetimes of temporaries to a minimum. These algorithms are well-suited for size-critical application areas like smart cards and embedded systems, as they provide a handle to control the code replication problem of classical code motion techniques. In fact, we believe that our systematic, priority-based treatment of trade-offs between optimization goals may substantially decrease development costs of size-critical applications: users may “play” with the priorities until the algorithm automatically delivers a satisfactory solution.
Oliver Rüthing, Jens Knoop, Bernhard Steffen
POPL2
2000 Partial Redundancy Elimination on Predicated Code
Jens Knoop, Jean-Francois Collard, Roy Dz-Ching Ju
SAS1
1999 Expansion-Based Removal of Semantic Partial Redundancies
Jens Knoop, Oliver Rüthing, Bernhard Steffen
CC1
1999 Parallel Data-Flow Analysis of Explicitly Parallel Programs
Jens Knoop
Euro-Par1
1999 An Automata-Theoretic Approach to Interprocedural Data-Flow Analysis
Javier Esparza, Jens Knoop
FoSSaCS2
1999 Code Motion for Explicitly Parallel Programs
abstract
In comparison to automatic parallelization, which is thoroughly studied in the literature [31, 33], classical analyses and optimizations of explicitly parallel programs were more or less neglected. This may be due to the fact that naive adaptations of the sequential techniques fail [24], and their straightforward correct ones have unacceptable costs caused by the interleavings, which manifest the possible executions of a parallel program. Recently, however, we showed that unidirectional bitvector analyses can be performed for parallel programs as easily and as efficiently as for sequential ones [17], a necessary condition for the successful transfer of the classical optimizations to the parallel setting.In this article we focus on possible subsequent code motion transformations, which turn out to require much more care than originally conjectured [17]. Essentially, this is due to the fact that interleaving semantics, although being adequate for correctness considerations, fails when it comes to reasoning about efficiency of parallel programs. This deficiency, however, can be overcome by strengthening the specific treatment of synchronization points.
Jens Knoop, Bernhard Steffen
PPoPP1
1999 Detecting Equalities of Variables: Combining Efficiency with Precision
Oliver Rüthing, Jens Knoop, Bernhard Steffen
SAS2
1999 From DFA-Frameworks to DFA-Generators: A Unifying Multiparadigm Approach
Jens Knoop
TACAS1
1998 Cool: A Control-Flow Generator for System Analysis
Volker Braun, Jens Knoop, Dirk Koschützki
CC2
1998 Basic-Block Graphs: Living Dinosaurs?
Jens Knoop, Dirk Koschützki, Bernhard Steffen
CC1
1998 Code Motion and Code Placement: Just Synonyms?
Jens Knoop, Oliver Rüthing, Bernhard Steffen
ESOP1
1998 Parallel Constant Propagation
Jens Knoop
Euro-Par1
1998 Eliminating Partially Dead Code in Explicitly Parallel Programs
Jens Knoop
Theor. Comput. Sci.1
1997 Optimal Distribution Assignment Placement
Jens Knoop, Eduard Mehofer
Euro-Par1
1996 Non-monotone Fixpoint Iterations to Resolve Second Order Effects
Alfons Geser, Jens Knoop, Gerald Lüttgen, Oliver Rüthing, Bernhard Steffen
CC2
1996 Parallelism for Free: Efficient and Optimal Bitvector Analyses for Parallel Programs
abstract
We consider parallel programs with shared memory and interleaving semantics, for which we show how to construct for unidirectional bitvector problems optimal analysis algorithms that are as efficient as their purely sequential counterparts and that can easily be implemented. Whereas the complexity result is rather obvious, our optimality result is a consequence of a new Kam/Ullman-style Coincidence Theorem. Thus using our method, the standard algorithms for sequential programs computing liveness, availability, very busyness, reaching definitions, definition-use chains, or the analyses for performing code motion, assignment motion, partial dead-code elimination or strength reduction, can straightforward be transferred to the parallel setting at almost no cost.
Jens Knoop, Bernhard Steffen, Jürgen Vollmer 0001
ACM Trans. Program. Lang. Syst.1
1995 The Fixpoint-Analysis Machine
Bernhard Steffen, Andreas Claßen, Marion Klein, Jens Knoop, Tiziana Margaria
CONCUR4
1995 The Power of Assignment Motion
abstract
Assignment motion (AM) and expression motion (EM) are the basis of powerful and at the first sight incomparable techniques for removing partially redundant code from a program. Whereas AM aims at the elimination of complete assignments, a transformation which is always desirable, the more flexible EM requires temporaries to remove partial redundancies. Based on the observation that a simple program transformation enhances AM to subsume EM, we develop an algorithm that for the first time captures all second order effects between AM and EM transformations. Under usual structural restrictions, the worst case time complexity of our algorithm is essentially quadratic, a fact which explains the promising experience with our implementation. Topics: data flow analysis, program optimization, partially redundant assignment and expression elimination, code motion, assignment motion, bit-vector data flow analyses. 1 Motivation A major source for improving the runtime efficiency of a program is...
Jens Knoop, Oliver Rüthing, Bernhard Steffen
PLDI1
1994 Partial Dead Code Elimination
abstract
A new aggressive algorithm for the elimination of partially dead code is presented, i.e., of code which is only dead on some program paths. Besides being more powerful than the usual approaches to dead code elimination, this algorithm is optimal in the following sense: partially dead code remaining in the resulting program cannot be eliminated without changing the branching structure or the semantics of the program, or without impairing some program executions.
Jens Knoop, Oliver Rüthing, Bernhard Steffen
PLDI1
1994 Optimal Code Motion: Theory and Practice
abstract
An implementation-oriented algorithm for lazy code motion is presented that minimizes the number of computations in programs while suppressing any unnecessary code motion in order to avoid superfluous register pressure. In particular, this variant of the original algorithm for lazy code motion works on flowgraphs whose nodes are basic blocks rather than single statements, since this format is standard in optimizing compilers. The theoretical foundations of the modified algorithm are given in the first part, where t -refined flowgraphs are introduced for simplifying the treatment of flow graphs whose nodes are basic blocks. The second part presents the “basic block” algorithm in standard notation and gives directions for its implementation in standard compiler environments.
Jens Knoop, Oliver Rüthing, Bernhard Steffen
ACM Trans. Program. Lang. Syst.1
1992 The Interprocedural Coincidence Theorem
Jens Knoop, Bernhard Steffen
CC1
1992 Lazy Code Motion
abstract
We present a bit-vector algorithm for the optimal and economical placement of computations within flow graphs, which is as efficient as standard uni-directional analyses. The point of our algorithm is the decomposition of the bi-directional structure of the known placement algorithms into a sequence of a backward and a forward analysis, which directly implies the efficiency result. Moreover, the new compositional structure opens the algorithm for modification: two further uni-directional analysis components exclude any unnecessary code motion. This laziness of our algorithm minimizes the register pressure, which has drastic effects on the run-time behaviour of the optimized programs in practice, where an economical use of registers is essential.
Jens Knoop, Oliver Rüthing, Bernhard Steffen
PLDI1
1991 Finite Constants: Characterizations of a New Decidable Set of Constants
Bernhard Steffen, Jens Knoop
Theor. Comput. Sci.2
1990 The Value Flow Graph: A Program Representation for Optimal Program Transformations
Bernhard Steffen, Jens Knoop, Oliver Rüthing
ESOP2
1989 Finite Constants: Characterizations of a New Decidable Set of Constants
Bernhard Steffen, Jens Knoop
MFCS2