171 |
Hermes: um arcabouço para a programação de aplicações P2P / Hermes: a framework for P2P application programmingFrancesquini, Emilio de Camargo 09 May 2007 (has links)
Hermes é um arcabouço para a programação de aplicações P2P. Com ele, pode-se criar diversos tipos de aplicações distribuídas, sem se preocupar com a camada de comunicação. O Hermes não é uma implementação de uma rede de sobreposição P2P, e sim uma camada acima das implementações já existentes. O desenvolvedor da aplicação fica isolado da implementação da rede de sobreposição utilizada. Esse isolamento é feito de forma tal que não há limitações quanto à arquitetura de rede utilizada pela implementação, seja ela centralizada, descentralizada, distribuída estruturada ou distribuída não-estruturada. Entre os serviços oferecidos pelo Hermes estão: troca de mensagens, busca, comunicação em grupo e armazenamento distribuído. Geralmente, no início do desenvolvimento de uma aplicação distribuída, tem-se poucas informações sobre o seu tamanho final ou perfil de utilização. O Hermes possibilita ao desenvolvedor da aplicação adiar, até o momento da efetiva implantação do sistema, a decisão sobre qual arquitetura de rede ou qual implementação de rede de sobreposição são as mais apropriadas para suas necessidades. Possibilita também, quando o perfil de utilização muda com o tempo, a troca da implementação utilizada por uma outra que se adeque mais ao novo perfil sem alterações no código da aplicação. / Hermes is a framework for P2P application programming. Using it, one can create several kinds of distributed applications without worrying about the underlying network. Hermes is not a P2P overlay network implementation, but a shell envolving existing implementations. The application developer is isolated from the implementation of the overlay network in use. This isolation is done in a way that poses no limitations on the network architecture used, which may be centralized, decentralized, structured or unstructured. Amongst the services offered by Hermes are: message exchange, search, group communication, and distributed storage. In the early stages of the development of a distributed application, information as to its final size or utilization profile is often unknown. Hermes gives the application developer the possibility of delaying, until the actual moment of system deployment, the decision as to which network architecture or which overlay network implementation is the most appropriate. It also gives the developer the choice, when utilization profile changes over time, of replacing the network implementation with one more suitable to the application needs, without changes on the application code.
|
172 |
Arquitetura e implementação de um sistema distribuído e recuperação de informação / Architecture and implementation of a distributed information retrieval systemAugusto, Luiz Daniel Creao 09 June 2010 (has links)
A busca por documentos relevantes ao usuário é um problema que se torna mais custoso conforme as bases de conhecimento crescem em seu ritmo acelerado. Este problema passou a resolvido por sistemas distribuídos, devido a sua escalabilidade e tolerância a falhas. O desenvolvimento de sistemas voltados a estas enormes bases de conhecimento -- e a maior de todas, a Internet -- é uma indústria que movimenta bilhões de dólares por ano no mundo inteiro e criou gigantes. Neste trabalho, são apresentadas e discutidas estruturas de dados e arquiteturas distribuídas que tratem o problema de indexar e buscar grandes coleções de documentos em sistemas distribuídos, alcançando grande desempenho e escalabilidade. Serão também discutidos alguns dos grandes sistemas de busca da atualidade, como o Google e o Apache Solr, além do planejamento de uma grande aplicação com protótipo em desenvolvimento. Um projeto próprio de sistema de busca distribuído foi implementado, baseado no Lucene, com idéias coletadas noutros trabalhos e outras novas. Em nossos experimentos, o sistema distribuído desenvolvido neste trabalho superou o Apache Solr com um vazão 37,4\\% superior e mostrou números muito superiores a soluções não-distribuídas em hardware de custo muito superior ao nosso cluster. / The search for relevant documents for the final user is a problem that becomes more expensive as the databases grown faster. The solution was brought by distributed systems, because of its scalability and fail tolerance. The development of systems focused on enormous databases -- including the World Wide Web -- is an industry that involves billions of dollars in the world and had created giants. In this work, will be presented and discussed data structures and distributed architectures related to the indexes and searching in great document collections in distributed systems, reaching high performance and scalability. We will also discuss some of the biggest search engines, such as Google e Apache Solr, and the planning of an application with a developing prototype. At last, a new project of a distributed searching system will be presented and implemented, based on Lucene, with ideas from other works and new ideas of our own. On our tests, the system developed in this work had throughput 37.4\\% higher than Apache Solr and revealed higher performance than non-distributed solutions in a hardware more expensive than our cluster.
|
173 |
A benchmark suite for distributed stream processing systems / Um benchmark suite para sistemas distribuídos de stream processingBordin, Maycon Viana January 2017 (has links)
Um dado por si só não possui valor algum, a menos que ele seja interpretado, contextualizado e agregado com outros dados, para então possuir valor, tornando-o uma informação. Em algumas classes de aplicações o valor não está apenas na informação, mas também na velocidade com que essa informação é obtida. As negociações de alta frequência (NAF) são um bom exemplo onde a lucratividade é diretamente proporcional a latência (LOVELESS; STOIKOV; WAEBER, 2013). Com a evolução do hardware e de ferramentas de processamento de dados diversas aplicações que antes levavam horas para produzir resultados, hoje precisam produzir resultados em questão de minutos ou segundos (BARLOW, 2013). Este tipo de aplicação tem como característica, além da necessidade de processamento em tempo-real ou quase real, a ingestão contínua de grandes e ilimitadas quantidades de dados na forma de tuplas ou eventos. A crescente demanda por aplicações com esses requisitos levou a criação de sistemas que disponibilizam um modelo de programação que abstrai detalhes como escalonamento, tolerância a falhas, processamento e otimização de consultas. Estes sistemas são conhecidos como Stream Processing Systems (SPS), Data Stream Management Systems (DSMS) (CHAKRAVARTHY, 2009) ou Stream Processing Engines (SPE) (ABADI et al., 2005). Ultimamente estes sistemas adotaram uma arquitetura distribuída como forma de lidar com as quantidades cada vez maiores de dados (ZAHARIA et al., 2012). Entre estes sistemas estão S4, Storm, Spark Streaming, Flink Streaming e mais recentemente Samza e Apache Beam. Estes sistemas modelam o processamento de dados através de um grafo de fluxo com vértices representando os operadores e as arestas representando os data streams. Mas as similaridades não vão muito além disso, pois cada sistema possui suas particularidades com relação aos mecanismos de tolerância e recuperação a falhas, escalonamento e paralelismo de operadores, e padrões de comunicação. Neste senário seria útil possuir uma ferramenta para a comparação destes sistemas em diferentes workloads, para auxiliar na seleção da plataforma mais adequada para um trabalho específico. Este trabalho propõe um benchmark composto por aplicações de diferentes áreas, bem como um framework para o desenvolvimento e avaliação de SPSs distribuídos. / Recently a new application domain characterized by the continuous and low-latency processing of large volumes of data has been gaining attention. The growing number of applications of such genre has led to the creation of Stream Processing Systems (SPSs), systems that abstract the details of real-time applications from the developer. More recently, the ever increasing volumes of data to be processed gave rise to distributed SPSs. Currently there are in the market several distributed SPSs, however the existing benchmarks designed for the evaluation this kind of system covers only a few applications and workloads, while these systems have a much wider set of applications. In this work a benchmark for stream processing systems is proposed. Based on a survey of several papers with real-time and stream applications, the most used applications and areas were outlined, as well as the most used metrics in the performance evaluation of such applications. With these information the metrics of the benchmark were selected as well as a list of possible application to be part of the benchmark. Those passed through a workload characterization in order to select a diverse set of applications. To ease the evaluation of SPSs a framework was created with an API to generalize the application development and collect metrics, with the possibility of extending it to support other platforms in the future. To prove the usefulness of the benchmark, a subset of the applications were executed on Storm and Spark using the Azure Platform and the results have demonstrated the usefulness of the benchmark suite in comparing these systems.
|
174 |
Maestro: um middleware para suporte a aplicações distribuídas baseadas em componentes de software. / Maestro: a middleware for support to distributed applications based on software componentes.Ferreira, Cláudio Luís Pereira 21 September 2001 (has links)
É o trabalho de um middleware organizar as atividades de seus diferentes elementos componentes de maneira a operar sincronamente com a execução de uma aplicação. O resultado deste trabalho deve ser transparente para quem interage com o sistema, percebendo-o como um único bloco coeso e sincronizado, orquestrado por um agente principal. Este é o objeto deste trabalho, a especificação de um middleware e seus componentes internos indicando suas principais características e funcionalidades e também sua operação na execução de uma aplicação distribuída. Também foi levado em consideração os novos ambientes nos quais as aplicações distribuídas estão inseridas tais como a diversidade de dispositivos gerenciados pelos usuários, a necessidade de constantes mudanças no sistema, o uso de novas tecnologias no desenvolvimento de software e a necessidade de definições de sistemas abertos. Para a especificação deste middleware, foi utilizado o modelo de referência Open Distributed Processing (ODP) da ISO/IEC que permite que um sistema seja visualizado em cinco pontos de vista distintos. Ao final o sistema é especificado utilizando a tecnologia de componentes de software, ilustrando seu uso numa aplicação comercial. / Its the job of a middleware to organize the activities of its different component elements as to operate in synchrony with the execution of an application. The result of this work should be transparent to whom interact with the system, perceiving it as a single synchronized and cohered block, orchestrated by a master agent. This is the subject of this work, the specification of a middleware and its internal components indicating its major characteristics and functionalities and also its operation in the execution of distributed applications. It was also taken into account the new environment in which the distributed applications are inserted such as the diversity of devices managed by the users, the necessity for constant system changing, the use of new technologies in software development and the necessity for definition of open systems. For the specification of this middleware, it was used the reference model of Open Distributed Processing (ODP) from ISO/IEC that allows a system to be visualized by five different points of view. By the end the system is specified using the technology of component software, illustrating its use through commercial component software.
|
175 |
Arquitetura de computação em grade aplicada a saúde: um estudo de caso em bioinformática para oncologia. / Architecture of grid computing applied to health: a case study in bioinformatics for oncology.Campos Junior, Moacir Alves de 29 October 2008 (has links)
Atualmente o câncer e a terceira causa de óbitos em ambos os sexos e em todas as faixas de idade. O Ministério da Saúde relata que a alta complexidade da atenção ontológica demanda alto custo financeiro e alta tecnologia. Cada vez mais, as atividades de pesquisa, prevenção, diagnóstico e tratamento do câncer são realizadas sobre um domínio multidisciplinar envolvendo medicina, química, genética, bioinformática e engenharia. Estas atividades são responsáveis por gerar e manipular grandes quantidades de dados que são geograficamente distribuídos entre as unidades de tratamento deste país. Estes dados necessitam ser integrados e processados, a sua utilização é empregada para melhorar a gestão e viabilizar colaborações de pesquisa entre as instituições do setor. O processamento destas informações demandaria grande capacidade computacional. Particularmente, verificamos que a bioinformática manipula uma grande quantidade de dados, e tem cada vez mais contribuído para a pesquisa e no diagnóstico de várias doenças, principalmente do câncer. A proposta desta dissertação consiste na pesquisa e desenvolvimento de uma infra-estrutura computacional baseada na tecnologia de grades computacionais para atender as demandas de alto processamento computacional, relacionadas com as informações do setor da saúde, em específico para bioinformática em oncologia. A aplicação da tecnologia de grade computacional no cenário da saúde brasileira é desafiadora do ponto de vista da pesquisa e desenvolvimento, porque esta tecnologia aborda a complexidade de integração e processamento de dados utilizando compartilhamento colaborativo de recursos computacionais sobre um ambiente multiinstitucional geograficamente distribuído. A validação deste trabalho consistiu na aplicação de alguns dos procedimentos que envolvem a bioinformática em oncologia, em especial a identificação de similaridade genética, através de uma implementação experimental da arquitetura proposta. Os resultados obtidos a partir dos testes de validação nos permitiram avaliar os atendimentos dos requisitos do ambiente relacionados com as necessidades do setor de saúde em oncologia, assim oferecendo indicações e direções técnicas para o emprego da tecnologia de grades computacionais no apoio de diversas atividades relacionadas ao setor da saúde. / Cancer is currently the third cause of death in both sexes and among all age ranges. The Brazilian Ministry of Health reports that the high complexity of oncology care demands high financial costs and high technology. The activities of cancer research, prevention, diagnosis and treatment are increasingly becoming a multidisciplinary environment, including medicine, chemistry, genetic, bioinformatics and engineering. Those activities are responsible for the generation and management of huge quantities of data, which are geographically distributed among the treatment units on this country. This data needs to be integrated and processed, and its use is for the improvement of the cancer management and to enable research exchanges among institutions in the field. The processing of this information requires a large computational capacity. Particularly, we verify that bioinformatics handles a huge amount of data and has increasingly contributed for the research and diagnosis of several diseases, especially cancer. The proposal of this thesis is the research and development of a computational infrastructure based on grid computational technology to serve the requirements of high computational processing, related to the data from health care systems, in particular to bioinformatics in oncology. The use of grid computing technology in the Brazilian health scenario is challenging in terms of research and development, since this technology faces the complexity of data integration and processing using collaborative sharing of computational resources onto a multi-institutional geographically distributed environment. The validation of this work was in the application of some of the procedures that involve bioinformatics in oncology, especially the identification of genetic similarity, using an experimental implementation of the proposed architecture. The results obtained from the validation tests enabled us to evaluate the meeting of environment requirements, related with the needs of health sector in oncology, thus offering indications and technical directions to the use of grid computing technology in support of several activities related with the health sector.
|
176 |
O sistema operacional de rede heterogêneo HetNOS / The HetNOS heterogeneous network operating systemBarcellos, Antonio Marinho Pilla January 1993 (has links)
O advento dos computadores pessoais e posteriormente das estações de trabalho, somado ao desenvolvimento de hardware de comunicação eficiente e de baixo custo, levou a popularização das redes locais. Entretanto, o software não presenciou o mesmo desenvolvimento do hardware, especialmente devido a complexidade dos sistemas distribuídos. A heterogeneidade das máquinas, sistemas e redes, inerente aos ambientes computacionais modernos, restringe igualmente a integração e cooperação entre os nodos disponíveis. 0 objetivo do presente trabalho é, a partir da análise dos principais aspectos relacionados à distribuição e à heterogeneidade, desenvolver um sistema operacional de rede heterogêneo. Tal sistema, denominado HetNOS (de Heterogeneous Network Operating System), permite o desenvolvimento e validação de aplicações distribuídas homogêneas e heterogêneas de forma rápida e fácil. Os usuários podem concentrar-se nos aspectos de distribuição dos algoritmos, abstraindo detalhes dos mecanismos de comunicação, pois a programação de aplicações distribuídas é baseada em uma plataforma de interface homogênea, fácil de usar e com independência de localidade. Sendo um sistema operacional de rede, o HetNOS atua sobre o conjunto de sistemas operacionais nativos existentes; o ambiente de trabalho e estendido e não substituído. Não há entidades nem informações centralizadas, e os algoritmos são distribuídos, usualmente resultando maior confiabilidade e desempenho. A topologia do sistema é um anel lógico, esquema justificado pela generalidade de tal configuração e pela simplificação do projeto do núcleo distribuído do HetNOS. O paradigma de comunicação entre módulos e a troca de mensagens, mecanismo implementado sobre a interface de programação em rede sockets. Não há compartilhamento de memória em nenhuma instância, tornando o sistema mais legível, manutenível e portável. A interpelação entre módulos fica restrita à interface de mensagens definidas e aceitas por cada módulo. A arquitetura do HetNOS é estruturada e distribuída, pois o sistema é composto de camadas hierárquicas subdivididas em módulos, estes implementados com processos. O nível 1 corresponde ao conjunto de núcleos de sistemas operacionais nativos suportados, sobre o qual é implementado o núcleo distribuído heterogêneo do HetNOS, a DCL (Distributed Computing Layer). O principal serviço fornecido pela DCL (executada no nível 2), é um subsistema de troca de mensagens canônico e independente de localidade. Processos servidores e de usuários podem utilizar as mais variadas formas de comunicação por mensagens, tal como envio, recepção e propagação de mensagens síncronas, assíncronas, bloqueantes e não bloqueantes. No nível 3 estão os servidores do sistema, que estendem e implementam de forma distribuída a funcionalidade do sistema nativo. O Servidor de Nomes é o repositório global de dados, servindo a processos do sistema e de usuários. O Servidor de Autorização implementa o esquema de controle no acesso a recursos do sistema. O Servidor de Tipos permite que aplicações copiem dados estruturados de forma independente de localidade e de arquitetura. Por fim, o Servidor de Arquivos estende os serviços (de arquivos) locais de forma a integrá-los em um único domínio (espaço). No nível 4, arquiteturas e sistemas operacionais são emulados por módulos interpretadores (denominados Emulators). Aplicações de usuários estão espalhadas dos níveis 2 a 5; a camada varia com o tipo de aplicação. Para demonstrar a viabilidade do sistema, implementou-se a estrutura fundamental do HetNOS, incluindo a DCL (um núcleo distribuído heterogêneo), a versões básicas dos módulos servidores, as bibliotecas de procedimentos, além de diversos tipos de aplicações. O sistema conta hoje com mais de 25.000 linhas de código fonte C em mais de 100 arquivos. O desempenho do subsistema de comunicação implementado pela DCL (em avaliações com diferentes configurações de hardware) superou as expectativas iniciais, mas ainda está muito aquém do necessário a aplicações distribuídas. Segundo o que indicam as primeiras experiências realizadas, o HetNOS será bastante útil na prototipação e avaliação de modelos distribuídos, assim como na programação de software distribuído homogêneo e heterogêneo. Projetos de pesquisa do CPGCC envolvendo sistemas distribuídos (p.ex., tolerância a falhas e simulações) podem utilizar o HetNOS como ferramenta para implementação e validação de seus modelos. Futuramente, aplicações distribuídas e paralelas de maior porte poderão ser programadas, como sistemas de gerencia de bases de dados distribuídas, simuladores e sistemas de controle para automação industrial. / The advent of personal computers and, later, of workstations, along with the development of efficient and low-cost communication hardware has led to the popularization of local-area networks. However, distributed software did not experiment the same development of hardware, specially due to the complexity of distributed systems. The machine, system and communication network heterogeneity, inherent to the modern computing environments, is also responsible for the lack of integration and cooperation of available nodes. The purpose of this work is, from the analysis of the main aspects related to distribution and heterogeneity, to design a heterogeneous network operating system. Such system, named HetNOS (which stands for Heterogeneous Network Operating System), allows users to quickly write and validate distributed homogeneous and heterogeneous applications. Users can concentrate their work in the distributed aspects, abstracting communication mechanisms' details, because programming of distributed applications is based on a homogeneous interface platform, easy to use and location-independent. Being a network operating system, HetNOS acts over the set of native operating systems; the environment is extended instead of substituted. There are neither centralized information nor entities, and the algorithms are always distributed, usually yielding more reliability and performance. The HetNOS topology is a logical ring, scheme adopted partly due to the generality of such configuration and partly to simplify the HetNOS distributed kernel design. The communication paradigm between modules is the message exchange, a mechanism implemented over the sockets network application programming interface. There is no shared memory at all, making the system clearer, more manutible and portable. The interrelation between modules is restricted to the message interface defined and accepted by a module. The HetNOS architecture is structured and distributed, as the system is composed of hierarchical layers divided into modules, which in their turn are realized as processes. The layer 1 is the set of native operating system kernels, over which is implemented the distributed heterogeneous HetNOS kernel, namely DCL (states for Distributed Computing Layer). The main service provided by DCL (in layer 2) is a canonical, location-independent, message exchange mechanism. Server and user processes may use multiple forms of message primitives, such as synchronous, asynchronous, blocking and non-blocking send and receive. In the layer 3 are the system servers, which extend and implement in a distributed way the functionality of native systems. The name server is a global data repository, serving other system and user processes. The authorization server implements the security scheme to control the access to the system resources. The type server allows applications to transfer structured data independently of location and architecture. Finally, the file server extends the local (file) services to integrate them into a unique domain (space). In the layer 4, architectures and operating systems are emulated by interpreter modules (named Emulators). User applications are spread over the layers 2 to 5, depending on the application type. In order to prove the system viability, the fundamental HetNOS structure has been implemented, including its distributed heterogeneous kernel, the base of server modules, the procedure libraries, and several types of applications. The system source code has over 25,000 lines of C programming distributed over a hundred files. Although the optimization is an endless process, the performance of the DCL communication subsystem (evaluated using a few different hardware configurations) overestimated initial predictions, but is weak if considered the requirements to distributed processing. Accordingly to the first experiences made, HetNOS will be of great value to evaluate and prototype distributed models, as well as to the programming of homogeneous and heterogeneous distributed software. Local research projects involving distributed systems (e.g., fault tolerance and simulations) may use HetNOS as a tool to validate and implement their models. In the future, more complex distributed and parallel applications will be programmed, such as a distributed database management system, simulators and factory automation control systems.
|
177 |
Avaliação dos detectores de defeitos e sua influência nas operações de consenso / On the evaluation of failure detectors and their influence on consensus operationsEstefanel, Luiz Angelo Barchet January 2001 (has links)
Este trabalho relata observações e analises sobre como os detectores de defeitos influenciam as operação de consenso. O conceito dos detectores de defeitos é essencial para as operações de consenso em sistemas distribuídos assíncronos, uma vez que esses representam uma das (micas formas de sobrepujar as limitações impostas pela chamada Impossibilidade FLP (impossibilidade de diferenciar um processo falho de um processo mais lento). Enquanto os detectores de defeitos tem seu funcionamento bem definido através de duas propriedades, completeness e accuracy, Não há nenhuma restrição quanto a forma de implementá-los. Na literatura são encontrados vários modelos de detectores de defeitos, construídos com as mais variadas estratégias, mecanismos de comunicação e de detecção. No entanto, estes modelos não costumam ser acompanhados de uma comparação com os detectores já existentes; os autores limitam-se a apresentar as inovações dos mecanismos sugeridos. De toda literatura pesquisada, apenas um trabalho procurou comparar diferentes modelos de detectores de defeitos, e através de simulações, avaliou o impacto destes detectores sobre o tempo de terminação das operações de consenso. Entretanto, aquele trabalho era bem limitado, tanto nos modelos de detectores analisados quanto nos objetivos das observações. O presente trabalho procurou estender aquele experimento, incluindo mais modelos de detectores, e transportando-os para um ambiente prático de execução. As observações realizadas não ficaram limitadas as avaliações já realizadas por aquele trabalho, de tal forma que os modelos de detectores testados foram analisados sob diversas métricas, situações e parâmetros de operação. Essas avaliações possibilitaram verificar o comportamento dos detectores frente aos padrões de falhas mais significativos, avaliar o impacto de cada detector sobre as operações de consenso e a sua interação com os elementos do ambiente de execução. Essas avaliações permitiram fazer uma comparação dos detectores, possibilitando a identificação de suas limitações, suas situações de melhor desempenho e possíveis otimizações para serem realizadas em trabalhos futuros. / This work presents our observations and analysis on the influence of the failure detectors on the consensus algorithm. Failure detectors are essential to the consensus over an asynchronous distributed system, as they represent one of the few techniques that are able to circumvent the limitation imposed by the FLP Impossibility (the impossibility to distinguish a crashed process from a slow one, in asynchronous systems). While failure detectors are well defined through two properties, completeness and accuracy, there's no rule about their implementation. Thus, in the literature there are many models of failure detectors, each one implemented using different approaches to the communication and detection strategies. However, these detectors seldom compare themselves to the existing ones; their authors usually present only the advantages and innovations of the new model. Indeed, we only found one work that tried to compare different failure detectors. Using simulation techniques, that work evaluated the impact of the failure detectors on the consensus termination time. However, that research was very limited in the number of detectors analyzed and in the evaluation goals. The present work extended that experience, including more detectors in the analysis and evaluating them in a practical environment. Also, the observations were not restricted to those from the original paper, and the detectors were analyzed with more metrics, failure patterns and operational parameters. The evaluation allowed us to identify the behavior from the detectors in face of the most significant failure patterns, their influence on the consensus operation and their interaction with the execution environment. These evaluation also enabled us to compare the detectors, identifying their limitations, their best employment situations and possible optimizations to future developments.
|
178 |
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.
|
179 |
InteGrade: Um Sistema de Middleware para Computação em Grade Oportunista / InteGrade: A Middleware System for Opportunistic Grid ComputingGoldchleger, Andrei 14 December 2004 (has links)
A necessidade de poder computacional é crescente nas mais diversas áreas de atuação humana, tanto na indústria como no ambiente acadêmico. A Computação em Grade permite a interligação de recursos computacionais dispersos de maneira a permitir sua utilização mais efetiva, provendo aos usuários acesso simplificado ao poder computacional de diversas máquinas. Entretanto, os primeiros projetos de Computação em Grade objetivavam a interligação de máquinas paralelas ou aglomerados de alto desempenho e alto custo, acessível apenas a poucas instituições. Em contraponto ao alto custo das máquinas paralelas, os computadores pessoais se difundiram de maneira extraordinária nos últimos quinze anos. A expansão da base instalada foi acompanhada de uma crescente evolução na capacidade de tais máquinas. Os aglomerados dedicados de computadores pessoais representam a primeira tentativa de utilização de tais recursos para computação paralela e, apesar de serem amplamente utilizados, ainda requerem um investimento significativo. Entretanto, as mesmas instituições que adquirem tais aglomerados dedicados normalmente possuem centenas ou até milhares de computadores pessoais, os quais têm sua capacidade utilizada apenas parcialmente, resultando em grande ociosidade dos recursos. Os sistemas de Computação em Grade Oportunistas fornecem a possibilidade de se utilizar a base instalada de computadores pessoais de maneira a realizar computação utilizando a parte dos recursos que, de outra forma, estariam ociosos. Diversos sistemas dessa categoria foram desenvolvidos e utilizados com êxito para realizar tarefas de computação em diversas áreas como astronomia, biologia e matemática. O InteGrade, sistema de Computação em Grade Oportunista aqui apresentado, pretende oferecer características inovadoras para sistemas oportunistas, como suporte a aplicações paralelas que demandam comunicação entre nós e a utilização de coleta e análise de padrões de uso das máquinas da Grade, de maneira a permitir que se realize previsões sobre a disponibilidade das máquinas, permitindo uma utilização mais eficiente das mesmas. Além disso, o InteGrade emprega amplamente o paradigma de Orientação a Objetos, tanto na definição da arquitetura do sistema quanto na sua implementação. O trabalho aqui apresentado consistiu no estudo de outros projetos de Computação em Grade, na definição de uma arquitetura inicial para o InteGrade, passando pela descrição de seus principais módulos assim como sua implementação. Além disso, também descrevemos o projeto e a implementação de uma biblioteca para programação paralela no InteGrade utilizando o modelo BSP. / The past years witnessed a substantial increase in the need for computing power in various fields of human activity, including many industrial and academic endeavors. Grid Computing addresses those needs, providing seamless access to distributed computing resources, allowing one to use the combined computing power of various machines. However, the majority of the earlier Grid Computing systems focused on connecting high performance computers, which are very expensive resources only accessible to a small number of institutions. Contrasting with high cost parallel computing, personal computing experienced a tremendous growth in the last fifteen years. Personal computers are ubiquitous, cheap, and extremely powerful. The increase in processing power motivated the creation of dedicated PC clusters, allowing one to perform high performance computing tasks at a fraction of the price of a traditional parallel machine. Although cheaper, building a cluster still requires a considerable investment. At the same time, institutions that rely on the processing power of dedicated clusters typically own a large number of personal computers that are idle for most of the time, resulting in a loss of computing power that could otherwise be used for computing tasks. Opportunistic Grid Computing systems allow the use of the idle computing power of personal computers to perform useful computation. Many Opportunistic systems were successfully employed to solve problems in areas such as astronomy, biology, and mathematics. InteGrade, an Opportunistic Grid Computing system developed in the context of this thesis, aims to provide features not commonly available in other Opportunistic systems, such as support for parallel applications that require communication among application nodes, and usage pattern collection and analysis, which will allow for better scheduling decisions by providing predictions about future resource availability. InteGrade is a fully object oriented system, featuring both object oriented architecture and implementation. The work presented in this thesis includes a survey of existing Grid Computing systems and the definition of the InteGrade initial architecture, including the specification and implementation of various software modules. We also present the design and implementation of a parallel programming library that implements the BSP computing model, which allows one to write parallel applications that execute on InteGrade.
|
180 |
Um sistema de arquivos com blocos distribuídos e acesso a informações de localidade de dados. / A file system with distributed blocks and access to data locality information.Ricardo Ryoiti Sugawara Júnior 30 April 2014 (has links)
Muitos sistemas recentes de processamento paralelo e distribuído trabalham com acesso intensivo a dados, combinando facilidades de computação e armazenamento de dados para a construção de sistemas de grande escala, com custos reduzidos. Nesses sistemas, a interligação de um grande número de nós resulta na divisão sucessiva da capacidade de transferência, tornando a movimentação de dados um importante fator de limitação de desempenho. Ao se escalonar as tarefas computacionais em nós próximos dos dados, melhorias significativas no desempenho podem ser obtidas. Entretanto, a informação sobre a localidade dos dados não está facilmente acessível para o programador. Seu uso requer a interação com rotinas internas dos sistemas de arquivos, ou exige a adoção de um modelo de programação específico, normalmente associado a uma plataforma de execução já preparada para escalonar tarefas com aproveitamento da localidade dos dados. Este trabalho desenvolve a proposta de um mecanismo e interface para prover acesso a informações de localidade, além de permitir o controle da distribuição de novos dados. As operações de consulta e controle são realizadas por meio de arquivos e diretórios especiais, adicionados de forma transparente a um sistema de arquivos com blocos de dados distribuídos, apropriado para a execução em ambientes de processamento paralelo. O sistema é denominado parfs e permite obter as informações de localidade com operações de leitura e escrita em arquivos comuns, sem a necessidade do uso de bibliotecas ou modelos de programação específicos. Testes foram realizados para avaliar a proposta. Utilizando o escalonamento seletivo de operações de acesso a dados, baseado na informação de localidade, foram obtidos ganhos significativos de desempenho nessas operações. / Many recent data intensive parallel processing systems are built with cost effective hardware and combine compute and storage facilities. In such systems, interconnecting large numbers of nodes results in bandwidth-bisecting networks, making data movement an important performance limiting factor. By distributing jobs near data, significant performance improvements can be achieved. However, data locality information is not easily available to the programmer. It requires interaction with file system internals, or the adoption of custom programming and run-time frameworks providing embedded locality-aware job scheduling. This document develops a proposal of a mechanism and an interface to provide locality information and new data placement control. The query and control tasks are performed through special file and directories transparently added to a distributed file system, suitable for parallel processing environments. The file system is called parfs and allows the use of locality by read and write operations over regular files, with no need of libraries or specific programming models. Tests were conducted to assess the feasibility of the proposal. Through selective scheduling of data operations, based on locality information, significant performance gains were obtained in such operations.
|
Page generated in 0.1076 seconds