209 research outputs found

    Register allocation and optimization techniques in compiler construction

    Full text link
    The purpose of this thesis was to investigate the implementation of register allocation and optimization techniques used in the process of compiler construction. The implementation issues were investigated by choosing an architecture and examining various register allocation and optimization techniques. In choosing the techniques to be implemented, only the most promising possibilities were explored for the specific architecture chosen. The goal was to categorize the register allocation and optimization schemes for the architecture

    Simple optimizing JIT compilation of higher-order dynamic programming languages

    Get PDF
    Implémenter efficacement les langages de programmation dynamiques demande beaucoup d’effort de développement. Les compilateurs ne cessent de devenir de plus en plus complexes. Aujourd’hui, ils incluent souvent une phase d’interprétation, plusieurs phases de compilation, plusieurs représentations intermédiaires et des analyses de code. Toutes ces techniques permettent d’implémenter efficacement un langage de programmation dynamique, mais leur mise en oeuvre est difficile dans un contexte où les ressources de développement sont limitées. Nous proposons une nouvelle approche et de nouvelles techniques dynamiques permettant de développer des compilateurs performants pour les langages dynamiques avec de relativement bonnes performances et un faible effort de développement. Nous présentons une approche simple de compilation à la volée qui permet d’implémenter un langage en une seule phase de compilation, sans transformation vers des représentations intermédiaires. Nous expliquons comment le versionnement de blocs de base, une technique de compilation existante, peut être étendue, sans effort de développement significatif, pour fonctionner interprocéduralement avec les langages de programmation d’ordre supérieur, permettant d’appliquer des optimisations interprocédurales sur ces langages. Nous expliquons également comment le versionnement de blocs de base permet de supprimer certaines opérations utilisées pour implémenter les langages dynamiques et qui impactent les performances comme les vérifications de type. Nous expliquons aussi comment les compilateurs peuvent exploiter les représentations dynamiques des valeurs par Tagging et NaN-boxing pour optimiser le code généré avec peu d’effort de développement. Nous présentons également notre expérience de développement d’un compilateur à la volée pour le langage de programmation Scheme, pour montrer que ces techniques permettent effectivement de construire un compilateur avec un effort moins important que les compilateurs actuels et qu’elles permettent de générer du code efficace, qui rivalise avec les meilleures implémentations du langage Scheme.Efficiently implementing dynamic programming languages requires a significant development effort. Over the years, compilers have become more complex. Today, they typically include an interpretation phase, several compilation phases, several intermediate representations and code analyses. These techniques allow efficiently implementing these programming languages but are difficult to implement in contexts in which development resources are limited. We propose a new approach and new techniques to build optimizing just-in-time compilers for dynamic languages with relatively good performance and low development effort. We present a simple just-in-time compilation approach to implement a language with a single compilation phase, without the need to use code transformations to intermediate representations. We explain how basic block versioning, an existing compilation technique, can be extended without significant development effort, to work interprocedurally with higherorder programming languages allowing interprocedural optimizations on these languages. We also explain how basic block versioning allows removing operations used to implement dynamic languages that degrade performance, such as type checks, and how compilers can use Tagging and NaN-boxing to optimize the generated code with low development effort. We present our experience of building a JIT compiler using these techniques for the Scheme programming language to show that they indeed allow building compilers with less development effort than other implementations and that they allow generating efficient code that competes with current mature implementations of the Scheme language

    A Human-Centered Approach for Designing Decision Support Systems

    Get PDF
    The choice to include the human in the decision process affects four key areas of system design: problem representation, system analysis and design, solution technique selection, and interface requirements specification. I introduce a design methodology that captures the necessary choices associated with each of these areas. In particular I show how this methodology is applied to the design of an actual decision Support system for satellite operations scheduling. Supporting the user\u27s ability to monitor the actions of the system and to guide the decision process of the system are two key considerations in the successful design of a decision support system. Both of these points rely on the correct specification of human-computer interaction points. Traditional, computer-centered system design approaches do not do this well, if at all, and are insufficient for the design of decision support systems. These approaches typically leave the definition of human-computer interaction points till after the component and system level designs are complete. This is too late however since the component and system level design decisions can impose inflexible constraints on the choice of the human-computer interaction points. This often leads to the design of human-computer interaction points that are only good enough. These approaches result in ill-conceived problem representations and poor user-system interaction points because the system lacks the underlying architecture to support these constructs efficiently. Decision support systems require a new, human-centered design approach rather than the traditional computer-centered approaches

    Adaptive Resource Management Techniques for High Performance Multi-Core Architectures

    Get PDF
    Reducing the average memory access time is crucial for improving the performance of applications executing on multi-core architectures. With workload consolidation this becomes increasingly challenging due to shared resource contention. Previous works has proposed techniques for partitioning of shared resources (e.g. cache and bandwidth) and prefetch throttling with the goal of mitigating contention and reducing or hiding average memory access time.Cache partitioning in multi-core architectures is challenging due to the need to determine cache allocations with low computational overhead and the need to place the partitions in a locality-aware manner. The requirement for low computational overhead is important in order to have the capability to scale to large core counts. Previous work within multi-resource management has proposed coordinately managing a subset of the techniques: cache partitioning, bandwidth partitioning and prefetch throttling. However, coordinated management of all three techniques opens up new possible trade-offs and interactions which can be leveraged to gain better performance. This thesis contributes with two different resource management techniques: One resource manger for scalable cache partitioning and a multi-resource management technique for coordinated management of cache partitioning, bandwidth partitioning and prefetching. The scalable resource management technique for cache partitioning uses a distributed and asynchronous cache partitioning algorithm that works together with a flexible NUCA enforcement mechanism in order to give locality-aware placement of data and support fine-grained partitions. The algorithm adapts quickly to application phase changes. The distributed nature of the algorithm together with the low computational complexity, enables the solution to be implemented in hardware and scale to large core counts. The multi-resource management technique for coordinated management of cache partitioning bandwidth partitioning and prefetching is designed using the results from our in-depth characterisation from the entire SPEC CPU2006 suite. The solution consists of three local resource management techniques that together with a coordination mechanism provides allocations which takes the inter-resource interactions and trade-offs into account.Our evaluation shows that the distributed cache partitioning solution performs within 1% from the best known centralized solution, which cannot scale to large core counts. The solution improves performance by 9% and 16%, on average, on a 16 and 64-core multi-core architecture, respectively, compared to a shared last-level cache. The multi-resource management technique gives a performance increase of 11%, on average, over state-of-the-art and improves performance by 50% compared to the baseline 16-core multi-core without cache partitioning, bandwidth partitioning and prefetch throttling

    Reworking the Revolution: Treasury Rulemaking & Administrative Law

    Get PDF
    How administrative law applies to tax rulemaking is an open and contested question. The resolution of this question has high stakes for the U.S. tax system. The paradigm is shifting away from so-called “tax exceptionalism”—where Treasury action is considered effectively exempt from the Administrative Procedure Act (the “APA”) and related administrative law doctrines. This paradigm-shift is salutary. However, currently prevailing anti-exceptionalist theory—an administrative framework for tax that is rapidly gaining credence within both the federal judiciary and the legal academy—threatens to destabilize the U.S. tax system. This formalistic approach to administrative law in tax rulemaking has the potential to invalidate a wide swath of existing Treasury regulations and to preclude the timely promulgation of new tax rules. This Article argues that these two existing theories of tax administration— exceptionalism and anti-exceptionalism—are inadequate, often for complementary reasons. This Article’s critique then supports its proposals for tax rulemaking processes that comply with the APA, but in a workable manner that does not upend established tax law. These proposals provide an intellectual and practical middle ground between the exceptionalists and anti-exceptionalists

    Domain-independent local search for linear integer optimization

    Get PDF
    Integer and combinatorial optimization problems constitute a major challenge for algorithmics. They arise when a large number of discrete organizational decisions have to be made, subject to constraints and optimization criteria. This thesis describes and investigates new domain-independent local search strategies for linear integer optimization. We introduce WSAT(OIP), an integer local search method which operates on an algebraic problem representation. WSAT(OIP) generalizes Walksat, a successful local search procedure for propositional satisfiability (SAT), to more expressive constraint systems. For this purpose, we introduce over-constrained integer programs (OIPs), a constraint class which is closely related to integer programs. OIP allows for a natural generalization of the principles of SAT local search to integer optimization. Further, it will be shown that OIPs are a special case of integer linear programs and permit combinations with linear programming for bound computation, initialization by rounding, search space reduction, and feasibility testing. The representation is similar enough to integer programs to make use of existing algebraic modeling languages as front-end to a local search solver. To improve performance on realistic problems, WSAT(OIP) incorporates strategies from Tabu Search. We experimentally investigate WSAT(OIP) for a variety of realistic integer optimization problems from the domains of time tabling, sports scheduling, radar surveillance, course assignment, and capacitated production planning. The experimental design examines efficiency, scaling (with increasing problem size and constrainedness), and robustness. The results demonstrate that integer local search can outperform or compete with state-of-the-art integer programming (IP) branch-and-bound and constraint programming (CP) approaches to these problems in finding near-optimal solutions. Key findings of our empirical study include that integer local search is able to solve difficult constraint problems from time-tabling and sports scheduling when cast into a 0-1 representation, which are beyond the scope of IP branch-and-bound strategies and for which devising robust constraint programs is a non-trivial task. For several realistic optimization problems (0-1 integer and finite domain) we show that integer local search exhibits graceful runtime scaling with increasing problem size and constrainedness. It can therefore significantly outperform IP branch-and-bound strategies on large or tightly constrained problems in finding near-optimal solutions. The problems under consideration are mostly beyond the limitations of a previous general-purpose simulated annealing strategy for 0-1 integer programs.Ganzzahlige und kombinatorische Optimierungsprobleme stellen eine schwierige Herausforderung im Gebiet der Algorithmen dar. Sie treten auf, wenn eine große Anzahl diskreter organisatorischer Entscheidungen unter Berücksichtigung von Constraints und Optimierungskriterien zu treffen sind. Diese Arbeit beschreibt und untersucht neue, domänenunabhängige Strategien der lokalen Suche zur ganzzahligen linearen Optimierung. Wir beschreiben WSAT(OIP), eine Strategie "ganzzahliger lokaler Suche';, die auf einer algebraischen Problemrepräsentation operiert. WSAT(OIP) verallgemeinert Walksat, eine erfolgreiche Prozedur lokaler Suche für das Erfüllbarkeitsproblem der Aussagenlogik (SAT), auf ausdrucksstärkere Constraint-Systeme. Für diesen Zweck führen wir die Klasse der "Over-constrained Integer Programs';(OIPs) ein, eine Constraint-Klasse, die eng mit ganzzahligen Programmen verwandt ist. OIPs erlauben einerseits eine natürliche Verallgemeinerung der Prinzipien von lokaler Suche für SAT. Andererseits sind sie ein Spezialfall der ganzzahligen linearen Programme und ermöglichen die Kombination mit linearer Programmierung zur Berechnung von Schranken, Initialisierung durch Rundung, Suchraum-Reduktion und für Gültigkeits-Tests. OIPs sind ganzzahligen Programmen ähnlich, so daß existierende algebraische Modellierungssprachen als Eingabeschnittstelle für einen Problemlöser benutzt werden können, der auf lokaler Suche basiert. Um die Performanz auf realistischen Problemen zu verbessern, ist WSAT(OIP) mit Strategien der Tabu-Suche ausgestattet. Wir führen eine experimentelle Untersuchung von WSAT(OIP) auf einer Reihe von realistischen ganzzahligen Constraint- und Optimierungsproblemen durch. Die Probleme stammen aus den Domänen Zeitplan-Erstellung, Sport-Ablaufplanung, Radar- Überwachung, Kurs-Zuteilung und Produktions-Planung. Das experimentelle Design untersucht Effizienz, Skalierung mit zunehmender Problemgröße und stärkeren Constraints sowie Robustheit. Die Ergebnisse zeigen, daß ganzzahlige lokale Suche bezüglich Performanz auf diesen Problemklassen zeitgemäße Ansätze der ganzzahligen Programmierung und der Constraint-Programmierung beim Finden nahe-optimaler Lösungen schlägt oder mit ihnen konkurriert. Kernergebnisse der empirischen Untersuchung sind, daß ganzzahlige lokale Suche in der Lage ist, schwierige Constraint-Probleme der Zeitplan-Erstellung und Sport-Ablaufplanung in einer 0-1 Repräsentation zu lösen, die außerhalb der Grenzen der ganzzahligen linearen Programmierung liegen, und für die die Entwicklung eines robustes Constraint-Programms eine nicht-triviale Aufgabe darstellt. Für mehrere realistische Optimierungsprobleme (ganzzahlig 0-1 und endliche Bereiche)zeigen wir, daß ganzzahlige lokale Suche eine günstige Skalierung der Laufzeit mit zunehmender Problemgröße und Constrainedness aufweist. Dadurch zeigt das Verfahren auf großen Problemen und auf Problemen mit starken Constraints deutlich bessere Performanz für das Finden nahe-Lösungen als die Branch-and-Bound Strategie der ganzzahligen Programmierung. Die untersuchten Probleme liegen zumeist außerhalb der Grenzen einer existierenden Simulated Annealing Strategie für allgemeine lineare 0-1 Programme

    Adaptive Microarchitectural Optimizations to Improve Performance and Security of Multi-Core Architectures

    Get PDF
    With the current technological barriers, microarchitectural optimizations are increasingly important to ensure performance scalability of computing systems. The shift to multi-core architectures increases the demands on the memory system, and amplifies the role of microarchitectural optimizations in performance improvement. In a multi-core system, microarchitectural resources are usually shared, such as the cache, to maximize utilization but sharing can also lead to contention and lower performance. This can be mitigated through partitioning of shared caches.However, microarchitectural optimizations which were assumed to be fundamentally secure for a long time, can be used in side-channel attacks to exploit secrets, as cryptographic keys. Timing-based side-channels exploit predictable timing variations due to the interaction with microarchitectural optimizations during program execution. Going forward, there is a strong need to be able to leverage microarchitectural optimizations for performance without compromising security. This thesis contributes with three adaptive microarchitectural resource management optimizations to improve security and/or\ua0performance\ua0of multi-core architectures\ua0and a systematization-of-knowledge of timing-based side-channel attacks.\ua0We observe that to achieve high-performance cache partitioning in a multi-core system\ua0three requirements need to be met: i) fine-granularity of partitions, ii) locality-aware placement and iii) frequent changes. These requirements lead to\ua0high overheads for current centralized partitioning solutions, especially as the number of cores in the\ua0system increases. To address this problem, we present an adaptive and scalable cache partitioning solution (DELTA) using a distributed and asynchronous allocation algorithm. The\ua0allocations occur through core-to-core challenges, where applications with larger performance benefit will gain cache capacity. The\ua0solution is implementable in hardware, due to low computational complexity, and can scale to large core counts.According to our analysis, better performance can be achieved by coordination of multiple optimizations for different resources, e.g., off-chip bandwidth and cache, but is challenging due to the increased number of possible allocations which need to be evaluated.\ua0Based on these observations, we present a solution (CBP) for coordinated management of the optimizations: cache partitioning, bandwidth partitioning and prefetching.\ua0Efficient allocations, considering the inter-resource interactions and trade-offs, are achieved using local resource managers to limit the solution space.The continuously growing number of\ua0side-channel attacks leveraging\ua0microarchitectural optimizations prompts us to review attacks and defenses to understand the vulnerabilities of different microarchitectural optimizations. We identify the four root causes of timing-based side-channel attacks: determinism, sharing, access violation\ua0and information flow.\ua0Our key insight is that eliminating any of the exploited root causes, in any of the attack steps, is enough to provide protection.\ua0Based on our framework, we present a systematization of the attacks and defenses on a wide range of microarchitectural optimizations, which highlights their key similarities.\ua0Shared caches are an attractive attack surface for side-channel attacks, while defenses need to be efficient since the cache is crucial for performance.\ua0To address this issue, we present an adaptive and scalable cache partitioning solution (SCALE) for protection against cache side-channel attacks. The solution leverages randomness,\ua0and provides quantifiable and information theoretic security guarantees using differential privacy. The solution closes the performance gap to a state-of-the-art non-secure allocation policy for a mix of secure and non-secure applications

    Domain-independent local search for linear integer optimization

    Get PDF
    Integer and combinatorial optimization problems constitute a major challenge for algorithmics. They arise when a large number of discrete organizational decisions have to be made, subject to constraints and optimization criteria. This thesis describes and investigates new domain-independent local search strategies for linear integer optimization. We introduce WSAT(OIP), an integer local search method which operates on an algebraic problem representation. WSAT(OIP) generalizes Walksat, a successful local search procedure for propositional satisfiability (SAT), to more expressive constraint systems. For this purpose, we introduce over-constrained integer programs (OIPs), a constraint class which is closely related to integer programs. OIP allows for a natural generalization of the principles of SAT local search to integer optimization. Further, it will be shown that OIPs are a special case of integer linear programs and permit combinations with linear programming for bound computation, initialization by rounding, search space reduction, and feasibility testing. The representation is similar enough to integer programs to make use of existing algebraic modeling languages as front-end to a local search solver. To improve performance on realistic problems, WSAT(OIP) incorporates strategies from Tabu Search. We experimentally investigate WSAT(OIP) for a variety of realistic integer optimization problems from the domains of time tabling, sports scheduling, radar surveillance, course assignment, and capacitated production planning. The experimental design examines efficiency, scaling (with increasing problem size and constrainedness), and robustness. The results demonstrate that integer local search can outperform or compete with state-of-the-art integer programming (IP) branch-and-bound and constraint programming (CP) approaches to these problems in finding near-optimal solutions. Key findings of our empirical study include that integer local search is able to solve difficult constraint problems from time-tabling and sports scheduling when cast into a 0-1 representation, which are beyond the scope of IP branch-and-bound strategies and for which devising robust constraint programs is a non-trivial task. For several realistic optimization problems (0-1 integer and finite domain) we show that integer local search exhibits graceful runtime scaling with increasing problem size and constrainedness. It can therefore significantly outperform IP branch-and-bound strategies on large or tightly constrained problems in finding near-optimal solutions. The problems under consideration are mostly beyond the limitations of a previous general-purpose simulated annealing strategy for 0-1 integer programs.Ganzzahlige und kombinatorische Optimierungsprobleme stellen eine schwierige Herausforderung im Gebiet der Algorithmen dar. Sie treten auf, wenn eine große Anzahl diskreter organisatorischer Entscheidungen unter Berücksichtigung von Constraints und Optimierungskriterien zu treffen sind. Diese Arbeit beschreibt und untersucht neue, domänenunabhängige Strategien der lokalen Suche zur ganzzahligen linearen Optimierung. Wir beschreiben WSAT(OIP), eine Strategie "ganzzahliger lokaler Suche\u27;, die auf einer algebraischen Problemrepräsentation operiert. WSAT(OIP) verallgemeinert Walksat, eine erfolgreiche Prozedur lokaler Suche für das Erfüllbarkeitsproblem der Aussagenlogik (SAT), auf ausdrucksstärkere Constraint-Systeme. Für diesen Zweck führen wir die Klasse der "Over-constrained Integer Programs\u27;(OIPs) ein, eine Constraint-Klasse, die eng mit ganzzahligen Programmen verwandt ist. OIPs erlauben einerseits eine natürliche Verallgemeinerung der Prinzipien von lokaler Suche für SAT. Andererseits sind sie ein Spezialfall der ganzzahligen linearen Programme und ermöglichen die Kombination mit linearer Programmierung zur Berechnung von Schranken, Initialisierung durch Rundung, Suchraum-Reduktion und für Gültigkeits-Tests. OIPs sind ganzzahligen Programmen ähnlich, so daß existierende algebraische Modellierungssprachen als Eingabeschnittstelle für einen Problemlöser benutzt werden können, der auf lokaler Suche basiert. Um die Performanz auf realistischen Problemen zu verbessern, ist WSAT(OIP) mit Strategien der Tabu-Suche ausgestattet. Wir führen eine experimentelle Untersuchung von WSAT(OIP) auf einer Reihe von realistischen ganzzahligen Constraint- und Optimierungsproblemen durch. Die Probleme stammen aus den Domänen Zeitplan-Erstellung, Sport-Ablaufplanung, Radar- Überwachung, Kurs-Zuteilung und Produktions-Planung. Das experimentelle Design untersucht Effizienz, Skalierung mit zunehmender Problemgröße und stärkeren Constraints sowie Robustheit. Die Ergebnisse zeigen, daß ganzzahlige lokale Suche bezüglich Performanz auf diesen Problemklassen zeitgemäße Ansätze der ganzzahligen Programmierung und der Constraint-Programmierung beim Finden nahe-optimaler Lösungen schlägt oder mit ihnen konkurriert. Kernergebnisse der empirischen Untersuchung sind, daß ganzzahlige lokale Suche in der Lage ist, schwierige Constraint-Probleme der Zeitplan-Erstellung und Sport-Ablaufplanung in einer 0-1 Repräsentation zu lösen, die außerhalb der Grenzen der ganzzahligen linearen Programmierung liegen, und für die die Entwicklung eines robustes Constraint-Programms eine nicht-triviale Aufgabe darstellt. Für mehrere realistische Optimierungsprobleme (ganzzahlig 0-1 und endliche Bereiche)zeigen wir, daß ganzzahlige lokale Suche eine günstige Skalierung der Laufzeit mit zunehmender Problemgröße und Constrainedness aufweist. Dadurch zeigt das Verfahren auf großen Problemen und auf Problemen mit starken Constraints deutlich bessere Performanz für das Finden nahe-Lösungen als die Branch-and-Bound Strategie der ganzzahligen Programmierung. Die untersuchten Probleme liegen zumeist außerhalb der Grenzen einer existierenden Simulated Annealing Strategie für allgemeine lineare 0-1 Programme

    Rethinking Regulatory Democracy

    Get PDF
    This article empirically examines democratic participation in three different regulatory proceedings, involving financial privacy, nuclear regulation, and campaign finance. It then uses that analysis to critique -- and suggest alternatives to -- existing mechanisms to achieve public participation in the regulatory state. The current mechanism for structuring public participation in regulatory decisions (or “regulatory democracy”) relies on demand-driven procedures like the Administrative Procedure Act’s notice and comment process. Organized interests and others who decide they have sufficient resources and interest to do so comment on regulations. While some observers consider this process close to ideal, others instead seem to accept the current approach only because it appears to be a reasonable compromise adequate for an imperfect world. Under this “compromise acceptance” view, current procedures seem easier to accept in light of certain empirical suppositions, such as that regulatory problems can be resolved through application of technical, scientific expertise, that individual members of the public tend to lack interest in participating in regulatory policymaking, and that even if they had such interest, they would add little to a process already informed by the views of organized interests. Drawing on an empirical analysis of thousands of public comments in these three regulations, as well as a rich empirical literature in political behavior, I show many of these suppositions to be questionable. (1) Comments from individual members of the public make up a substantial proportion of total comments about some regulations, showing at least some potential public demand for participation. (2) Dramatic differences exist in the sophistication of comments from organized interests and those of individual members of the public. (3) That deficit in sophistication independently affects the probability an agency will accept suggestions in public comments even when controlling for differences in commenter identity. (4) Interest groups do not always raise the range of concerns raised by comments from the lay public. (5) The larger public’s interest in a particular regulation and sophistication to take part in discussing it are both themselves shaped by the process used to consult that public. All this hints at a rich set of possibilities for alternative institutional designs to achieve regulatory democracy. I discuss two such approaches here. Both involve constituting a small group of people whose discussions can inform the regulatory process, and appointing a lawyer to serve as a “regulatory public defender” responsible for articulating their views to the agency. Participants can be either selected by lot from the entire population (a majoritarian deliberation approach), or chosen from among constituencies (such as outside experts) who may be especially impacted by the regulation but are essentially unrepresented (a corrective approach). Given that neither the public’s sophistication nor its interest in an issue are fixed, the new approaches can generate valuable information about what informed citizens think of regulatory proposals. These mechanisms can provide regulators with valuable information about what makes a new law acceptable to the public. Many of the technical challenges could be solved by creating a separate agency to implement reforms in regulatory democracy, though questions arise about sampling to select participants, framing the issue, and providing representation to the views of the group. Instead, the larger challenge to the reform of regulatory democracy is a political economy that strongly -- though not inevitably -- favors the status quo. I close by discussing three scenarios where reform would be easier to achieve
    • …
    corecore