4 research outputs found

    Generating Code and Memory Buffers to Reorganize Data on Many-core Architectures

    Get PDF
    International audienceThe dataflow programming model has shown to be a relevant approach to efficiently run mas-sively parallel applications over many-core architectures. In this model, some particular builtin agents are in charge of data reorganizations between user agents. Such agents can Split, Join and Duplicate data onto their communication ports. They are widely used in signal processing for example. These system agents, and their associated implementations, are of major impor-tance when it comes to performance, because they can stand on the critical path (think about Amdhal's law). Furthermore, a particular data reorganization can be expressed by the devel-oper in several ways that may lead to inefficient solutions (mostly unneeded data copies and transfers). In this paper, we propose several strategies to manage data reorganization at compile time, with a focus on indexed accesses to shared buffers to avoid data copies. These strategies are complementary: they ensure correctness for each system agent configuration, as well as performance when possible. They have been implemented within the Sigma-C industry-grade compilation toolchain and evaluated over the Kalray MPPA 256-core processor

    Architectural Tactics for Energy Efficiency: Review of the Literature and Research Roadmap

    Get PDF
    The energy consequences of software are rapidly growing: at the high-end, server farms consume enormous amounts of energy; at the low-end there is ever-increasing emphasis on battery-powered mobile and Internet-of-Things (IoT) devices with equally increasing complex usage scenarios. Conversely, there has been little attention to how software architectures can be designed for energy efficiency. While other software qualities—--think of performance or availability--—have been extensively studied, there is little research on how to reason about energy-consumption as a first-class citizen. We provide a basis for reasoning about design decisions for energy efficiency by deriving a kit of reusable architectural tactics derived from literature. We use the well-known open-search and snowballing methodologies to attain primary studies, and subsequently used thematic coding of such studies to identify recurrences and commonalities among the design strategies presented. The result of this process is a set of 10 architectural tactics for energy efficiency. These tactics provide a rational basis for architectural design and analysis for energy efficiency

    Shellhive: Towards a Collaborative Visual Programming Language for UNIX Workflows

    Get PDF
    Big data é uma palavra-chave relativamente nova na indústria de software, diariamente é gerado uma enorme quantidade de dados que torna-se complicado geri-lo usando ferramentas de gestão de dados tradicionais, motivando-o a uma nova adaptação da programação tradicional para usarparadigmas e arquitecturas que possam processar tais quantidades de dados. Os sistemas operativos baseados em Unix fornecem ferramentas de programação, que usa paradigmas focadas no processamento de grandes quantidades de dados desde há muito tempo. Nesta tese, propomos umasolução para alavancar tais ferramentas Unix, de forma que programadores com pouca experiência em programação tenham capacidades de criar, entender e modificar tarefas relacionados com big-data com maior facilidade. A própria aplicação permite os utilizadores desenharem workflows colaborativamente para que os principiantes possam ajudar os outros e potencialmente aprender dos utilizadores mais experientes.Big data is a relatively new keyword in the software industry, every day, data is being generated in such a great amount that it becomes difficult to manage using traditional data management tools, motivating the adaptation of traditional programming to use paradigms and architectures that can process large amounts of data. The Unix based operative system provides programmingtools that uses said paradigms that focused on the process of large amount of data for a long time. In this thesis, we propose a solution to leverage said unix tools, to empower programmers with little experience in programming with the ability to create big-data related tasks that it's easier to understand and to modify. The application itself allows the user to design workflows collaboratively in order for people who are comfortable in Unix environment to help each otherand potentially learn from the more experient users

    Rate types for stream programs

    Full text link
    corecore