251 |
Laboratório remoto baseado em software livre para realização de experimentos didáticos. / Remote laboratory based on open source software to perform educational experiments.Luciano Ogiboski 15 June 2007 (has links)
Este trabalho apresenta o desenvolvimento de um sistema de aquisição de dados para controlar experimentos em instrumentos de medidas através da interface GPIB. O sistema criado tem objetivos educacionais e foi integrado a um ambiente de educação a distância, permitindo o acesso remoto a instrumentos reais para que possam ser utilizados em cursos on-line. Foi utilizado um sistema de gerenciamento de cursos on-line com ferramentas interativas e de fácil gerenciamento. O sistema escolhido permite a criação de cursos de forma modular, onde os componentes ou recursos de interação são escolhidos individualmente para cada ambiente novo criado. O objetivo deste trabalho foi a criação de um novo módulo para o sistema, que representa um laboratório remoto para realização de experimentos de aquisição de dados em instrumentos. Foi proposta uma arquitetura modular para laboratório remoto baseado em tecnologias de software livre, juntamente com a tecnologia de Web Services para integração entre o sistema de aquisição e o ambiente de educação a distância. Este trabalho oferece uma nova abordagem para instrumentação remota, fornecendo não apenas a extensão de um laboratório através da Internet e de sistemas distribuídos, mas também ferramentas interativas de educação a distância, favorecendo a interação e a comunicação entre usuários. / This work presents the development of a data acquisition system to control experiments in measurement instruments through GPIB interface. The system created is intended to be applied for educational purposes, thus it was integrated to an online learning environment, enabling remote access to real instruments, to be used in e-learning courses. It was used an open source environment with interactive tools and easy management. Chose system allows modular e-learning courses creation, which learning components or interactive resources can be selected independently. The aim was to create a new module, representing a remote laboratory, to perform data acquisition experiments in instruments. It was proposed a modular architecture to remote laboratory based on open source technologies. It includes Web Services architecture to integrate data acquisition system and distance education environment. This research presents a differential approach for remote instrumentation. It represents not only an internet extension for laboratory, but also offer distance education interactive resources to improve user communication.
|
252 |
Escalonamento de tarefas em sistemas distribuídos baseado no conceito de propriedade distribuídaFalavinha Junior, José Nelson [UNESP] 25 May 2009 (has links) (PDF)
Made available in DSpace on 2014-06-11T19:30:50Z (GMT). No. of bitstreams: 0
Previous issue date: 2009-05-25Bitstream added on 2014-06-13T21:01:23Z : No. of bitstreams: 1
falavinhajunior_jn_dr_ilha.pdf: 3487083 bytes, checksum: 5eeeb56b23091b46b46acaafba4babe4 (MD5) / Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES) / Em sistemas distribuídos de larga escala; onde os recursos compartilhados são de propriedade de entidades distintas; existe a necessidade de refletir o fator propriedade dos recursos no processo de escalonamento de tarefas e alocação de recursos. Um sistema de gerenciamento de recursos apropriado deve garantir que os proprietários de recursos tenham acesso aos seus recursos ou ao menos a uma parcela de recursos que seja equivalente a eles. Diferentes políticas podem ser estabelecidas para que o sistema garanta esse direito aos proprietários de recursos; e nessa tese defende-se uma política de escalonamento e alocação de reucrsos chamada Owner-Share Enforcement Policy (OSEP) ou Política de Garantia da Porção do Proprietário; que tem por objetivo garantir o direito de acesso aos recursos através de um sistema de escalonamento baseado em preempção de tarefas e realocação de recursos. Avalia-se a política através da análise de testes e resultados envolvendo métricas de desempenho que descrevem fatores como violação da política; perdada capacidade de processamento; custo da política e satisfação do usuário. Os testes ainda envolveram a análise de desempenho da política em ambientes com a possibilidade de chekcpointing de tarefas; minimizando assim o desperdício de processamento. Fez-se ainda comparações com a política de compartilhamento justo Fair-Share; que permitiram estabelecer as vantagens e desvantagens de cada política e ainda identificar futuros problemas. Por fim; conclui-se a tese identificando as contribuições oferecidas por este trabalho e os trabalhos futuros que podem ser desenvolvidos. / In large distributed systems, where shared resources are owned by distinct entities, there is a need to reflect resource ownership in resource allocation. An appropriate resource management system should guarantee that owners of resources have access to their resources or at least to a share of resources proportional to the share of resources they provide. Different policies can be established for guaranteeing the access to resources, and in this thesis we introduce a policy for scheduling and resource allocation named Owner Share Enforcement Policy (OSEP). This policy is based on the concept of distributed ownership and itguarantees the owner's right of accessing their share of resources in a distributed system with a preemptive share space. We evaluate this policy through tests and results analysis involving performance metrics that describe policy violation, loss of capacity, policy cost and user satisfaction. The tests were also conducted in environments withand without job checkpointing, and comparisons with the Fair-Share scheduling policy were made in order to capture the trade-offs of each policy. Finally, we conclude the thesis describing the contributions achieved with this work and pointing directions for future work.
|
253 |
Information Flow Security in Component-Based Models : From verification to Implementation / Sécurité du flux d'information : de la vérification à l'implémentationBen Said, Najah 07 November 2016 (has links)
La sécurité des systèmes d'information sont primordiales dans la vie d'aujourd'hui, en particulier avec la croissance des systèmes informatiques complexes et fortement interconnectés. Par exemple, les systèmes bancaires ont l'obligation de garantir l'intégrité et la confidentialité de leurs comptes clients. Le vote électronique, des ventes aux enchères et le commerce doit aussi assurer leurs la confidentialité et l'intégrité.Cependant, la vérification de la sécurité et sa mise en œuvre en distribuée sont des processus lourds en général, les compétences de sécurité avancées sont nécessaires puisque les deux configuration de sécurité et l'implementation de systèmes distribué sont complexes et sujette d'erreurs. Avec les attaques de sécurité divers menés par l'environnement Internet, comment pouvons-nous être sûrs que les systèmes informatiques que nous construisons ne satisfont la propriété de sécurité prévu?La propriété de la sécurité que nous étudions dans cette thèse est la non-ingérence, qui est une propriété globale qui permet de suivre les informations sensibles dans l'ensemble du système et de garantir la confidentialité et l'intégrité. La non-ingérence est exprimée par l'exigence selon laquelle aucune information sur des données secrètes est une fuite à travers l'observation de la variation des données publiques. Cette définition est plus subtile qu'une spécification de base de l'accès légitime pour les informations sensibles, ce qui permet d'exploiter et de détecter les dysfonctionnements et malveillants programmes intrusions pour les données sensibles (par exemple, un cheval de Troie qui envoie des données confidentielles aux utilisateurs non fiables). Cependant, comme une propriété globale, la non-interférence est difficile à vérifier et à mettre en œuvre.À cette fin, nous proposons un flux de conception basée sur un modèle qui assure la propriété non-interference dans un logiciel d'application de son modèle de haut niveau conduisant à la mise en œuvre sécurisée décentralisée. Nous présentons la plateforme secureBIP, qui est une extension pour le modèle à base de composants avec des interactions multi-partie pour la sécurité. La non-interference est garantie à l'aide de deux manières pratiques: (1) nous annotons les variables et les ports du modèle, puis selon un ensemble défini de contraintes syntaxiques suffisantes, nous vérifions la satisfaction de la propriété, (2), nous annotons partiellement le modèle, puis en extrayant ses graphes de dépendances de composition nous appliquons un algorithme de synthèse qui calcule la configuration sécurisée moins restrictive du modèle si elle existe.Une fois que la sécurité des flux d'information est établie et la non-interference est établie sur un modèle de haut niveau du système, nous suivons une méthode automatisée pratique pour construire une application distribuée sécurisée. Un ensemble de transformations sont appliquées sur le modèle abstrait de transformer progressivement en bas niveau des modèles distribués et enfin à la mise en œuvre distribuée, tout en préservant la sécurité des flux d'information. La transformations du modèles remplacent coordination de haut niveau en utilisant des interactions multi-partites par des protocoles en utilisant des envoies et reception de messages asynchrone. La distribution est donc prouvé "sécuriser par construction" qui est, le code final est conforme à la politique de sécurité souhaitée. Pour montrer la facilité d'utilisation de notre méthode, nous appliquons et d'expérimenter sur des études et des exemples de cas réels de domaines d'application distincts. / The security of information systems are paramount in today’s life, especially with the growth of complex and highly interconnected computer systems. For instance, bank systems have the obligation to guarantee the integrity and confidentiality of their costumers accounts. The electronic voting, auctions and commerce also needs confidentiality and integrity preservation.However, security verification and its distributed implementation are heavy processes in general, advanced security skills are required since both security configuration and coding distributed systems are complex and error-prone. With the diverse security attacks leaded by the Internet advent, how can we be sure that computer systems that we are building do satisfy the intended security property?The security property that we investigate in this thesis is the noninterference, which is a global property that tracks sensitive information in the entire system and ensures confidentiality and integrity. Non-interference is expressed by the requirement that no information about secret data is leaked through the observation of public data variation. Such definition is more subtle than a basic specification of legitimate access for sensitive information, allowing to exploit and detect malfunctioning and malicious programs intrusions for sensitive data (e.g, Trojan horse that sends confidential data to untrusted users). However as a global property, the noninterference is hard to verify and implement.To this end, we propose a model-based design flow that ensures the noninterference property in an application software from its high-level model leading to decentralized secure implementation. We present the secureBIP framework that is an extension for the component-based model with multyparty interactions for security. Non-interference is guaranteed using two practical manners: (1) we annotate the entire variables and ports of the model and then according to a defined set of sufficient syntactic constraints we check the satisfaction of the property, (2) we partially annotate the model way and then by extracting its compositional dependency graphswe apply a synthesis algorithm that computes the less restrictive secure configuration of the model if it exists.Once the information flow security is established and non-interference is established on an high-level model of the system, we follow a practical automated method to build a secure distributed implementation. A set of transformations are applied on the abstract model to progressively transform it into low-level distributed models and finally to distributed implementation, while preserving information flow security. Model transformations replace high-level coordination using multiparty interactions by protocols using asynchronous Send/Receive message-passing. The distributedimplementation is therefore proven ”secure-by-construction” that is, the final code conforms to the desired security policy. To show the usability of our method, we apply and experiment it on real case studies and examples from distinct application domains.
|
254 |
[en] EXTENDING A SOFTWARE INFRASTRUCTURE FOR CLUSTER COMPUTING WITH SUPPORT FOR PROCESSOR RESERVATION / [pt] ESTENDENDO UMA INFRA-ESTRUTURA DE SOFTWARE PARA AGLOMERADOS DE COMPUTADORES COM UM SUPORTE A RESERVA DE PROCESSADORRONALDO LUIZ CONDE PEREIRA 23 July 2007 (has links)
[pt] O objetivo deste trabalho é estudar a integração de
mecanismos de reserva
de recursos computacionais em infra-estruturas de software
para aglomerados
de computadores. Para realizar esse estudo, foi utilizado
o framework CSBase,
que é uma infra-estrutura de software concebida com o
intuito de dar apoio à
implementação e integração de aplicações científicas em
ambientes distribuídos
e heterogêneos. O CSBase oferece suporte à execução de
aplicações em
ambientes distribuídos e ao gerenciamento de usuários e de
recursos
computacionais, tais como computadores, arquivos de dados
e aplicações.
Entretanto, as primeiras aplicações desenvolvidas com o
CSBase já
demonstraram que são necessários mecanismos que permitam
um melhor
gerenciamento e controle dos recursos computacionais
disponíveis em
ambientes distribuídos, e especialmente em aglomerados de
computadores
dedicados à execução de aplicações de alto desempenho.
Neste trabalho,
apresentamos uma extensão ao framework CSBase que
possibilita a reserva de
processador para aplicações de usuários do sistema, e
assim permitindo um
gerenciamento mais eficiente dos recursos computacionais
disponíveis. Essa
extensão também garante que serão efetuadas as adaptações
necessárias para
acomodar eventuais variações no perfil de uso do
processador por parte das
aplicações. Como resultado dessa extensão, obteve-se a
integração entre a
monitoração de recursos distribuídos, a iniciação remota
de aplicações, e um
mecanismo de reserva de processador que proporcionou uma
melhor utilização
das máquinas disponíveis. / [en] The goal of this work is to study the integration of
resource reservation
mechanisms with software infrastructures for cluster
computing. To perform this
study, we used the CSBase framework, which is a software
infrastructure
conceived to support the implementation and integration of
scientific applications
in heterogeneous and distributed environments. CSBase
offers support for
application execution in distributed environments, as well
as support for
management of users and computational resources, such as
computers, data
files and applications. However, the first applications
developed with CSBase
showed that it requires mechanisms to allow a better
management of resources
available in distributed environments, and especially in
clusters of computers
dedicated to execute high performance applications. In
this work, we present an
extension to CSBase that provides the reservation of
processor time to user
applications, thus allowing a more efficient resource
management. This extension
also guarantees that all required adaptations will be
performed to accommodate
variations in the applications´ processor usage profile.
As a result of this
extension, we achieved the integration of mechanisms for
distributed resource
monitoring, remote application execution, and processor
reservation, providing a
better utilization among the available machines.
|
255 |
Dinamismo de servidores de dados no sistema de arquivos dNFSp / Data Servers Dynamism in the dNFSp File SystemHermann, Everton January 2006 (has links)
Um dos maiores desafios no desenvolvimento de sistemas de alto desempenho é a questão da transferência e armazenamento de grandes quantidades de dados dentro do sistema. Diferentes abordagens tentam solucionar este problema. Entre elas, tem-se os sistemas de arquivos voltados para cluster, como PVFS, Lustre e NFSp. Eles distribuem as funções de armazenamento entre os nós do cluster. Na maioria dos casos, os nós do sistema de arquivos são divididos em duas categorias: servidores de dados e servidores de metadados. Assim, fica a cargo do administrador determinar como estes servidores são dispostos dentro do cluster. No entanto, esta tarefa nem sempre é óbvia, pois grande parte dos sistemas de arquivos exige que os nós destinados ao sistema sejam determinados na sua instalação, sem a possibilidade de alterações posteriores. Uma má configuração inicial pode exigir a reinstalação do sistema, e o fato de não fazer esta reinstalação pode resultar em um serviço que não satisfaz às necessidades dos usuários.O objetivo deste trabalho é propor um modelo de tratamento do dinamismo de servidores de dados em um sistema de arquivos para cluster. Três cenários foram estudados, e para cada um deles foram analisadas estratégias de autoconfiguração do sistema de arquivos emtempo de execução. O primeiro caso tratado foi a adição de servidores de dados por parte do administrador para expandir a capacidade do sistema de arquivos. Testes sobre este caso mostraram que, nas situações onde a distribuição de carga entre os servidores de dados é homogênea, pode-se extrair os melhores resultados do sistema. O segundo caso tratado foi a inserção por parte do usuário de servidores temporários de dados. Esta inserção temcomo objetivo suprir as necessidades temporárias de algumas aplicações. Foram realizados testes comparando o desempenho de aplicações com e sem a utilização de servidores temporários. Em todos os casos, a aplicação com servidores temporários teve maior desempenho, atingindo até 20% de ganho. O último cenário tratado combina técnicas de replicação com o dinamismo de nós. Assim, foi possível manter o sistema de arquivos em funcionamento mesmo após a perda de um servidor de dados. Os resultados mostraram que a perda de servidores de dados pode resultar em desequilíbrio de carga entre servidores, comprometendo o desempenho do sistema de arquivos. / One of the most important challenges to high performance systems designers is storing and transfering large amounts of data between the nodes on the system. Different approaches have been proposed to solve this storage performance problem. Cluster file systems, like PVFS, Lustre and NFSp are examples of such systems, as they distribute the functionality of a file system across the nodes of cluster, achieving a high level of parallelism and offering a larger storage space than centralized solutions. Usually the file system nodes are of two types: metadata servers and data servers. The placement of those services on a cluster is left to the cluster administrator. Such configuration is not an obvious task, as most file systems do not allow changing the configuration after the installation. A suboptimal initial configuration may result on a file system that does not fit the users need and changing such configuration may require a file system reinstall. The objective of this work is to propose a model to treat the dynamism of data servers on a cluster file system. Three scenarios were studied and for each one we have designed suitable reconfiguration strategies. The first case has its origin on the system administrator’s actions, adding or removing data servers to change the capacity of the file system. The tests have shown that with an homogeneous load distribution across the servers it was possible to obtain the best results. The second scenario treats the temporary data server insertion by the user. This case aims to provide extra storage capacity to a specified application. Tests were performed comparing applications with and without temporary data servers. On all the cases the application with temporary data server has had better performance results, reaching 20% of performance gain. The last scenario, combines replication techniqueswith server dynamism. Thisway, itwas possible to keep the file systemworking even on data servers failure. The tests have shown that the losts of a nodemay result on load unbalancing on data servers, degrading the overall file system performance.
|
256 |
ROBIN HOOD : um ambiente para a avaliação de políticas de balanceamento de carga / Robin Hood: an environment to load balancing policies evaluationNogueira, Mauro Lucio Baioneta January 1998 (has links)
É ponto passivo a importância dos sistemas distribuídos no desenvolvimento da computação de alto desempenho nas próximas décadas. No entanto, ainda muito se debate sobre políticas de gerenciamento adequadas para os recursos computacionais espacialmente dispersos disponíveis em tais sistemas. Políticas de balanceamento de carga procuram resolver o problema da ociosidade das maquinas(ou, por outro lado, da super-utilização) em um sistema distribuído. Não são raras situações nas quais somente algumas maquinas da rede estão sendo efetivamente utilizadas, enquanto que varias outras se encontram subutilizadas, ou mesmo completamente ociosas. Aberta a possibilidade de executarmos remotamente uma tarefa, com o intuito de reduzirmos o tempo de resposta da mesma, ainda falta decidirmos "como" fazê-lo. Das decisões envolvidas quanto a execução remota de tarefas tratam as políticas de balanceamento de carga. Tais políticas, muito embora a aparente simplicidade quanto as decisões de controle tomadas ou ao reduzido numero de parâmetros envolvidos, não possuem um comportamento fácil de se prever. Sob determinadas condições, tais políticas podem ser tomar excessivamente instáveis, tomando sucessivas decisões equivocadas e, como consequência, degradando de forma considerável o desempenho do sistema. Em tais casos, muitas das vezes, melhor seria não tê-las. Este trabalho apresenta um ambiente desenvolvido com o objetivo de auxiliar projetistas de sistema ou analistas de desempenho a construir, simular e compreender mais claramente o impacto causado pelas decisões de balanceamento no desempenho do sistema. / There is no doubts about the importance of distributed systems in the development of high performance computing in the next decades. However, there are so much debates about appropriated management policies to spatially scattered computing resources available in this systems. Load balancing policies intend to resolve the problem of underloaded machines (or, in other hand, overloaded machines) in a distributed system. Moments in which few machines are really being used, meanwhile several others are underused, or even idle, aren't rare. Allowed the remote execution of tasks in order to decrease the response time of theirs, it remains to decide 'how' to do it. Load balancing policies deal with making decisions about remote execution. Such policies, in spite of the supposed simplicity about their control decisions and related parameters, doesn't have a predictable behavior. In some cases, such policies can become excessively unstable, making successive wrong decisions and, as consequence, degrading the system performance. In such cases, it's better no policy at all. This work presents an environment developed whose purpose is to help system designers or performance analysts to build, to simulate and to understand the impact made by balancing decisions over the system performance.
|
257 |
Extensão do suporte para simulação de defeitos em algoritmos distribuídos utilizando o Neko / Extension to support failures in distributed algorithm simulation using NekoRodrigues, Luiz Antonio January 2006 (has links)
O estudo e desenvolvimento de sistemas distribuídos é uma tarefa que demanda grande esforço e recursos. Por este motivo, a pesquisa em sistemas deste tipo pode ser auxiliada com o uso de simuladores, bem como por meio da emulação. A vantagem de se usar simuladores é que eles permitem obter resultados bastante satisfatórios sem causar impactos indesejados no mundo real e, conseqüentemente, evitando desperdícios de recursos. Além disto, testes em larga escala podem ser controlados e reproduzidos. Neste sentido, vem sendo desenvolvido desde 2000 um framework para simulação de algoritmos distribuídos denominado Neko. Por meio deste framework, algoritmos podem ser simulados em uma única máquina ou executados em uma rede real utilizando-se o mesmo código nos dois casos. Entretanto, através de um estudo realizado sobre os modelos de defeitos mais utilizados na literatura, verificou-se que o Neko é ainda bastante restrito nesta área. A única classe de defeito abordada, lá referida como colapso, permite apenas o bloqueio temporário de mensagens do processo. Assim, foram definidos mecanismos para a simulação das seguintes classes de defeitos: omissão de mensagens, colapso de processo, e alguns defeitos de rede tais como quebra de enlace, perda de mensagens e particionamento. A implementação foi feita em Java e as alterações necessárias no Neko estão documentadas no texto. Para dar suporte aos mecanismos de simulação de defeitos, foram feitas alterações no código fonte de algumas classes do framework, o que exige que a versão original seja alterada para utilizar as soluções. No entanto, qualquer aplicação desenvolvida anteriormente para a versão original poderá ser executada normalmente independente das modificações efetuadas. Para testar e validar as propostas e soluções desenvolvidas foram utilizados estudos de caso. Por fim, para facilitar o uso do Neko foi gerado um documento contendo informações sobre instalação, configuração e principais mecanismos disponíveis no simulador, incluindo o suporte a simulação de defeitos desenvolvido neste trabalho. / The study and development of distributed systems is a task that demands great effort and resources. For this reason, the research in systems of this type can be assisted by the use of simulators, as well as by means of the emulation. The advantage of using simulators is that, in general, they allow to get acceptable results without causing harming impacts in the real world and, consequently, preventing wastefulness of resources. Moreover, tests on a large scale can be controlled and reproduced. In this way, since 2000, a framework for the simulation of distributed algorithms called Neko has been developed. By means of this framework, algorithms can be simulated in a single machine or executed in a real network, using the same code in both cases. However, studying the most known and used failure models developed having in mind distributed systems, we realized that the support offered by Neko for failure simulation was too restrictive. The only developed failure class, originally named crash, allowed only a temporary blocking of process’ messages. Thus, mechanisms for the simulation of the following failure classes were defined in the present work: omission of messages, crash of processes, and some network failures such as link crash, message drop and partitioning. The implementation was developed in Java and the necessary modifications in Neko are registered in this text. To give support to the mechanisms for failure simulation, some changes were carried out in the source code of some classes of the framework, what means that the original version should be modified to use the proposed solutions. However, all legacy applications, developed for the original Neko version, keep whole compatibility and can be executed without being affected by the new changes. In this research, some case studies were used to test and validate the new failure classes. Finally, with the aim to facilitate the use of Neko, a document about the simulator, with information on how to install, to configure, the main available mechanisms and also on the developed support for failure simulation, was produced.
|
258 |
Modelo de migração de tarefas para MPSoCs baseados em redes-em-chip / Task migration model for NoC-based MPSoCsBarcelos, Daniel January 2008 (has links)
Em relação a sistemas multiprocessados integrados em uma única pastilha (MPSoC), tanto a alocação dinâmica quanto a migração de tarefas são áreas de pesquisa recentes e abertas. Este artigo propõe uma organização de memória híbrida para sistemas com comunicação baseados em redes-em-chip, como maneira de minimizar a energia gasta durante a transferência de código decorrente de uma alocação ou migração de tarefa. É também introduzido um novo mecanismo de migração de tarefas, que, por sua vez, pode utilizar check-pointing ou outra técnica mais transparente. O aumento do uso de sistemas multiprocessados na computação embarcada torna importante a avaliação de diferentes organizações de memória. Enquanto memórias distribuídas proporcionam acessos mais rápidos, memórias compartilhadas tornam possível o compartilhamento de dados sem a interferência dos processadores. Nos experimentos realizados, foi focada a redução da energia gasta na comunicação em um contexto onde uma migração de tarefas ou uma alocação dinâmica fosse necessária. Os resultados indicam que, considerando a migração do código, a solução proposta apresenta melhor eficiência do que soluções unicamente distribuídas ou compartilhadas. Foi também verificado que, em alguns casos, a estratégia híbrida reduz os tempos de migração. Na solução apresentada, o código pode ser transferido do nó onde a tarefa era originalmente executada ou de uma memória posicionada no centro da rede. A escolha entre as duas opções é feita em tempo de execução de uma maneira intuitiva, sendo a escolha baseada na distância entre os nós envolvidos na transferência. Os resultados indicam que a organização proposta reduz a energia de transferência de código em 24% e 10% em média, se comparada, respectivamente, a soluções utilizando somente memória global ou distribuída. O modelo de migração de tarefas proposto é baseado na linguagem Java e na comunicação por troca de mensagens. Todo seu desenvolvimento se deu em software, não requerendo nenhuma modificação no sistema. O custo energético da migração foi então avaliado. Entende-se por custo energético a energia gasta nos processadores para envio e recebimento das mensagens e na estrutura de comunicação, uma rede-em-chip. Trabalhos já existentes não consideram o custo de migração, comparando apenas o arranjo inicial e final das tarefas no sistema. Este trabalho, entretanto, avalia todo o processo de migração. Através de experimentos, é estimado o tempo mínimo de execução da plataforma, como função do tamanho da tarefa e da distância entre os nós da rede, necessário para amortizar a energia gasta no processo de migração, considerando que os processadores utilizam a técnica de DVS para reduzir o consumo de acordo com suas cargas de processamento. / Regarding embedded Multi-processor Systems-on-Chip (MPSoCs), dynamic task allocation and task migration are still open research areas. This work proposes a hybrid memory organization for NoC-based systems as the way to minimize the energy spent during the code transfer when task migration or dynamic task allocation needs to be performed. It is also introduced a new flexible task migration mechanism, which can use check-pointing or a more transparent technique. The increasing use of multi-processor architectures in embedded computing makes it important to evaluate different options for memory organization. While distributed memory allows faster accesses, a global memory makes possible the sharing of data without processor interference. In the experiments, it is targeted the communication energy reduction in a context where task migration or dynamic task allocation is required. Results indicate that the proposed hybrid memory organization presents better efficiency than distributed- or global-only organizations regarding code migration. It is also noticed that, in some cases, the hybrid strategy reduces the task migration times. In the hybrid approach, the code can be transferred from the node where the task was originally running or from a memory positioned at the center of the system. The choice between the two options is done at runtime in a very intuitive way, based on the distance between the nodes involved on the transfer. Results are very encouraging and indicate that the proposed hybrid organization reduces the code transfer energy by 24% and 10% on average, as compared to global- and distributed-only memory organizations, respectively. The proposed migration model is based on the Java language and on message passing communication method. It is mainly software-based, and does not require any system modification. The energy cost of the migration process is then evaluated, i.e., the energy spent on the sending and receiving cores and on the communication structure, a wormhole-based Network-on-Chip (NoC). Previous works have compared system figures before and after task migration, while this study evaluates the whole migration process. Finally, it is derived the minimum execution time of the embedded system, as a function of the task size and of the distance between the cores on the NoC, that is required to amortize the energy spent on the migration process, considering that processors use Dynamic Voltage Scaling to reduce power consumption according to their current workloads.
|
259 |
Uma linguagem de programação paralela orientada a objetos para arquiteturas distribuídas / A Programming language for parallel object-oriented distributed architecturesPinho, Eduardo Gurgel January 2012 (has links)
PINHO, Eduardo Gurgel. Uma linguagem de programação paralela orientada a objetos para arquiteturas distribuídas. 2012. 77 f. Dissertação (Mestrado em ciência da computação)- Universidade Federal do Ceará, Fortaleza-CE, 2012. / Submitted by Elineudson Ribeiro (elineudsonr@gmail.com) on 2016-07-11T13:44:25Z
No. of bitstreams: 1
2012_dis_egpinho.pdf: 1247267 bytes, checksum: b2db45af231441771b82531797f8c819 (MD5) / Approved for entry into archive by Rocilda Sales (rocilda@ufc.br) on 2016-07-15T13:34:45Z (GMT) No. of bitstreams: 1
2012_dis_egpinho.pdf: 1247267 bytes, checksum: b2db45af231441771b82531797f8c819 (MD5) / Made available in DSpace on 2016-07-15T13:34:45Z (GMT). No. of bitstreams: 1
2012_dis_egpinho.pdf: 1247267 bytes, checksum: b2db45af231441771b82531797f8c819 (MD5)
Previous issue date: 2012 / In object-oriented programming (OOP) languages, the ability to encapsulate software concerns of the dominant decomposition in objects is the key to reaching high modularity and loss of complexity in large scale designs. However, distributed-memory parallelism tends to break modularity, encapsulation, and functional independence of objects, since parallel computations cannot be encapsulated in individual objects, which reside in a single address space. For reconciling object-orientation and distributed-memory parallelism, this work introduces OOPP (Object-Oriented Parallel Programming), a style of OOP where objects are distributed by default. As an extension of C++, a widespread language in HPC, the PObC++ language has been designed and protoyped, incorporating the ideas of OOPP. / Em programação orientadas a objetos (POO) , a habilidade de encapsular interesses de software da dominante decomposição em objetos é a chave para alcançar alto nível de modularidade e diminuição de complexidade em projetos de larga escala. Entretanto, o paralelismo de memória distribuída tende a quebrar modularidade, encapsulamento e a independência de objetos, uma vez que as computações paralelas não podem ser encapsuladas em objetos individuais, os quais residem em um espaço de endereçamento único. Para reconciliar orientação a objetos e paralelismo em memória distribuída, esse trabalho introduz a PPOO (Programação Paralela Orientada a Objetos), um estilo de POO onde objetos são distribuídos por padrão. Como uma estensão do C++, uma linguagem consolidada em CAD, a linguagem PObC++ foi projetada e prototipada, incorporando as ideias da PPOO.
|
260 |
Yali : uma extensão do modelo linda para programação paralela em redes heterogêneas / Yali, an extension to the linda model intended for parallel programming in heterogeneous computer networksCharao, Andrea Schwertner January 1996 (has links)
Com a disponibilidade de redes que ligam estações cada vez mais poderosas a baixos custos, o interesse em torno de ferramentas que suportam a programação paralela em arquiteturas deste tipo tem aumentado significativamente. Esta dissertação trata do projeto e implementação de YALI (Yet Another Linda Implementation), uma ferramenta destinada ao desenvolvimento e execução de programas paralelos em redes heterogêneas de computadores. Com o objetivo de oferecer uma interface simples e flexível para os usuários programadores, YALI baseia-se no modelo Linda[GEL85], que destaca-se por utilizar uma abstração de alto nível para a cooperação entre processos. Em Linda, processos interagem por intermédio de uma memória associativa logicamente compartilhada, denominada Espaço de Tuplas. Entre outras vantagens deste modelo pode-se citar a simplicidade de suas primitivas e a possibilidade de incorporá-las a uma linguagem seqüencial conhecida, o que contribui fortemente para sua fácil assimilação, mesmo por usuários com pouca experiência em programação paralela. Após uma descrição detalhada do modelo Linda, este trabalho discute varias questões envolvidas no projeto e implementação de sistemas nele baseados. Para oferecer uma visão pratica das soluções mais freqüentemente adotadas para estas questões, quatro sistemas que implementam o modelo para programação paralela em redes são apresentados e avaliados. São eles: Glenda, uma implementacao do modelo baseada na ferramenta PVM (Parallel Virtual Machine); POSYBL (PrOgramming SYstem for distriButed appLications), um sistema construído através de recursos de sistemas operacionais compatíveis com Unix; p4-Linda, construído a partir da ferramenta de programação paralela p4 e, por fim, Network-Linda, uma implementação comercial do modelo. Depois do estudo dos quatro sistemas acima, o projeto de YALI e discutido detalhadamente. Decidiu-se, inicialmente, que YALI deveria incorporar o modelo Linda a linguagem C, que é largamente utilizada no desenvolvimento de programas de propósito geral. Além disso, optou-se por estender o modelo com algumas novas primitivas, de modo a oferecer maior poder de expressão ao usuário. Basicamente, as primitivas que YALI acrescenta ao modelo servem para dar suporte a operações globais e a criação dinâmica de threads. Operações globais servem para expressar a comunicação e a sincronização entre múltiplos processos, sendo utilizadas com bastante freqüência em vários tipos de programas paralelos. YALI suporta operações globais de maneira totalmente ortogonal ao modelo Linda, garantindo melhor desempenho sem afetar o nível de abstração oferecido. o suporte a criação dinâmica de threads, por outro lado, tem o objetivo de permitir a exploração de um paralelismo de granularidade fina, adequado ate mesmo a execução de rotinas simples em paralelo. Para suportar o desenvolvimento e execução de aplicações paralelas, YALI e implementado através de três componentes distintos. O primeiro e um pré-processador, que garante uma interface simplificada com o usuário. 0 segundo e uma biblioteca, que contem as rotinas de suporte as primitivas YALI e deve ser ligada aos programas de usuários. O terceiro componente, por fim, e um utilitário destinado a controlar a inicialização e o termino de aplicações paralelas, que baseia-se em uma configuração estabelecida pelo usuário para distribuir processos sobre uma rede de computadores. Ao contrário da maioria dos sistemas baseados em Linda, YALI implementa um espaço de tuplas distribuído entre os processos que compõem uma aplicação paralela, dispensando o use de processos especializados no gerenciamento de tuplas. Para isso, YALI utiliza múltiplas threads em cada processo definido pelo usuário, e distribui tuplas sobre estes processos através de um mecanismo baseado em hashing. A implementação de YALI leva em conta a heterogeneidade inerente a ambientes de rede, permitindo que maquinas com diferentes arquiteturas e sistemas operacionais sejam utilizadas na execução de programas paralelos. Por fim, YALI é totalmente implementado a partir de recursos presentes em sistemas compatíveis com Unix, de modo a aumentar sua portabilidade e garantir sua eficiência. / With the availability of networks connecting powerful workstations at a low cost, increasing interest has been devoted to systems that support parallel programming in such architectures. This document describes the design and implementation of YALI (Yet Another Linda Implementation), a tool that allows the development and execution of parallel programs in heterogeneous computer networks. Aiming to provide a simple and flexible interface for its users, YALI is based on the Linda parallel programming model[GEL85], that outstands in providing a high level abstraction for cooperation between processes. In Linda, communication and synchronization take place through an associative, logically shared memory called Tuple Space. Among the advantages of this model, one can mention the simplicity of its primitives, and the possibility of incorporate them in a well-known sequential language. These characteristics make Linda easy to learn, even to users with little experience in parallel programming. After a detailed description of the Linda model, this document discusses some design and implementation issues related to Linda-based systems. In order to provide a practical view of some usual solutions to address these issues, four Linda-based systems are presented and evaluated. These systems are: Glenda, an implementation of Linda built on top of PVM (Parallel Virtual Machine); POSYBL (PrOgramming SYstem for distriButed appLications), that relies on features provided by Unix-like operating systems to implement the model; p4-Linda, built on top of p4 parallel programming tool and, at last, Network-Linda, a comercial product based on Linda. All these systems, as YALI, are specially tailored to parallel programming in computer networks. Following the study of the four systems, this documents presents the design of the YALI system. One of the first design decisions was to incorporate the Linda primitives to the C language, that is broadly used as a general purpose programming language. In addition, a set of new primitives was designed as an extension to the original model, in order to increase YALI's expressivenes. Basically, the new primitives support global operations and dynamic thread creation. Global operations are useful to express communication and synchronization among multiple processes, and are frequently used many classes of parallel programs. YALI gives support to global operations in a way that is totally ortoghonal to the Linda model, ensuring better performance without affecting the abstraction level inherent to Linda-based systems. The support to dynamic thread creation, on the other hand, is helpful to explore lightweight parallelism, which allows the execution of simple routines in parallel. To support the development and execution of parallel applications, YALI is made up of three distinct components. The first is a pre-processor, that provides a simple user interface. The second is a library, that must be linked to the user programs since it's where YALI primitives are actuall y implemented. Finally, the third component is an utility that controls initialization and termination of parallel applications, which takes configuration parameters from the user to distribute processes over a newtork. In contrast with most Linda-based systems, YALI relies on a tuple space that is distributed among the processes in the same parallel application, so that intermediate tuple managers are not necessary To implement that, multiple threads are embedded in each user process, and tuples are spread over the processes in the basis of a hashing mechanism. YALI's implementation takes in account the inherent heterogeneity of network environments, allowing machines with different architectures and operating systems to be used in the execution of parallel programs. Finally, YALI is build on top of common features of Unix-like operating systems, in order to increase its efficiency and portability.
|
Page generated in 0.1447 seconds