31 research outputs found
Enhancing productivity and performance portability of opencl applications on heterogeneous systems using runtime optimizations
Initially driven by a strong need for increased computational performance in science and
engineering, heterogeneous systems have become ubiquitous and they are getting increasingly
complex. The single processor era has been replaced with multi-core processors,
which have quickly been surrounded by satellite devices aiming to increase the throughput
of the entire system. These auxiliary devices, such as Graphics Processing Units, Field Programmable
Gate Arrays or other specialized processors have very different architectures.
This puts an enormous strain on programming models and software developers to take full
advantage of the computing power at hand. Because of this diversity and the unachievable
flexibility and portability necessary to optimize for each target individually, heterogeneous
systems remain typically vastly under-utilized.
In this thesis, we explore two distinct ways to tackle this problem. Providing automated,
non intrusive methods in the form of compiler tools and implementing efficient abstractions
to automatically tune parameters for a restricted domain are two complementary
approaches investigated to better utilize compute resources in heterogeneous systems.
First, we explore a fully automated compiler based approach, where a runtime system
analyzes the computation flow of an OpenCL application and optimizes it across multiple
compute kernels. This method can be deployed on any existing application transparently
and replaces significant software engineering effort spent to tune application for a particular
system. We show that this technique achieves speedups of up to 3x over unoptimized
code and an average of 1.4x over manually optimized code for highly dynamic applications.
Second, a library based approach is designed to provide a high level abstraction for
complex problems in a specific domain, stencil computation. Using domain specific techniques,
the underlying framework optimizes the code aggressively. We show that even in
a restricted domain, automatic tuning mechanisms and robust architectural abstraction are
necessary to improve performance. Using the abstraction layer, we demonstrate strong scaling
of various applications to multiple GPUs with a speedup of up to 1.9x on two GPUs
and 3.6x on four
Ein Fixpunkt-Kalkül zur Charakterisierung interaktiven Verhaltens von Informationssystemen
The dynamics of an information system (IS) is characterized not only by its computational behavior, but also by its interactive behavior. Interactive dynamics forms an integral part of most information systems. Despite this, an understanding of the interactive nature of an IS is still low. Interaction impacts expressiveness of an IS at such fundamental levels that Wegner [Weg97, Weg99a] came with a contention saying interactive behavior cannot be modeled by Turing Machines (TMs). A TM is considered the foundational model of computation. It models computable functions that map between problem and solution domains. However, a TM models only non-interactive mappings. A mapping between a problem and a solution domain that is interactive in nature can change its direction of computation resulting from intermediate interactions. Based on this contention, Wegner proposes interaction (rather than computation) as the fundamental framework for IS modeling [Weg99]. In this thesis, we address Wegner's contention and the nature of interactive dynamics. An information system is modeled as a collection of semantic processes or Problem Solving Processes (PSPs). If these PSPs are interactive in nature, they are called open systems; and if they are non-interactive, such an IS is called a closed system. Intuitively, open system dynamics are known to be richer than closed system dynamics. We make this distinction precise in this thesis. Interaction is shown to be made up of three properties: computation, persistence of state across computations, and channel sensitivity. Persistence of state and channel sensitivity each contribute to richer behavioral semantics than just computation. This is shown by introducing a concept called the solution space of a semantic process. A solution space is the abstract domain characterized by the process dynamics. Interactive solution spaces are found to be richer than algorithmic solution spaces and also interactive solution spaces require at least a three-valued system of logic for their characterization. The earlier question of interactive behavior as applied to IS design is then revisited. Interactive dynamics of an IS characterize the IS functionality. We call the solution space of interactive IS behavior as its interaction space. The interaction space of an IS is contrasted with the object space of the IS which is concerned with the IS structure and state maintenance dynamics. The interaction space has a degree of autonomy with respect to the object space. This aspect is often not acknowledged in IS design, resulting in the intermixing of structural and functionality concerns. Separating these concerns can avoid certain conflicting problems in IS design, as well as provide better maintainability. We call this the "dual" nature of open systems. Based on this insight we propose an IS design paradigm called dualism, where an IS model is made up of an object schema, characterizing the IS structure and an interaction schema, characterizing the IS functionality. The interaction schema is characterized by a three-valued system of logic, representing a set of obligated (or liveness) behavior, permitted (or possible) behavior and forbidden behavior. The system should perform the obligated behavior to be termed functional; it may perform any of the permitted behavior and it may not perform forbidden behavior. An analysis of the dynamics of any real world system can make these three-valued characteristics apparent. Domain theory is used to propose solution space concept, and deontic logic is used to represent the three modalities of interactive IS behavior.Die Dynamik von Informationssystemen wird nicht nur durch das Verhalten der Berechnungen, sondern insbesondere durch das interaktive Verhalten charakterisiert. Demzufolge ist die Charakterisierung der Interaktion ein integraler Bestandteil der Modellierung von Informationssystemen. Obwohl dies allgemein anerkannt ist, wird die interaktive Natur von Informationsssytemen immer noch nicht verstanden. Die Interaktion von Informationssystemen ist so komplex, dass Wegner [Weg97, Weg99a] zu der Schlussfolgerung kam, dass das interaktive Verhalten von Informationssystemen nicht durch Turing Maschinen (TM) charakterisiert werden kann. Die Turing Maschine wird als eines der grundlegenden Modelle der Berechnung angesehen. Turing Maschinen modellieren berechenbare Funktionen, die zwischen Problemen und Lösungsräumen Abbildungen herstellen. Doch modellieren Turing Maschinen nur nicht interaktive Abbildungen. Eine Abbildung zwischen einem Problem und einem Lösungsraum, der essentiell interaktiv ist, kann zur Laufzeit das Resultat der Abbildung und die Abbildung aufgrund von Interaktionen selbst ändern. Auf der Grundlage dieser Beobachtung schlug Wegner vor, die Interaktion als grundlegendes Paradigma von Informationssystemen anstelle von Berechnungen anzunehmen. In dieser Dissertation werden Wegners Vermutung und die Natur des Verhaltens von Interaktion untersucht. Ein Informationssystem wird als eine Kollektion von semantischen Prozessen bzw. Problemlösungsprozessen (PLPs) modelliert. Wenn PLPs essentiell interaktiv sind, werden Systeme dieser Art offene Systeme genannt. Wenn sie nicht interaktiv sind, werden Informationssysteme geschlossene Systeme genannt. Intuitiv kann angenommen werden, dass offene Systeme ein reicheres Verhalten haben als geschlossene Systeme. In dieser Dissertation wird diese Unterscheidung präzisiert. Interaktion basiert auf folgenden drei Eigenschaften: Berechnung, Persistenz von Zustandsveränderungen und Kanalabhängigkeit. Die Persistenz von Zustandsveränderungen und Kanalabhängigkeit ist von der Ausdruckskraft her stärker als die Berechnung. Das wird in der Dissertation durch die Einführung des Lösungsraumes von semantischen Prozessen gezeigt. Ein Lösungsraum ist eine abstrakte Domäne, die durch Prozessdynamik charakterisiert wird. Interaktive Lösungsräume sind demzufolge ausdrucksstärker als algorithmische Lösungsräume. Deshalb erfordert die Darstellung des interaktiven Lösungsraumes eine mindestens dreiwertige Logik. In der Arbeit werden sowohl Fragestellungen, die bereits für Informationssysteme ausreichend untersucht schienen, kritisch hinterfragt, als auch die interaktive Dynamik von Informationssystemen charakterisiert. Der Lösungsraum eines interaktiven Informationssystemes wird demzufolge um den Interaktionsraum erweitert. Dem Interaktionsraum steht der Objektraum des Informationssystemes gegenüber, der durch die Struktur und durch die Zustandsveränderungen des Informationssystemes beschrieben ist. Der Interaktionsraum ist bis zu einem gewissen Grad unabhängig vom Objektraum. Dieser Aspekt wurde bislang für den Entwurf von Informationssystemen nicht berücksichtigt, so dass strukturelle und funktionale Charakterisierungen vermischt wurden. Wenn man diese Charakteristiken separiert, kann man Konflikte, die üblicherweise beim Informationssystementwurf entstehen, vermeiden und dadurch eine bessere Pflege der Informationssysteme erreichen. Wir nennen diesen Zusammenhang den Dualismus von offenen Systemen. Basierend auf diesen Erkenntnissen schlagen wir als Paradigma für den Entwurf von Informationssystemen den Dualismus vor, der erfordert, dass ein Informationssystem durch ein Objektschema charakterisiert wird, das die Struktur darstellt und durch ein Interaktionsschema, das die Funktionaliät darstellt. Das Interaktionsschema wird durch eine dreiwertige Logik charakterisiert, die zum einen das obligatorische Verhalten, zum zweiten das erlaubte Verhalten und zum dritten das verbotene Verhalten charakterisiert. Ein System sollte dem obligatorischen Verhalten genügen, kann entsprechend dem erlaubten Verhalten Zustandsänderungen besitzen, darf allerdings keine Zustandsänderungen zulassen, die als verboten charakterisiert sind. Die Analysis der Dynamik von Systemen in realen Anwendungen zeigt die Sinnfältigkeit dieser dreiwertigen Charakterisierung. Die Domäntheorie ist benutzt worden, um den Lösungsraum zu charakterisieren. Mit deontischer Logik können die drei Modalitäten eines interaktiven Informationssystemes charakterisiert werden
A DSL approach to reconcile equivalent divergent program executions
Multi-Version Execution (MVE) deploys multiple versions of the same program, typically synchronizing their execution at the level of system calls. By default, MVE requires all deployed versions to issue the same sequence of system calls, which limits the types of versions which can be deployed. In this paper, we propose a Domain-Specific Language (DSL) to reconcile expected divergences between different program versions deployed through MVE. We evaluate the DSL by adding it to an existing MVE system (Varan) and testing it via three scenarios: (1) deploying the same program under different configurations, (2) deploying different releases of the same program, and (3) deploying dynamic analyses in parallel with the native execution. We also present an algorithm to automatically extract DSL rules from pairs of system call traces. Our results show that each scenario requires a small number of simple rules (at most 14 rules in each case) and that writing DSL rules can be partially automated
A metadata-enhanced framework for high performance visual effects
This thesis is devoted to reducing the interactive latency of image processing computations in
visual effects. Film and television graphic artists depend upon low-latency feedback to receive
a visual response to changes in effect parameters. We tackle latency with a domain-specific optimising
compiler which leverages high-level program metadata to guide key computational and
memory hierarchy optimisations. This metadata encodes static and dynamic information about
data dependence and patterns of memory access in the algorithms constituting a visual effect –
features that are typically difficult to extract through program analysis – and presents it to the
compiler in an explicit form. By using domain-specific information as a substitute for program
analysis, our compiler is able to target a set of complex source-level optimisations that a vendor
compiler does not attempt, before passing the optimised source to the vendor compiler for
lower-level optimisation.
Three key metadata-supported optimisations are presented. The first is an adaptation of
space and schedule optimisation – based upon well-known compositions of the loop fusion and
array contraction transformations – to the dynamic working sets and schedules of a runtimeparameterised
visual effect. This adaptation sidesteps the costly solution of runtime code generation
by specialising static parameters in an offline process and exploiting dynamic metadata to
adapt the schedule and contracted working sets at runtime to user-tunable parameters. The second
optimisation comprises a set of transformations to generate SIMD ISA-augmented source code.
Our approach differs from autovectorisation by using static metadata to identify parallelism, in
place of data dependence analysis, and runtime metadata to tune the data layout to user-tunable
parameters for optimal aligned memory access. The third optimisation comprises a related set
of transformations to generate code for SIMT architectures, such as GPUs. Static dependence
metadata is exploited to guide large-scale parallelisation for tens of thousands of in-flight threads.
Optimal use of the alignment-sensitive, explicitly managed memory hierarchy is achieved by identifying
inter-thread and intra-core data sharing opportunities in memory access metadata.
A detailed performance analysis of these optimisations is presented for two industrially developed
visual effects. In our evaluation we demonstrate up to 8.1x speed-ups on Intel and AMD
multicore CPUs and up to 6.6x speed-ups on NVIDIA GPUs over our best hand-written implementations
of these two effects. Programmability is enhanced by automating the generation of
SIMD and SIMT implementations from a single programmer-managed scalar representation
The Essence of Software Engineering
Software Engineering; Software Development; Software Processes; Software Architectures; Software Managemen
Programming Languages and Systems
This open access book constitutes the proceedings of the 29th European Symposium on Programming, ESOP 2020, which was planned to take place in Dublin, Ireland, in April 2020, as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020. The actual ETAPS 2020 meeting was postponed due to the Corona pandemic. The papers deal with fundamental issues in the specification, design, analysis, and implementation of programming languages and systems
Actes des Sixièmes journées nationales du Groupement De Recherche CNRS du Génie de la Programmation et du Logiciel
National audienceCe document contient les actes des Sixièmes journées nationales du Groupement De Recherche CNRS du Génie de la Programmation et du Logiciel (GDR GPL) s'étant déroulées au CNAM à Paris du 11 au 13 juin 2014. Les contributions présentées dans ce document ont été sélectionnées par les différents groupes de travail du GDR. Il s'agit de résumés, de nouvelles versions, de posters et de démonstrations qui correspondent à des travaux qui ont déjà été validés par les comités de programmes d'autres conférences et revues et dont les droits appartiennent exclusivement à leurs auteurs