8 research outputs found

    Guppie: A Coordination Framework for Parallel Processing Using Shared Memory Featuring A Master-Worker Relationship

    Get PDF
    Most programs can be parallelized to some extent. The processing power available in computers today makes parallel computing more desirable and attainable than ever before. Many machines today have multiple processors or multiple processing cores making parallel computing more available locally, as well as over a network. In order for parallel applications to be written, they require a computing language, such as C++, and a coordination language (or library), such as Linda. This research involves the creation and implementation of a coordination framework, Guppie, which is easy to use, similar to Linda, but provides more efficiency when dealing with large amounts of messages and data. Greater efficiency can be achieved in coarse-grained parallel computing through the use of shared memory managed through a master-worker relationship

    On component-oriented access control in lightweight virtualized server environments

    Get PDF
    2017 Fall.Includes bibliographical references.With the advancements in contemporary multi-core CPU architectures and increase in main memory capacity, it is now possible for a server operating system (OS), such as Linux, to handle a large number of concurrent services on a single server instance. Individual components of such services may run in different isolated runtime environments, such as chrooted jails or related forms of OS-level containers, and may need restricted access to system resources and the ability to share data and coordinate with each other in a regulated and secure manner. In this dissertation we describe our work on the access control framework for policy formulation, management, and enforcement that allows access to OS resources and also permits controlled data sharing and coordination for service components running in disjoint containerized environments within a single Linux OS server instance. The framework consists of two models and the policy formulation is based on the concept of policy classes for ease of administration and enforcement. The policy classes are managed and enforced through a Lightweight Policy Machine for Linux (LPM) that acts as the centralized reference monitor and provides a uniform interface for regulating access to system resources and requesting data and control objects. We present the details of our framework and also discuss the preliminary implementation and evaluation to demonstrate the feasibility of our approach

    Extensions parallèles pour le langage Nit

    Get PDF
    Grâce à la miniaturisation et à l'arrivée des processeurs multicœurs dans les ordinateurs personnels, la programmation parallèle ne semble plus être réservée aux groupes restreints d'utilisateurs ayant accès à des superordinateurs ou à des grappes de calculs. De plus, avec la tendance actuelle d'augmenter constamment le nombre de cœurs des processeurs, le besoin de développer des applications pouvant s'exécuter correctement sur l'ensemble des unités de traitement disponibles est un enjeu déterminant. Sous de telles conditions, tout langage de programmation récent devrait être doté de mécanismes permettant la génération et l'exploitation de calculs parallèles. Dans le présent mémoire, nous explorons la possibilité d'intégrer des extensions parallèles à un langage orienté objet récent qui, au départ, ne possédait aucun support pour la programmation parallèle. Le langage utilisé est Nit, un langage développé conjointement à l'UQAM et au LIRMM (Montpellier, France). Nit est un langage moderne orienté objet dont la mise en œuvre utilise de nouvelles techniques de compilation, à la fine pointe de la recherche sur les langages orientés objet. À ce langage de base séquentiel, nous avons ajouté un module, appelé NitSpace, qui permet d'échanger de l'information entre des processus qui s'exécutent en parallèle. Ce module est fondé sur le modèle Linda proposé par Carriero et Gelernter (2). Le modèle Linda propose de partager, entre les processus, un espace de tuples par l'intermédiaire duquel les divers processus échangent de l'information, et ce à l'aide de quatre opérations principales : out, in, rd et eval. À ces quatre opérations s'ajoutent aussi deux variantes non bloquantes des opérations de lecture : inp et rdp. Ces diverses opérations permettent l'ajout, l'extraction et la lecture dans un espace partagé de tuples. Un avantage du modèle Linda est sa simplicité, mais en permettant malgré tout la définition des structures de données plus complexes telles que sémaphores, barrières de synchronisation, sacs de tâches, tableaux distribués, flux de données, etc. Le modèle Linda, défini au départ dans le contexte du langage C, a par la suite été intégré à d'autres langages, qui ont introduit des variantes au modèle original. Quelques-unes de ces variantes seront présentées, en présentant les implémentations qui ont été réalisées dans les langages Ruby, Python, Scala et Java. Nous avons choisi de présenter ces langages car, tout comme Nit, il s'agit de langages orientés objets. Les caractéristiques de ces différentes mises en œuvre du modèle Linda ont aussi influencé le choix de conception et de réalisation de notre module NitSpace. L'implémentation de ce module fut réalisée en trois couches que l'on présentera en détail. La majeure partie représentant la couche de bas niveau fut réalisée en C. À celle-ci s'ajoute une couche médiane qui permet de relier la couche C à la couche Nit. Finalement, la couche supérieure, écrite entièrement en Nit, représente l'API qui permet à un programme Nit de générer des calculs parallèles.\ud ______________________________________________________________________________ \ud MOTS-CLÉS DE L’AUTEUR : Nit, NitSpace, programmation parallèle, Linda, espace de tuples

    Building intelligence open systems (BIOS)

    Get PDF
    Os edifícios estão a ser construídos com um número crescente de sistemas de automação e controlo não integrados entre si. Esta falta de integração resulta num caos tecnológico, o que cria dificuldades nas três fases da vida de um edifício, a fase de estudo, a de implementação e a de exploração. O desenvolvimento de Building Automation System (BAS) tem como objectivo assegurar condições de conforto, segurança e economia de energia. Em edifícios de grandes dimensões a energia pode representar uma percentagem significativa da factura energética anual. Um BAS integrado deverá contribuir para uma diminuição significativa dos custos de desenvolvimento, instalação e gestão do edifício, o que pode também contribuir para a redução de CO2. O objectivo da arquitectura proposta é contribuir para uma estratégia de integração que permita a gestão integrada dos diversos subsistemas do edifício (e.g. aquecimento, ventilação e ar condicionado (AVAC), iluminação, segurança, etc.). Para realizar este controlo integrado é necessário estabelecer uma estratégia de cooperação entre os subsistemas envolvidos. Um dos desafios para desenvolver um BAS com estas características consistirá em estabelecer a interoperabilidade entre os subsistemas como um dos principais objectivos a alcançar, dado que o fornecimento dos referidos subsistemas assenta normalmente numa filosofia multi-fornecedor, sendo desenvolvidos usando tecnologias heterogéneas. Desta forma, o presente trabalho consistiu no desenvolvimento de uma plataforma que se designou por Building Intelligence Open System (BIOS). Na implementação desta plataforma adoptou-se uma arquitectura orientada a serviços ou Service Oriented Architecture (SOA) constituída por quatro elementos fundamentais: um bus cooperativo, denominado BIOSbus, implementado usando Jini e JavaSpaces, onde todos os serviços serão ligados, disponibilizando um mecanismo de descoberta e um mecanismo que notificada as entidades interessadas sobre alterações do estado de determinado componente; serviços de comunicação que asseguram a abstracção do Hardware utilizado da automatização das diversas funcionalidades do edifício; serviços de abstracção de subsistemas no acesso ao bus; clientes, este podem ser nomeadamente uma interface gráfica onde é possível fazer a gestão integrada do edifício, cliente de coordenação que oferece a interoperabilidade entre subsistemas e os serviços de gestão energética que possibilita a activação de algoritmos de gestão racional de energia eléctrica

    Linda implementations in Java for concurrent systems

    No full text
    This paper surveys a number of the implementations of Linda that are available in Java. It provides some discussion of their strengths and weaknesses, and presents the results from benchmarking experiments using a network of commodity workstations. Some extensions to the original Linda programming model are also presented and discussed, together with examples of their application to parallel processing problem
    corecore