5 research outputs found

    IST Austria Thesis

    Get PDF
    This dissertation focuses on algorithmic aspects of program verification, and presents modeling and complexity advances on several problems related to the static analysis of programs, the stateless model checking of concurrent programs, and the competitive analysis of real-time scheduling algorithms. Our contributions can be broadly grouped into five categories. Our first contribution is a set of new algorithms and data structures for the quantitative and data-flow analysis of programs, based on the graph-theoretic notion of treewidth. It has been observed that the control-flow graphs of typical programs have special structure, and are characterized as graphs of small treewidth. We utilize this structural property to provide faster algorithms for the quantitative and data-flow analysis of recursive and concurrent programs. In most cases we make an algebraic treatment of the considered problem, where several interesting analyses, such as the reachability, shortest path, and certain kind of data-flow analysis problems follow as special cases. We exploit the constant-treewidth property to obtain algorithmic improvements for on-demand versions of the problems, and provide data structures with various tradeoffs between the resources spent in the preprocessing and querying phase. We also improve on the algorithmic complexity of quantitative problems outside the algebraic path framework, namely of the minimum mean-payoff, minimum ratio, and minimum initial credit for energy problems. Our second contribution is a set of algorithms for Dyck reachability with applications to data-dependence analysis and alias analysis. In particular, we develop an optimal algorithm for Dyck reachability on bidirected graphs, which are ubiquitous in context-insensitive, field-sensitive points-to analysis. Additionally, we develop an efficient algorithm for context-sensitive data-dependence analysis via Dyck reachability, where the task is to obtain analysis summaries of library code in the presence of callbacks. Our algorithm preprocesses libraries in almost linear time, after which the contribution of the library in the complexity of the client analysis is (i)~linear in the number of call sites and (ii)~only logarithmic in the size of the whole library, as opposed to linear in the size of the whole library. Finally, we prove that Dyck reachability is Boolean Matrix Multiplication-hard in general, and the hardness also holds for graphs of constant treewidth. This hardness result strongly indicates that there exist no combinatorial algorithms for Dyck reachability with truly subcubic complexity. Our third contribution is the formalization and algorithmic treatment of the Quantitative Interprocedural Analysis framework. In this framework, the transitions of a recursive program are annotated as good, bad or neutral, and receive a weight which measures the magnitude of their respective effect. The Quantitative Interprocedural Analysis problem asks to determine whether there exists an infinite run of the program where the long-run ratio of the bad weights over the good weights is above a given threshold. We illustrate how several quantitative problems related to static analysis of recursive programs can be instantiated in this framework, and present some case studies to this direction. Our fourth contribution is a new dynamic partial-order reduction for the stateless model checking of concurrent programs. Traditional approaches rely on the standard Mazurkiewicz equivalence between traces, by means of partitioning the trace space into equivalence classes, and attempting to explore a few representatives from each class. We present a new dynamic partial-order reduction method called the Data-centric Partial Order Reduction (DC-DPOR). Our algorithm is based on a new equivalence between traces, called the observation equivalence. DC-DPOR explores a coarser partitioning of the trace space than any exploration method based on the standard Mazurkiewicz equivalence. Depending on the program, the new partitioning can be even exponentially coarser. Additionally, DC-DPOR spends only polynomial time in each explored class. Our fifth contribution is the use of automata and game-theoretic verification techniques in the competitive analysis and synthesis of real-time scheduling algorithms for firm-deadline tasks. On the analysis side, we leverage automata on infinite words to compute the competitive ratio of real-time schedulers subject to various environmental constraints. On the synthesis side, we introduce a new instance of two-player mean-payoff partial-information games, and show how the synthesis of an optimal real-time scheduler can be reduced to computing winning strategies in this new type of games

    Contributions à l'optimisation de programmes et à la synthèse de circuits haut-niveau

    Get PDF
    Since the end of Dennard scaling, power efficiency is the limiting factor for large-scale computing. Hardware accelerators such as reconfigurable circuits (FPGA, CGRA) or Graphics Processing Units (GPUs) were introduced to improve the performance under a limited energy budget, resulting into complex heterogeneous platforms. This document presents a synthetic description of my research activities over the last decade on compilers for high-performance computing and high-level synthesis of circuits (HLS) for FPGA accelerators. Specifically, my contributions covers both theoretical and practical aspects of automatic parallelization and HLS in a general theoretical framework called the polyhedral model.A first chapter describes our contributions to loop tiling, a key program transformation for automatic parallelization which splits the computation atomic blocks called tiles.We rephrase loop tiling in the polyhedral model to enable any polyhedral tile shape whose size depends on a single parameter (monoparametric tiling), and we present a tiling transformation for programs with reductions – accumulations w.r.t. an associative/commutative operator. Our results open the way for semantic program transformations ; program transformations which does not preserve the computation but still lead to an equivalent program.A second chapter describes our contributions to algorithm recognition. A compiler optimization will never replace a good algorithm, hence the idea to recognize algorithm instances in a program and to substitute them by a call to a performance library. In our PhD thesis, we have addressed the recognition of templates – functionswith first-order variables – into programs and its application to program optimization. We propose a complementary algorithm recognition framework which leverages our monoparametric tiling and our reduction tiling transformations. This automates semantic tiling, a new semantic program transformation which increases the grain of operators (scalar → matrix).A third chapter presents our contributions to the synthesis of communications with an off-chip memory in the context of high-level circuit synthesis (HLS). We propose an execution model based on loop tiling, a pipelined architecture and a source-level compilation algorithm which, connected to the C2H HLS tool from Altera, ends up to a FPGA configuration with minimized data transfers. Our compilation algorithm is optimal – the data are loaded as late as possible and stored as soon as possible with a maximal reuse.A fourth chapter presents our contributions to design a unified polyhedral compilation model for high-level circuit synthesis.We present the Data-aware Process Networks (DPN), a dataflow intermediate representation which leverages the ideas developed in chapter 3 to explicit the data transfers with an off-chip memory. We propose an algorithm to compile a DPN from a sequential program, and we present our contribution to the synthesis of DPN to a circuit. In particular, we present our algorithms to compile the control, the channels and the synchronizations of a DPN. These results are used in the production compiler of the Xtremlogic start-up.Depuis la fin du Dennard scaling, l’efficacité énergétique est le facteur limitant pour le calcul haute performance. Les accélérateurs matériels comme les circuits reconfigurables (FPGA, CGRA) ou les accélérateurs graphiques (GPUs) ont été introduits pour améliorer les performances sous un budget énergétique limité, menant à des plateformes hétérogènes complexes.Mes travaux de recherche portent sur les compilateurs et la synthèse de circuits haut-niveau (High-Level Synthesis, HLS) pour le calcul haute-performance. Specifiquement, mes contributions couvrent les aspects théoriques etpratiques de la parallélisation automatique et la HLS dans le cadre général du modèle polyédrique.Un premier chapitre décrit mes contributions au tuilage de boucles, une transformation fondamentale pour la parallélisation automatique, qui découpe le calcul en sous-calculs atomiques appelés tuiles. Nous reformulons le tuilage de boucles dans le modèle polyédrique pour permettre n’importe tuile polytopique dont la taille dépend d’un facteur homothétique (tuilage monoparamétrique), et nous décrivons une transformation de tuilage pour des programmes avec des réductions – une accumulation selon un opérateur associative et commutatif. Nos résultats ouvrent la voie à des transformations de programme sémantiques ; qui ne préservent pas le calcul, mais produisent un programme équivalent.Un second chapitre décrit mes contributions à la reconnaissance d’algorithmes. Une optimisation de compilateur ne remplacera jamais un bon algorithme, d’où l’idée de reconnaître les instances d’un algorithme dans un programme et de les substituer par un appel vers une bibliothèque hauteperformance, chaque fois que c’est possible et utile.Dans notre thèse, nous avons traité la reconnaissance de templates – des fonctions avec des variables d’ordre 1 – dans un programme et son application à l’optimisation de programes. Nous proposons une approche complémentaire qui s’appuie sur notre tuilage monoparamétrique complété par une transformation pour tuiler les réductions. Ceci automatise le tuilage sémantique, une nouvelle transformation sémantique qui augmente le grain des opérateurs (scalaire → matrice).Un troisième chapitre présente mes contributions à la synthèse des communications avec une mémoire off-chip dans le contexte de la synthèse de circuits haut-niveau. Nous proposons un modèle d’exécution basé sur le tuilage de boucles, une architecture pipelinée et un algorithme de compilation source-à-source qui, connecté à l’outil de HLS C2H d’Altera, produit une configuration de circuit FPGA qui réalise un volume minimal de transferts de données. Notre algorithme est optimal – les données sont chargées le plus tard possible et stockées le plus tôt possible, avec une réutilisation maximale et sans redondances.Enfin, un quatrième chapitre présente mes contributions pour construire un modèle de compilation polyédrique unifié pour la synthèse de circuits haut-niveau.Nous présentons les réseaux de processus DPN (Data-aware Process Networks), une représentation intermédiaire dataflow qui s’appuie sur les idées développées au chapitre 3 pour expliciter les transferts de données entre le circuit et la mémoire off-chip. Nous proposons une suite d’algorithmes pour compiler un DPN à partir d’un programme séquentiel et nous présentons nos contributions à la synthèse d’un DPN en circuit. En particulier, nous présentons nos algorithmes pour compiler le contrôle, les canaux et les synchronisations d’un DPN. Ces résultats sont utilisés dans le compilateur de production de la start-up XtremLogic

    Code-Optimierung im Polyedermodell - Effizienzsteigerung von parallelen Schleifensätzen

    Get PDF
    A safe basis for automatic loop parallelization is the polyhedron model which represents the iteration domain of a loop nest as a polyhedron in Zn\mathbb{Z}^n. However, turning the parallel loop program in the model to efficient code meets with several obstacles, due to which performance may deteriorate seriously -- especially on distributed memory architectures. We introduce a fine-grained model of the computation performed and show how this model can be applied to create efficient code

    Atti del XXXV Convegno Nazionale di Idraulica e Costruzioni Idrauliche

    Get PDF
    La XXXV edizione del Convegno Nazionale di Idraulica e Costruzioni Idrauliche (IDRA16), co-organizzata dal Gruppo Italiano di Idraulica (GII) e dal Dipartimento di Ingegneria Civile, Chimica, Ambientale, e dei Materiali (DICAM) dell’Alma Mater Studiorum - Università di Bologna, si è svolta a Bologna dal 14 al 16 settembre 2016. Il Convegno Nazionale è tornato pertanto ad affacciarsi all’ombra del “Nettuno”, dopo l’edizione del 1982 (XVIII edizione). Il titolo della XXXV edizione, “Ambiente, Risorse, Energia: le sfide dell’Ingegneria delle acque in un mondo che cambia”, sottolinea l’importanza e la complessità delle tematiche che rivestono la sfera dello studio e del governo delle risorse idriche. Le sempre più profonde interconnessioni tra risorse idriche, sviluppo economico e benessere sociale, infatti, spronano sia l’Accademia che l’intera comunità tecnico-scientifica nazionale ed internazionale all’identificazione ed alla messa in atto di strategie di gestione innovative ed ottimali: sfide percepite quanto mai necessarie in un contesto ambientale in continua evoluzione, come quello in cui viviamo. La XXXV edizione del Convegno di Idraulica e Costruzioni Idrauliche, pertanto, si è posta come punto d’incontro della comunità tecnico-scientifica italiana per la discussione a tutto tondo di tali problematiche, offrendo un programma scientifico particolarmente ricco e articolato, che ha coperto tutti gli ambiti riconducibili all’Ingegneria delle Acque. L’apertura dei lavori del Convegno si è svolta nella storica cornice della Chiesa di Santa Cristina, uno dei luoghi più caratteristici e belli della città ed oggi luogo privilegiato per l’ascolto della musica classica, mentre le attività di presentazione e discussione scientifica si sono svolte principalmente presso la sede della Scuola di Ingegneria e Architettura dell’Università di Bologna sita in Via Terracini. Il presente volume digitale ad accesso libero (licenza Creative Commons 4.0) raccoglie le memorie brevi pervenute al Comitato Scientifico di IDRA16 ed accettate per la presentazione al convegno a valle di un processo di revisione tra pari. Il volume articola dette memorie in sette macro-tematiche, che costituiscono i capitoli del volume stesso: I. meccanica dei fluidi; II. ambiente marittimo e costiero; III. criteri, metodi e modelli per l’analisi dei processi idrologici e la gestione delle acque; IV. gestione e tutela dei corpi idrici e degli ecosistemi; V. valutazione e mitigazione del rischio idrologico e idraulico; VI. dinamiche acqua-società: sviluppo sostenibile e gestione del territorio; VII. monitoraggio, open-data e software libero. Ciascuna macro-tematica raggruppa più sessioni specialistiche autonome sviluppatesi in parallelo durante le giornate del Convegno, i cui titoli vengono richiamati all’interno del presente volume. La vastità e la diversità delle tematiche affrontate, che ben rappresentano la complessità delle numerose sfide dell’Ingegneria delle Acque, appaiono evidenti dalla consultazione dell’insieme di memorie brevi presentate. La convinta partecipazione della Comunità Scientifica Italiana è dimostrata dalle oltre 350 memorie brevi, distribuite in maniera pressoché uniforme tra le sette macro-tematiche di riferimento. Dette memorie sono sommari estesi di lunghezza variabile redatti in lingua italiana, o inglese. In particolare, la possibilità di stesura in inglese è stata concessa con l’auspicio di portare la visibilità del lavoro presentato ad un livello sovranazionale, grazie alla pubblicazione open access del volume degli Atti del Convegno. Il volume si divide in tre parti: la parte iniziale è dedicata alla presentazione del volume ed all’indice generale dei contributi divisi per macro-tematiche; la parte centrale raccoglie le memorie brevi; la terza parte riporta l’indice analitico degli Autori, che chiude il volume

    Atti del XXXV Convegno Nazionale di Idraulica e Costruzioni Idrauliche

    Get PDF
    La XXXV edizione del Convegno Nazionale di Idraulica e Costruzioni Idrauliche (IDRA16), co-organizzata dal Gruppo Italiano di Idraulica (GII) e dal Dipartimento di Ingegneria Civile, Chimica, Ambientale, e dei Materiali (DICAM) dell’Alma Mater Studiorum - Università di Bologna, si è svolta a Bologna dal 14 al 16 settembre 2016. Il Convegno Nazionale è tornato pertanto ad affacciarsi all’ombra del “Nettuno”, dopo l’edizione del 1982 (XVIII edizione). Il titolo della XXXV edizione, “Ambiente, Risorse, Energia: le sfide dell’Ingegneria delle acque in un mondo che cambia”, sottolinea l’importanza e la complessità delle tematiche che rivestono la sfera dello studio e del governo delle risorse idriche. Le sempre più profonde interconnessioni tra risorse idriche, sviluppo economico e benessere sociale, infatti, spronano sia l’Accademia che l’intera comunità tecnico-scientifica nazionale ed internazionale all’identificazione ed alla messa in atto di strategie di gestione innovative ed ottimali: sfide percepite quanto mai necessarie in un contesto ambientale in continua evoluzione, come quello in cui viviamo. La XXXV edizione del Convegno di Idraulica e Costruzioni Idrauliche, pertanto, si è posta come punto d’incontro della comunità tecnico-scientifica italiana per la discussione a tutto tondo di tali problematiche, offrendo un programma scientifico particolarmente ricco e articolato, che ha coperto tutti gli ambiti riconducibili all’Ingegneria delle Acque. L’apertura dei lavori del Convegno si è svolta nella storica cornice della Chiesa di Santa Cristina, uno dei luoghi più caratteristici e belli della città ed oggi luogo privilegiato per l’ascolto della musica classica, mentre le attività di presentazione e discussione scientifica si sono svolte principalmente presso la sede della Scuola di Ingegneria e Architettura dell’Università di Bologna sita in Via Terracini. Il presente volume digitale ad accesso libero (licenza Creative Commons 4.0) raccoglie le memorie brevi pervenute al Comitato Scientifico di IDRA16 ed accettate per la presentazione al convegno a valle di un processo di revisione tra pari. Il volume articola dette memorie in sette macro-tematiche, che costituiscono i capitoli del volume stesso: I. meccanica dei fluidi; II. ambiente marittimo e costiero; III. criteri, metodi e modelli per l’analisi dei processi idrologici e la gestione delle acque; IV. gestione e tutela dei corpi idrici e degli ecosistemi; V. valutazione e mitigazione del rischio idrologico e idraulico; VI. dinamiche acqua-società: sviluppo sostenibile e gestione del territorio; VII. monitoraggio, open-data e software libero. Ciascuna macro-tematica raggruppa più sessioni specialistiche autonome sviluppatesi in parallelo durante le giornate del Convegno, i cui titoli vengono richiamati all’interno del presente volume. La vastità e la diversità delle tematiche affrontate, che ben rappresentano la complessità delle numerose sfide dell’Ingegneria delle Acque, appaiono evidenti dalla consultazione dell’insieme di memorie brevi presentate. La convinta partecipazione della Comunità Scientifica Italiana è dimostrata dalle oltre 350 memorie brevi, distribuite in maniera pressoché uniforme tra le sette macro-tematiche di riferimento. Dette memorie sono sommari estesi di lunghezza variabile redatti in lingua italiana, o inglese. In particolare, la possibilità di stesura in inglese è stata concessa con l’auspicio di portare la visibilità del lavoro presentato ad un livello sovranazionale, grazie alla pubblicazione open access del volume degli Atti del Convegno. Il volume si divide in tre parti: la parte iniziale è dedicata alla presentazione del volume ed all’indice generale dei contributi divisi per macro-tematiche; la parte centrale raccoglie le memorie brevi; la terza parte riporta l’indice analitico degli Autori, che chiude il volume
    corecore