9,316 research outputs found

    On the correctness of a branch displacement algorithm

    Get PDF
    The branch displacement problem is a well-known problem in assembler design. It revolves around the feature, present in several processor families, of having different instructions, of different sizes, for jumps of different displacements. The problem, which is provably NP-hard, is then to select the instructions such that one ends up with the smallest possible program. During our research with the CerCo project on formally verifying a C compiler, we have implemented and proven correct an algorithm for this problem. In this paper, we discuss the problem, possible solutions, our specific solutions and the proofs

    On the correctness of a branch displacement algorithm

    Get PDF
    The branch displacement problem is a well-known problem in assembler design. It revolves around the feature, present in several processor families, of having different instructions, of different sizes, for jumps of different displacements. The problem, which is provably NP-hard, is then to select the instructions such that one ends up with the smallest possible program. During our research with the CerCo project on formally verifying a C compiler, we have implemented and proven correct an algorithm for this problem. In this paper, we discuss the problem, possible solutions, our specific solutions and the proofs

    pocl: A Performance-Portable OpenCL Implementation

    Get PDF
    OpenCL is a standard for parallel programming of heterogeneous systems. The benefits of a common programming standard are clear; multiple vendors can provide support for application descriptions written according to the standard, thus reducing the program porting effort. While the standard brings the obvious benefits of platform portability, the performance portability aspects are largely left to the programmer. The situation is made worse due to multiple proprietary vendor implementations with different characteristics, and, thus, required optimization strategies. In this paper, we propose an OpenCL implementation that is both portable and performance portable. At its core is a kernel compiler that can be used to exploit the data parallelism of OpenCL programs on multiple platforms with different parallel hardware styles. The kernel compiler is modularized to perform target-independent parallel region formation separately from the target-specific parallel mapping of the regions to enable support for various styles of fine-grained parallel resources such as subword SIMD extensions, SIMD datapaths and static multi-issue. Unlike previous similar techniques that work on the source level, the parallel region formation retains the information of the data parallelism using the LLVM IR and its metadata infrastructure. This data can be exploited by the later generic compiler passes for efficient parallelization. The proposed open source implementation of OpenCL is also platform portable, enabling OpenCL on a wide range of architectures, both already commercialized and on those that are still under research. The paper describes how the portability of the implementation is achieved. Our results show that most of the benchmarked applications when compiled using pocl were faster or close to as fast as the best proprietary OpenCL implementation for the platform at hand.Comment: This article was published in 2015; it is now openly accessible via arxi

    Extending Static Synchronization Beyond SIMD and VLIW

    Get PDF
    A key advantage of SIMD (Single Instruction stream, Multiple Data stream) architectures is that synchronization is effected statically at compile-time, hence the execution-time cost of synchronization between “processes” is essentially zero. VLIW (Very Long Instruction Word) machines are successful in large part because they preserve this property while providing more flexibility in terms of what kinds of operations can be parallelized. In this paper, we propose a new kind of architecture —- the “static barrier MIMD” or SBM — which can be viewed as a further generalization of the parallel execution abilities of static synchronization machines. Barrier MIMDs are asynchronous Multiple Instruction stream Multiple Data stream architectures capable of parallel execution of loops, subprogram calls, and variable execution- time instructions; however, little or no run-time synchronization is needed. When a group of processors within a barrier MIMD has just encountered a barrier, any conceptual synchronizations between the processors are statically accomplished with zero cost — as in a SIMD or VLIW and using similar compiler technology. Unlike these machines, however, as execution continues the relative timing of processors may become less precisely knowable as a static, compile-time, quantity. Where this imprecision becomes too large, the compiler simply inserts a synchronization barrier to insure that timing imprecision at that point is zero, and again employs purely static, implicit, synchronization. Both the architecture and the supporting compiler technology are discussed in detail

    Digital materials

    Get PDF
    Thesis (S.M.)--Massachusetts Institute of Technology, School of Architecture and Planning, Program in Media Arts and Sciences, 2010.Cataloged from PDF version of thesis.Includes bibliographical references (p. 43-44).This thesis develops the use of additive assembly of press-fit digital materials as a new rapid-prototyping process. Digital materials consist of a finite set of parts that have discrete connections and occupy discrete space. Part geometries were designed and fabricated at different scales from different materials, including hierarchical voxels which connect across different scales. All parts were designed to be vertically assembled with top and bottom connections. Digital materials are discussed as a new way for building physically reconfigurable, multi-material 3D structures. The parts were designed with press-fit connectors to build reversible assemblies to take full advantage of reuse and recycling. This document starts by describing some current technologies in the fields of rapid-prototyping and personal fabrication. The concept for a press-fit digital materials is defined and explained. Many part designs are documented, including conductor and insulator parts for SOIC-pitch 3D circuits and hierarchical assemblies. This thesis concludes with the design and concept for assembly machine to automate building functional digital materials.by Jonathan Ward.S.M

    Working to consume: consumers as the missing link in the division of labour

    Get PDF
    This paper argues that the work of consumers is a significant and constantly developing field of work, and proposes a conceptual framework for understanding consumption work as part of the division of labour. The labour associated with consumption is not new, but has been rapidly expanding in recent years as a consequence of both socio-economic change and technical innovation. Few goods or services are delivered ?complete? to consumers in the sense of being ready for use without further activity, yet the role of consumers in completing a system of provision is rarely acknowledged in theories of either work or consumption. Recognition of the interdependence between the work undertaken prior to and after the purchase of goods and services problematises any assumption that all post-purchase activity comprises consumption and calls for a conception of the division of labour that extends from the market and world of paid employment to encompass also the usually unpaid labour of the end user. Consumption work is defined as ?all work undertaken by consumers necessary for the purchase, use, re-use and disposal of consumption goods?. Its key characteristics are delineated using examples from everyday life, and the approach towards it is distinguished from the practices and theories of consumption, domestic labour, and co-production/prosumption. The paper draws on current international comparative research in three socio-economic fields of activity (the work of food preparation, the installation of broad band and household recycling of waste) to illustrate its main arguments and explore the varieties of consumption work, their shaping by prevailing systems of provision, and their place within the division of labour

    Open design : práticas atuais e implicações para a arquitetura e desenho urbano

    Get PDF
    Orientador: Evandro Ziggiatti MonteiroTese (doutorado) - Universidade Estadual de Campinas, Faculdade de Engenharia Civil, Arquitetura e UrbanismoResumo: O conceito de Design Aberto (OD) tem atraído cada vez mais atenção de pesquisadores, comunidades e empresas. Os seus benefícios são frequentemente associados à democratização do design, melhoria mais rápida de projetos, customização em massa e aos processos de inovação alternativos. No campo da construção, diferentes exemplos que levam em consideração o conceito do OD, podem ser encontrados. As possibilidades vão desde o compartilhamento de componentes de rápida fabricação e de baixo custo para a construção de casas (Wikihouse), passando pela fabricação de móveis (Opendesk) até as ferramentas de jardinagem (AKER). No contexto de comunidades mais pobres, a abordagem OD desperta interesse. Esta pesquisa tem como objetivo investigar o conceito de DO como fenômeno emergente e suas implicações no campo da Arquitetura e do Design Urbano. Atualmente, existem poucas pesquisas sobre OD, principalmente se o limitarmos à prática da arquitetura. Proponho uma análise de pesquisa multi-método, utilizando estratégias qualitativas e quantitativas no estudo do mesmo fenômeno. A estrutura da pesquisa aborda quatro questões principais: (1) Como os diferentes aspectos de abertura afetam a fabricação de artefatos? (2) Como o OD se relaciona com o desenvolvimento sustentável? Quais são as limitações atuais e os caminhos possíveis para superá-las? (3) Quais são os desafios atuais para replicabilidade no OD e como superá-los? (4) Qual é a estrutura de uma comunidade colaborativa de OD? Com base nos resultados, é possível argumentar que que o OD possa alterar a maneira como os arquitetos e os urbanistas trabalham. Os obstáculos atuais, no entanto, precisam ser enfrentados antes que o conceito possa ser adotado por um público maior, especialmente nas comunidades mais pobres. Dos resultados transversais de quatro questões propostas, quatro sugestões foram feitas: (1) a adoção de uma abordagem de metadesign, (2) a adoção de projetos modulares, (3) a educação para a abertura e (4) o uso de microfábricas móveis como infraestrutura urbana. Por fim, a pesquisa contribui para as discussões sobre OD e visa construir uma estrutura conceitual para a prática profissional da arquitetura com uma abordagem voltada ao ODAbstract: The concept of Open Design (OD) has increasingly gathered attention amongst scholars, grassroots communities and companies during the last ten years. OD benefits are often associated to the design democratization, faster improvement of design artifacts, mass customization and alternative innovation processes. In the construction field, a number of examples that take knowledge and digital commons into account already exists. The possibilities go from sharing low-cost and rapid-assembly components for building houses (Wikihouse), furniture fabrication (Opendesk) and gardening tools (AKER)). In the context of a developing country, the OD approach arouses interest. This research aims to investigate the concept of OD as an emergent phenomenon and its implications to the field of Architecture and Urban Design. Despite the emergence, little research on OD currently exists, especially if we limit it to the scope of the architecture practice. I propose a multi-method research analysis, using qualitative and quantitative strategies in the study of the same phenoma. The research structure addresses four main questions: (1) How do the different aspects of openness affect artefact manufacturing? (2) How does Open Design relate to sustainable development? What are the current limitations and possible pathways to overcome such limitations? (3) What are the current challenges for replicability in OD and how to overcome them? (4) What is the structure of an OD collaborative community? How and Why users collaborate? Based on the findings, it is possible to argue for the viability of OD to change the way architects and urban designers work. Current hurdles however need to be tackled before it can be adopted by a larger audience, especially in poorer communities. From cross-cutting results of four RQs, four suggestions were made: (1) the adoption of a metadesign approach, (2) the adoption of modular designs, (3) the education for openness and (4) mobile microfactories as urban infrastructure. The research contributes to discussions on Open Design and aims to build a conceptual framework for the professional practice within the emergence of ODDoutoradoArquitetura, Tecnologia e CidadeDoutor em Arquitetura, Tecnologia e Cidade01-P-04375-2015CAPE

    Formalizing the Expertise of the Assembly Language Programmer

    Get PDF
    A novel compiler strategy for generating high quality code is described. The quality of the code results from reimplementing the program in the target language using knowledge of the program's behavior. The research is a first step towards formalizing the expertise of the assembly language programmer. The ultimate goal is to formalize code generation and implementation techniques in the same way that parsing and code generation techniques have been formalized. An experimental code generator based on the reimplementation strategy will be constructed. The code generator will provide a framework for analyzing the costs, applicability, and effectiveness of various implementation techniques. Several common code generation problems will be studied. Code written by experienced programmers and code generated by a conventional optimizing compiler will provide standards of comparison.MIT Artificial Intelligence Laborator

    Veamy: an extensible object-oriented C++ library for the virtual element method

    Full text link
    This paper summarizes the development of Veamy, an object-oriented C++ library for the virtual element method (VEM) on general polygonal meshes, whose modular design is focused on its extensibility. The linear elastostatic and Poisson problems in two dimensions have been chosen as the starting stage for the development of this library. The theory of the VEM, upon which Veamy is built, is presented using a notation and a terminology that resemble the language of the finite element method (FEM) in engineering analysis. Several examples are provided to demonstrate the usage of Veamy, and in particular, one of them features the interaction between Veamy and the polygonal mesh generator PolyMesher. A computational performance comparison between VEM and FEM is also conducted. Veamy is free and open source software
    corecore