31 research outputs found

    Enhancing productivity and performance portability of opencl applications on heterogeneous systems using runtime optimizations

    Get PDF
    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

    Get PDF
    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

    No full text
    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

    No full text
    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

    Get PDF
    Software Engineering; Software Development; Software Processes; Software Architectures; Software Managemen

    Programming Languages and Systems

    Get PDF
    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

    Get PDF
    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
    corecore