Um Algoritmo Paralelo para Cálculo de Centralidade. em Grafos Grandes. João Paulo Barbosa Nascimento

Tamanho: px
Começar a partir da página:

Download "Um Algoritmo Paralelo para Cálculo de Centralidade. em Grafos Grandes. João Paulo Barbosa Nascimento"

Transcrição

1 CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Mestrado em Modelagem Matemática e Computacional João Paulo Barbosa Nascimento Um Algoritmo Paralelo para Cálculo de Centralidade em Grafos Grandes Orientadora: Prof a. Cristina Duarte Murta Belo Horizonte Dezembro de 2011

2 CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Mestrado em Modelagem Matemática e Computacional João Paulo Barbosa Nascimento Um Algoritmo Paralelo para Cálculo de Centralidade em Grafos Grandes Dissertação de Mestrado submetida ao Programa de Pós-Graduação em Modelagem Matemática e Computacional, como parte dos requisitos exigidos para a obtenção do título de Mestre em Modelagem Matemática e Computacional. Orientadora: Prof a. Cristina Duarte Murta Belo Horizonte Dezembro de 2011

3

4 Dedico esse trabalho aos meus pais, Carlos Roberto do Nascimento e Maria Célia Barbosa Nascimento, a minha esposa Pollyanna de Oliveira Cattoni Camelo, ao meu irmão Carlos Antônio Barbosa Nascimento e ao meu sobrinho Carlos Antônio Barbosa Nascimento Júnior.

5 Agradecimentos Agradeço primeiramente à minha orientadora Cristina Duarte Murta, pelos ensinamentos e sabedoria transmitidos com maestria, pela dedicação nas orientaçães e por sempre estar disposta a discutir os assuntos deste trabalho. Agradeço de maneira especial à minha esposa pela compreensão em minhas faltas aos eventos familiares, por sempre me apoiar e por me ajudar na conferência dos resultados deste trabalho. Aos meus pais por terem me ensinado o caminho. À minha avó Lúcia pelos ensinamentos sobre a vida. Ao meu sobrinho Carlos Júnior pelo incentivo. Aos meus sogros Heráclio e Sandra pela torcida constante. Ao CEFET-MG, ao DECOM e em especial ao funcionãrio Pedro Ribeiro pela ajuda na montagem e conguração do cluster. Ao amigo Alexandre Wagner pela ajuda nas soluções dos problemas mais difíceis. À Teca pelo companheirismo nas madrugadas frias em frente ao computador. Aos professores e colegas do Mestrado em Modelagem Matemática e Computacional pelo apoio e dicas nas horas difíceis. A todos que direta ou indiretamente contribuíram com esse trabalho. Este é epenas o começo.

6 Resumo Redes complexas são sistemas grandes e dinâmicos que podem ser modelados por grafos. Muitos sistemas tecnológicos, sociais ou biológicos são considerados redes complexas, dentre eles a Internet e a Web, as redes sociais reais ou virtuais e as redes de infraestrutura física, tais como redes de transporte e de comunicação. A análise destas redes, na forma de gigantescos grafos, provê informações importantes acerca das características dos sistemas modelados. No entanto, o processamento sequencial destes grafos pode requerer alto custo computacional ou mesmo ser inviável, dependendo de seu tamanho e complexidade. Para solucionar esse problema recorremos ao processamento paralelo e distribuído. Este trabalho propõe um algoritmo paralelo para encontrar a centralidade de uma rede complexa de grande porte, medida em termos de seu diâmetro e raio. O algoritmo foi projetado a partir de um estudo criterioso do modelo MapReduce de programação paralela, aliado a um planejamento detalhado de experimentos no ambiente Hadoop, que é uma implementação de código aberto do modelo MapReduce. Os experimentos foram executados em vários tipos de grafos de diferentes tamanhos. Os testes foram feitos com a parametrização padrão do Hadoop e também com uma combinação obtida por meio de ajustes de desempenho. A escalabilidade do algoritmo foi avaliada. Os resultados dos experimentos indicam que o algoritmo proposto alcança seu objetivo, que é calcular valores exatos de diâmetro e raio em grafos grandes. Não encontramos na literatura nenhum algoritmo paralelo em Hadoop para este cálculo. Palavras-chave: Grafos, programação paralela, redes complexas, MapReduce, Hadoop.

7 Abstract Complex networks are large and dynamic systems that can be modeled by graphs. Many technological, social and biological systems are considered complex networks, including the Internet and the Web, real-world or virtual social networks, and infrastructure networks, such as transport and communication systems. Modeled as huge graphs, the network analysis provides information about the characteristics of the represented systems. However, sequential processing of these graphs may require high computational cost or may be even unfeasible, depending on their size and complexity. Our proposal is to address this problem using parallel and distributed programming. In this work, we propose a parallel algorithm to nd the centrality of a large complex network, measured in terms of its diameter and radius. The algorithm was designed from a careful study of the MapReduce framework for parallel programming, combined with a detailed planning of experiments in Hadoop, which is an open source implementation of the MapReduce framework. Experiments were performed on various types of graphs of dierent sizes. Tests were done under the default parameterization of Hadoop and also through an extensive performance tuning. The scalability of the algorithm was evaluated. The results of the experiments indicate that the proposed algorithm reaches its goal, which is to calculate exact values of diameter and radius in large graphs. We have not nd any parallel algorithm in Hadoop for this calculation in the technical literature. Key-words: Graphs, parallel programming, complex networks, MapReduce, Hadoop.

8 Sumário Lista de Figuras 11 Lista de Tabelas 13 1 Introdução Objetivos do Estudo Resultados e Contribuições Organização do Trabalho Fundamentação Teórica A Revolução da Arquitetura Multicore Comparando Soluções Paralelas e Sequenciais Gestão da Informação em Grandes Volumes de Dados Modelo MapReduce Funcionamento do Modelo Fluxo de Dados Hadoop: Uma Implementação do MapReduce Componentes do Projeto Hadoop Redes Complexas e Grafos Medidas de Centralidade em Grafos Problema do Menor Caminho Menor Caminho a partir de Única Origem Menor Caminho entre Todos os Pares de Vértices Algoritmos Sequenciais Busca em Largura Algoritmos de Dijkstra Algoritmo de Floyd-Warshall Algoritmos Paralelos HADI Considerações Finais

9 3 Estado da Arte MapReduce MapReduce e Banco de Dados Outras Implementações do MapReduce Modelagem do MapReduce Avaliação de Desempenho MapReduce Aplicado a Algoritmos Genéticos MapReduce na Análise de Dados Cientícos Algoritmos Paralelos para Encontrar o Menor Caminho em Grafos Menor Caminho a partir de um Único Vértice Fonte (MCUF) Menor Caminho a partir de Todos os Vértices Trabalhos Relacionados HADI Pegasus Pregel Outros trabalhos referentes a grafos usando MapReduce Considerações Finais Algoritmo HEDA Ideia Principal do Algoritmo HEDA Descrição do Algoritmo HEDA Fluxo Principal Função MAP: Encontrar Menor Caminho Função REDUCE: Encontrar Menor Caminho Função MAP: Encontrar Centralidade Função REDUCE: Encontrar Centralidade O objeto Node Formato dos Dados de Entrada Exemplo de Execução Considerações Finais Projeto dos Experimentos Ambiente Computacional Conjuntos de Dados (Grafos) Grafos da Internet Grafos Sintéticos Grafo IMDB Parâmetros para Ajuste de Desempenho Planejamento dos Experimentos Comparação com o Algoritmo HADI

10 5.4.2 Comparação com o Algoritmo Sequencial Alterações nos Parâmetros de Desempenho Escalabilidade Considerações Finais Resultados dos Experimentos Resultados do Algoritmo HEDA Grafos da Internet Grafos Sintéticos Grafo IMDB Speedup Eciência Relação entre o Diâmetro do Grafo e o Tempo de Execução Comparação entre os Algoritmos HEDA e o HADI Grafos da Internet Grafos Sintéticos Comparação entre o HEDA e o Algoritmo Sequencial Grafos da Internet Grafos Sintéticos Alteração nos Parâmetros de Ajuste de Desempenho do Hadoop Considerações Finais Conclusão e Trabalhos Futuros Trabalhos Futuros Considerações Finais A Tabelas de Resultados de Tempos de Execução 103 Referências Bibliográcas 108

11 Lista de Figuras 2.1 Exemplo de curvas de speedup, baseado em [1] Funcionamento do Modelo MapReduce baseado em [2] Fluxo de dados do Modelo MapReduce Subprojetos do Hadoop Exemplo de um grafo com onze vértices e treze arestas Exemplo de um grafo com cinco vértices e cinco arestas Exemplo de um grafo com cinco vértices e sete arestas Paralelização do Algoritmo HEDA Fluxo do Algoritmo HEDA Resultados do Algoritmo HEDA - Grafos da Internet Resultados HEDA - Grafos Sintéticos - Variação de Arestas Resultados HEDA - Grafos Sintéticos - Variação de Vértices e Arestas Resultados HEDA - Grafo IMDB Resultado HEDA - Speedup Resultado HEDA - Eciência Comparação entre os Algoritmos HEDA e HADI - Grafos da Internet Comparação entre os Algoritmos HEDA e HADI - Grafos Sintéticos Comparação entre os Algoritmos HEDA e Sequencial - Grafos da Internet Comparação entre os Algoritmos HEDA e Sequencial - Grafos Sintéticos Resultado dos Ajustes de Parâmetros de Desempenho do Hadoop

12 Lista de Tabelas 4.1 Descrição Detalhada do Arquivo de Arestas Descrição Detalhada do Arquivo de Distâncias Grafos Reais dos Sistemas Autônomos da Internet Grafos Sintéticos - Variação de Vértices e Arestas Grafos Sintéticos - Variação de Arestas Resultado HEDA - Grafos da Internet Resultados HEDA - Grafos Sintéticos - Variação de Arestas Resultados HEDA - Grafos Sintéticos - Variação de Vértices e Arestas Resultados HEDA - Grafos Sintéticos - Variação de Vértices e Arestas - Análise dos Resultados Resultados HEDA - Grafos IMDB Conjuntos de Dados para Medida de Speedup Análise de Diâmetros Comparação entre os Algoritmos HEDA e HADI - Grafos da Internet Comparação de Resultados entre os Algoritmos HEDA e HADI - Grafos Sintéticos Resultado HEDA e Sequencial - Grafos da Internet Resultado HEDA - Valores dos Parâmetros de Ajuste de Desempenho A.1 Algoritmo HEDA - Tempo de Execução em Minutos - Grafo da Internet 01/01/2010 sem Ajuste dos Parâmetros de Desempenho A.2 Algoritmo HEDA - Tempo de Execução em Minutos - Grafo da Internet 01/01/2010 com Ajustes nos Parâmetros de Desempenho A.3 Algoritmo HADI - Tempo de Execução em Minutos - Grafo da Internet 01/01/ A.4 Algoritmo HEDA - Tempo de Execução em Minutos - Grafo da Internet 01/07/ Speedup e Eciência A.5 Algoritmo HADI - Tempo de Execução em Minutos - Grafo da Internet 01/07/ A.6 Algoritmo HEDA - Tempo de Execução em Minutos - Grafos Sintéticos - Variação de Arestas

13 A.7 Algoritmo HADI - Tempo de Execução em Minutos - Grafos Sintéticos - Variação de Arestas A.8 Algoritmo HEDA - Tempo de Execução em Minutos - Grafos Sintéticos - Variação de Vértices e Arestas A.9 Algoritmo HADI - Tempo de Execução em Minutos - Grafos Sintéticos - Variação de Vértices e Arestas A.10 Algoritmo HEDA - Tempo de Execução em Minutos - Grafo Sintético - Speedup e Eciência A.11 Algoritmo HEDA - Tempo de Execução em Minutos - Grafo Sintético - Speedup e Eciência A.12 Algoritmo HEDA - Tempo de Execução em Minutos - Grafo IMDB A.13 Algoritmo Sequencial - Tempo de Execução em Minutos

14 Lista de Abreviaturas e Siglas API Application Programming Interface, 45, 53 ASCII American Standard Code for Information Interchange, 24 CSP Communicating Sequential Process, 46 ERP Exponential Rebel Probability, 50 ETL Extract Transform Load, 44 GCC Giant Connected Graph, 50 GFD Graph Fractal Dimension, 50 GFS Google File System, 27 GIM-V Generalized Iterative Matrix Vector multiplication, 52, 53 GPS Global Positioning System, 20 HADI Hadoop-based Diameter Estimator, 37, 51 HDFS Hadoop Distributed File System, 27, 28 JVM Java Virtual Machine, 52 LHC Large Hadron Collider, 48 NDFS Nutch Distributed File System, 27 NUMA Non-Uniform Memory Access, 46 PRAM Parallel Random Access Machine, 49 RWR Random Walk with Restart, 52 SGBD Sistema de Gerenciamento de Banco de Dados,

15 Lista de Abreviaturas e Siglas 15 SQL Structured Query Language, 28 TPC-H Transaction Processing Performance Council Ad-Hoc, 47 URL Uniform Resource Locator, 21

16 Capítulo 1 Introdução Redes complexas, modeladas por grafos grandes, aparecem em diversas áreas do nosso cotidiano. Literalmente são considerados grafos grandes aqueles que possuem milhares de vértices e até milhões de arestas. Estudá-los tornou-se algo extremamente útil e importante. Redes complexas são modeladas para redes sociais (Facebook, Twitter, Orkut, etc), redes de distribuição (energia, água, telefone, mercadorias), redes de citações de artigos cientícos, roteamento de veículos, serviços de urgência (bombeiros, ambulância, polícia) e a própria Internet. A tarefa de processar tais redes e encontrar medidas de centralidade tais como menores caminhos entre todos os pares de vértices, excentricidades dos vértices o raio e diâmetro de um grafo demanda processamento de alta capacidade e gera grandes volumes de dados, podendo tornar inviável a solução desses problemas por meio da computação sequencial. A computação paralela, ancorada na arquitetura multicore, ressurgiu nos últimos anos como uma opção para a solução desse tipo de problema. Entretanto, ela requer algumas habilidades e conhecimentos que a maioria dos atuais desenvolvedores não está acostumada a lidar. Esses problemas englobam a criação, sincronização e gerenciamento de threads, bloqueios (locks), gerenciamento de concorrência e mecanismos de tolerância a falhas [3]. Para auxiliar os programadores a projetar programas paralelos considerando os aspectos da concorrência e, ao mesmo tempo, explorar a evolução contínua da capacidade dos processadores, por meio do aumento da quantidade de núcleos, surgiu o modelo MapReduce. O MapReduce é um modelo baseado em linguagens funcionais e seu principal foco é o processamento de grandes massas de dados. Os programas projetados nesse modelo são inerentemente paralelos, permitindo o tratamento e o processamento de grandes massas de dados de forma paralela e distribuída, por desenvolvedores que não têm intimidade com programação paralela [4, 5]. O modelo MapReduce foi projetado para fornecer processamento paralelo e distribuído de uma maneira automática, escalável e tolerante a falhas [2]. Todo o gerenciamento do paralelismo ca a cargo do modelo e, com isso, o desenvolvedor pode focar seus esforços na solução do problema e não no controle da paralelização [5]. O MapReduce modela o sistema como um cluster e o Apache Hadoop é a sua principal implementação livre [2]. O Hadoop, em sua versão atual, contém mais de duzentos parâmetros conguráveis para ajuste de seu desempenho [6]. 16

17 Um dos principais desaos da programação no ambiente MapReduce é adequar um algoritmo sequencial existente para o formato padrão do modelo MapReduce, baseado no formato de par ordenado chave e valor. Algumas vezes essa adequação torna-se inviável devido à forma como o MapReduce realiza o processamento paralelo, por meio de combinação de conjuntos chave e valor. O artigo original do MapReduce [5] descreve diversas aplicações que utilizam o modelo para processar grandes massas de dados, porém não inclui discussão acerca de algoritmos para grafos. O MapReduce é um modelo habilitado para processamento de grafos em larga escala. Contudo, parece que o projeto de algoritmos paralelos em grafos no modelo MapReduce ainda é pouco discutido [7]. Alguns trabalhos como [8, 9, 10, 11] começam a preencher essa lacuna, ao propor algoritmos para grafos utilizando o modelo MapReduce. Alguns trabalhos na literatura apresentam algoritmos para medir a centralidade de grafos utilizando o modelo MapReduce. No entando, nenhum dos trabalhos que encontramos propõe encontrar medidas exatas para métricas de centralidade. O principal algoritmo para executar esta tarefa encontrado na literatura é o HADI [8] (Hadoop Diameter and Radii Estimator). O HADI é um algoritmo de aproximação que trabalha com o conceito de diâmetro efetivo, denido como o número mínimo de saltos em que noventa por cento de todos os pares de nós conectados podem alcançar uns aos outros. Com isso, o HADI encontra valores estimados para o raio e diâmetro de um grafo grande. As métricas exatas de centralidade têm importância fundamental na solução de problemas de localização, ao lidar com a tarefa de escolher um determinado caminho de acordo com algum critério. Por exemplo, em uma situação de emergência, na maioria das vezes é necessário minimizar o tempo de deslocamento entre o local da emergência e um hospital, uma central de polícia ou uma central do corpo de bombeiros. Ao decidir a localização de um serviço coletivo, tal como uma agência de correios ou uma central de atendimento de algum serviço público, iremos querer minimizar o tempo total de viagem para todas as pessoas interessadas nesses serviços. Quando construímos uma ferrovia, um oleoduto ou uma rodovia nós queremos minimizar a distância da nova estrutura para cada uma das comunidades a serem servidas. Cada uma dessas situações lida diretamente com o conceito de centralidade [12]. Diante da inexistência de um algoritmo para cálculo exato de centralidades de grafos grandes, que execute no ambiente paralelo MapReduce/Hadoop, foi criado o HEDA (Hadoop-based Exact Algorithm). O HEDA é baseado no algoritmo de busca em largura e realiza o cálculo do menor caminho entre todos os pares de vértices paralelamente. Além disso, o HEDA encontra as excentricidades de todos os vértices, o raio e o diâmetro exatos do grafo. Ao nal de sua execução é possível determinar de forma exata o centro e a periferia do grafo processado. A principal diferença entre os algoritmos HADI e HEDA, proposto por esse trabalho, está na exatidão dos resultados. O algoritmo HADI, por ser um algoritmo de aproximação 17

18 1.1. OBJETIVOS DO ESTUDO 18 e estimativa, prejudica a exatidão dos resultados para privilegiar o tempo de processamento e o espaço ocupado em disco. O HEDA, ao contrário, prejudica o tempo de processamento e o espaço ocupado em disco para fornecer todos os seus resultados de forma exata. Geralmente a solução exata das métricas de centralidade é a preferida, a menos que seu custo seja muito alto. Nesse sentido o HEDA preenche uma lacuna entre o algoritmo sequencial utilizado nos experimentos deste trabalho, que fornece a solução exata mas não é capaz de processar uma quantidade muito grande de dados em tempo hábil, e o HADI, que é capaz de processar quantidades maiores de dados mas não fornece valores exatos. 1.1 Objetivos do Estudo Esta dissertação apresenta um estudo experimental sobre algoritmos em grafos no ambiente MapReduce. Para a realização dos experimentos foram utilizados diversos grafos de redes complexas de diversos tamanhos, como os grafos dos sistemas autônomos da Internet disponíveis para download diariamente pelo Internet Research Lab (IRL) 1 da Universidade da Califórnia, grafos sintéticos gerados por meio de geradores de grafos e o grafo IMDB (Internet Movie Database) 2, que é um grafo grande e real, representando dados sobre lmes e atores. A seguir são listados os objetivos especícos deste estudo: Propor um algoritmo para encontrar as medidas exatas de centralidade em grafos de redes complexas utilizando o modelo MapReduce por meio de sua implementação Hadoop. Essas medidas de centralidade são excentricidades de um vértice, raio e diâmetro de um grafo grande e em consequência, o centro e a periferia de um grafo. Validar os resultados e comparar o tempo de execução do algoritmo proposto com um algoritmo sequencial presente na literatura [13]. Avaliar por medição o tempo de execução do algoritmo proposto em grafos de diversos tamanhos. Comparar os resultados e o tempo de execução do algoritmo proposto com o principal algoritmo paralelo presente na literatura e que utiliza o modelo MapReduce, o HADI [8]. Esta comparação é realizada utilizando todos os conjuntos de dados propostos. Realizar experimentos alterando os parâmetros de ajuste de desempenho do Hadoop e analisar os resultados de tempo gasto. Vericar a escalabilidade do algoritmo proposto à medida que máquinas vão sendo adicionadas ao cluster, por meio da métrica speedup. Medir a eciência do algoritmo. 1 Acessado em 02 de outubro de

19 1.2. RESULTADOS E CONTRIBUIÇÕES Resultados e Contribuições Uma vez que é possível resolver o problema de calcular medidas de centralidade em grafos grandes com o uso da computação paralela e do modelo MapReduce, a contribuição principal dessa dissertação está na criação de um novo algoritmo paralelo para encontrar as medidas de centralidade exata de grafos grandes, utilizando o modelo MapReduce. Na literatura não foi encontrado nenhum algoritmo com características semelhantes ao algoritmo proposto por esse trabalho. Esse algoritmo é detalhadamente explicado e um exemplo de funcionamento é apresentado. Esse trabalho apresenta também uma ampla revisão bibliográca tanto da área de algoritmos para centralidade em grafos, quanto da área de algoritmos para o modelo Map- Reduce, de uma maneira geral. Além disso, outra contribuição desse trabalho é um estudo experimental sobre os parâmetros de ajuste de desempenho do Hadoop. Foram realizados experimentos com diversas combinações de valores para esses parâmetros. O algoritmo HEDA, para o conjunto de grafos da Internet, apresentou uma melhora no tempo de processamento total de até 33,6%, com uma parametrização especíca. O algoritmo proposto teve seus resultados, quanto às métricas calculadas, validados por um algoritmo sequencial [13] e seus resultados de tempo foram comparados com o algoritmo HADI [8]. A principal contribuição dessa comparação foi que o algoritmo proposto (HEDA) apresentou resultados exatos. Por outro lado, o HADI apresentou em todos os testes os menores tempos de execução. Quanto à escalabilidade, o HEDA apresenta resultados de speedup superlinear para alguns tamanhos de grafos experimentados. 1.3 Organização do Trabalho Este trabalho encontra-se organizado como descrito a seguir. O capítulo 2 apresenta a fundamentação teórica. Neste capítulo são abordados conceitos fundamentais para as medidas de centralidade em grafos de redes complexas, tais como os conceitos de excentricidade, diâmetro, raio, periferia e centro de um grafo, o problema do menor caminho a partir de uma única origem e a partir de todos os pares de vértices. Na parte de programação paralela é apresentada uma discussão sobre a revolução causada pela arquitetura multicore e as principais métricas utilizadas para a comparação entre soluções sequenciais e paralelas, o speedup e a eciência. A respeito do modelo MapReduce e de sua implementação Hadoop, o capítulo 2 discute acerca do impacto das grandes massas de dados como motivação para o processamento paralelo e faz um apanhado sobre a estrutura do modelo MapReduce, apresentando seus principais componentes e demonstrando, por meio de um exemplo prático, seu funcionamento e uxo de dados. Ao nal do capítulo, os principais algoritmos sequenciais e paralelos para solução do menor caminho em grafos são apresentados. No capítulo 3 são descritos os trabalhos relacionados. Neste capítulo, são abordados

20 1.3. ORGANIZAÇÃO DO TRABALHO 20 os trabalhos que utilizam o modelo MapReduce para propor soluções em diversas áreas do conhecimento, tais como banco de dados, inteligência articial e análise de dados cientícos. Além disso, trabalhos que avaliam o desempenho do modelo MapReduce são apresentados. O capítulo 3 trata também de trabalhos referentes aos algoritmos paralelos para encontrar o menor caminho em grafos, mesmo que estes não utilizem o modelo MapReduce. Ao nal, diversos trabalhos sobre processamento de grafos utilizando MapReduce/Hadoop são apresentados, tais como o algoritmo HADI [8] e o modelo Pregel [10]. O capítulo 4 apresenta o algoritmo HEDA (Hadoop-based Exact Diameter Algorithm), que é o algoritmo proposto por esse trabalho para encontrar a centralidade de grafos grandes utilizando o modelo MapReduce. O capítulo inicia-se com uma explicação detalhada sobre a estrutura do algoritmo, apresentando em seguida a ideia principal do HEDA e também descrevendo como os resultados do algoritmo foram validados. O funcionamento do algoritmo é demonstrado, detalhando o modo como o processamento é paralelizado, aproveitando essa capacidade do modelo MapReduce. Em seguida um exemplo prático é utilizado para complementar a explicação sobre o funcionamento do HEDA. No capítulo 5 é descrito o projeto de experimentos. O capítulo descreve o ambiente computacional para a execução dos experimentos e, em seguida, os conjuntos de dados de entrada utilizados nos experimentos são detalhados. Os tipos de experimentos e a forma como estes serão conduzidos são descritos e justicados. O capítulo termina com as considerações nais sobre o projeto dos experimentos. O capítulo 6 descreve os resultados dos experimentos. O capítulo realiza o confronto entre os resultados dos algoritmos HEDA, HADI e sequencial. Os resultados incluem análises referentes à escalabilidade ao aumentar do número de nós do cluster e speedup. Finalizando, no capítulo 7 são apresentadas as conclusões e os trabalhos futuros sugeridos.

21 Capítulo 2 Fundamentação Teórica 2.1 A Revolução da Arquitetura Multicore A arquitetura multicore surgiu nos últimos anos com o intuito de aumentar consideravelmente o desempenho de computadores. Nos últimos vinte anos, arquitetos aproveitaram o aumento de seus orçamentos e o rápido aumento da velocidade dos transistores, que a tecnologia do silício tornou possível, para duplicar a capacidade de processamento dos processadores a cada dezoito meses [3]. O contrato implícito entre hardware e software foi que enquanto fosse aumentando a quantidade de transistores e a capacidade de dissipação estivesse em níveis aceitáveis, seria mantida a programação sequencial. Esse contrato levou a inovações que foram inecientes em termos de transistores e capacidade (tais como o problema de múltiplas instruções, pipelines profundos, execução fora de ordem, execução especulativa e prefetching), mas que aumentaram o desempenho preservando o modelo de programação sequencial. A indústria de processadores melhorou a relação custo/desempenho da computação sequencial por volta de cem bilhões de vezes nos últimos sessenta anos [3]. Esse contrato funcionou bem até atingirmos o limite de capacidade de calor que um chip pode dissipar [3]. Ao alcançar essa barreira física, esses mesmos arquitetos foram forçados a encontrar um novo paradigma que sustentasse esse constante aumento de capacidade. Assim, a indústria de hardware decidiu pela única opção viável, que era substituir um único processador com uma dada capacidade de processamento sem possibilidade de melhoria, por um processador com muitos núcleos de processamento no mesmo chip. Nesse momento, toda a indústria de microprocessadores declarou que o futuro estava na computação paralela, com o aumento do número de núcleos a cada geração da tecnologia, prevista para cada dois anos [3]. Esse novo processador que passou a ser fabricado cou rotulado como processador multicore [1]. Contudo, o salto para o multicore não se baseou, nem foi acompanhado por um avanço na programação ou na arquitetura. Na verdade, esse avanço é um retrato da difícil tarefa que é a construção de processadores com alta capacidade, eciência e alta taxa de processamento [1, 3]. De acordo com [3], o problema da indústria de hardware signica oportunidade para a comunidade de pesquisadores. Se os pesquisadores enfrentam o desao do paralelismo, o 21

Capítulo 8 Arquitetura de Computadores Paralelos

Capítulo 8 Arquitetura de Computadores Paralelos Capítulo 8 Arquitetura de Computadores Paralelos Necessidade de máquinas com alta capacidade de computação Aumento do clock => alta dissipação de calor Velocidade limitada dos circuitos => velocidade da

Leia mais

4 Computação Paralela 4.1. Introdução

4 Computação Paralela 4.1. Introdução 4 Computação Paralela 4.1. Introdução Nos últimos anos observa-se uma tendência cada vez maior do aumento da demanda computacional na resolução de grandes problemas. Exemplos de aplicações que exigem alto

Leia mais

BIG DATA: UTILIZANDO A INTERNET PARA TOMADA DE DECISÕES

BIG DATA: UTILIZANDO A INTERNET PARA TOMADA DE DECISÕES BIG DATA: UTILIZANDO A INTERNET PARA TOMADA DE DECISÕES Alex Travagin Chatalov¹, Ricardo Ribeiro Rufino ¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil alex_tr1992@hotmail.com ricardo@unipar.br

Leia mais

HadoopDB. Edson Ie Serviço Federal de Processamento de Dados - SERPRO

HadoopDB. Edson Ie Serviço Federal de Processamento de Dados - SERPRO HadoopDB Edson Ie Serviço Federal de Processamento de Dados - SERPRO Motivação Grandes massas de dados precisam ser processadas em clusters: 1 nó: 100TB@59MB/s = 23 dias Cluster com 1000 nós 33 min!!!

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

Um Algoritmo Paralelo em Hadoop para Cálculo de Centralidade em Grafos Grandes

Um Algoritmo Paralelo em Hadoop para Cálculo de Centralidade em Grafos Grandes Um Algoritmo Paralelo em Hadoop para Cálculo de Centralidade em Grafos Grandes João Paulo B. Nascimento 1, Cristina D. Murta 1 1 Departamento de Computação CEFET-MG Belo Horizonte MG Resumo. Neste artigo

Leia mais

Apresentação do Artigo

Apresentação do Artigo Apresentação do Artigo Web Search for a Planet: The Google Cluster Architecture Publicado em IEEE Micro Março 2003, pg.22-28 Luiz A.Barroso, Jeffrey Dean, Urs Hölze Frank Juergen Knaesel fknaesel@inf.ufsc.br

Leia mais

COLETA E MINERAÇÃO DE DADOS DE REDES SOCIAIS

COLETA E MINERAÇÃO DE DADOS DE REDES SOCIAIS Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas - ICEB Departamento de Computação - DECOM COLETA E MINERAÇÃO DE DADOS DE REDES SOCIAIS Aluno: Milton Stiilpen Júnior

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

Estratégia para dentificação dos fatores de maior impacto de aplicações Mapreduce

Estratégia para dentificação dos fatores de maior impacto de aplicações Mapreduce Estratégia para dentificação dos fatores de maior impacto de aplicações Mapreduce Fabiano da Guia Rocha Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso - Campus Cáceres Av. dos Ramires,

Leia mais

Definindo melhor alguns conceitos

Definindo melhor alguns conceitos Definindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem a um ou mais processos que resolvem um único problema. Processamento Distribuído: processamento

Leia mais

PLATAFORMA URBANMOB Aplicativo para captura de trajetórias urbanas de objetos móveis

PLATAFORMA URBANMOB Aplicativo para captura de trajetórias urbanas de objetos móveis PLATAFORMA URBANMOB Aplicativo para captura de trajetórias urbanas de objetos móveis Gabriel Galvão da Gama 1 ; Reginaldo Rubens da Silva 2 ; Angelo Augusto Frozza 3 RESUMO Este artigo descreve um projeto

Leia mais

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS Ciência da Computação 5ª série Sistemas Operacionais A atividade prática supervisionada (ATPS) é um método de ensinoaprendizagem desenvolvido por meio de um conjunto

Leia mais

Resumo. Introdução Cluster Cluster Beowulf Curiosidades Conclução

Resumo. Introdução Cluster Cluster Beowulf Curiosidades Conclução Cluster Resumo Introdução Cluster Cluster Beowulf Curiosidades Conclução Introdução Sua empresa esta precisando fazer um grande processamento; As Nuvens existentes não são suficientes para sua empresa;

Leia mais

Tipos de Sistemas Distribuídos (Cluster e Grid)

Tipos de Sistemas Distribuídos (Cluster e Grid) Tipos de Sistemas Distribuídos (Cluster e Grid) Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência

Leia mais

Análise de Desempenho de um SGBD para Aglomerado de Computadores

Análise de Desempenho de um SGBD para Aglomerado de Computadores Análise de Desempenho de um SGBD para Aglomerado de Computadores Diego Luís Kreutz, Gabriela Jacques da Silva, Hélio Antônio Miranda da Silva, João Carlos Damasceno Lima Curso de Ciência da Computação

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 6 - ARQUITETURAS AVANÇADAS DE COMPUTADORES 1. INTRODUÇÃO As arquiteturas dos processadores têm evoluído ao longo dos anos, e junto com ela o conceito de arquitetura avançada tem se modificado. Nos

Leia mais

TerraME HPA (High Performance Architecture)

TerraME HPA (High Performance Architecture) Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas - ICEB Departamento de Computação - DECOM TerraME HPA (High Performance Architecture) Aluno: Saulo Henrique Cabral Silva

Leia mais

Balanceamento de Carga

Balanceamento de Carga 40 4. Balanceamento de Carga Pode-se entender por balanceamento de carga uma política a ser adotada para minimizar tanto a ociosidade de utilização de alguns equipamentos quanto a super utilização de outros,

Leia mais

Características Básicas de Sistemas Distribuídos

Características Básicas de Sistemas Distribuídos Motivação Crescente dependência dos usuários aos sistemas: necessidade de partilhar dados e recursos entre utilizadores; porque os recursos estão naturalmente em máquinas diferentes. Demanda computacional

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

The Eucalyptus Open- source Cloud-computing System. Janaina Siqueira Lara Wilpert Marcelo Scheidt Renata Silva

The Eucalyptus Open- source Cloud-computing System. Janaina Siqueira Lara Wilpert Marcelo Scheidt Renata Silva The Eucalyptus Open- source Cloud-computing System Janaina Siqueira Lara Wilpert Marcelo Scheidt Renata Silva Sumário Introdução Trabalhos Correlatos Eucalyptus Design Conclusões Visão Geral Introdução:

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

2 Trabalhos Relacionados

2 Trabalhos Relacionados 2 Trabalhos Relacionados Nesse capítulo, apresentamos os trabalhos relacionados ao GridFS, entrando em mais detalhes sobre os sistemas citados durante a introdução e realizando algumas considerações sobre

Leia mais

Tabela 4.2 Estatística típica de um sistema em 2007

Tabela 4.2 Estatística típica de um sistema em 2007 4. CONSTRUÇÃO DE ÍNDICE Neste capítulo é mostrado como construir um índice invertido, processo chamado de indexação. O projeto de indexação depende de algumas restrições de hardware, fato que leva a necessidade

Leia mais

23/05/12. Computação em Nuvem. Computação em nuvem: gerenciamento de dados. Computação em Nuvem - Características principais

23/05/12. Computação em Nuvem. Computação em nuvem: gerenciamento de dados. Computação em Nuvem - Características principais Computação em Nuvem Computação em nuvem: gerenciamento de dados Computação em nuvem (Cloud Computing) é uma tendência recente de tecnologia cujo objetivo é proporcionar serviços de Tecnologia da Informação

Leia mais

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional O conteúdo deste documento tem por objetivo apresentar uma visão geral

Leia mais

Weather Search System

Weather Search System Weather Search System PROJECTO DE COMPUTAÇÃO EM NUVEM RELATÓRIO Grupo 2 Gonçalo Carito - Nº57701 Bernardo Simões - Nº63503 Guilherme Vale - Nº64029 Índice Weather Search System...1 1. A Solução Implementada...3

Leia mais

XDR. Solução para Big Data.

XDR. Solução para Big Data. XDR Solução para Big Data. ObJetivo Principal O volume de informações com os quais as empresas de telecomunicações/internet têm que lidar é muito grande, e está em constante crescimento devido à franca

Leia mais

IMPLEMENTAÇÃO DE UM ALGORITMO DE PADRÕES DE SEQUÊNCIA PARA DESCOBERTA DE ASSOCIAÇÕES ENTRE PRODUTOS DE UMA BASE DE DADOS REAL

IMPLEMENTAÇÃO DE UM ALGORITMO DE PADRÕES DE SEQUÊNCIA PARA DESCOBERTA DE ASSOCIAÇÕES ENTRE PRODUTOS DE UMA BASE DE DADOS REAL Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas - ICEB Departamento de Computação - DECOM IMPLEMENTAÇÃO DE UM ALGORITMO DE PADRÕES DE SEQUÊNCIA PARA DESCOBERTA DE ASSOCIAÇÕES

Leia mais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais Notas da Aula 4 - Fundamentos de Sistemas Operacionais 1. Threads Threads são linhas de execução dentro de um processo. Quando um processo é criado, ele tem uma única linha de execução, ou thread. Esta

Leia mais

ANÁLISE E IMPLEMENTAÇÃO DE ALGORITMOS DE COMPRESSÃO DE DADOS. Maria Carolina de Souza Santos 1 Orientador: Prof.º Ms.

ANÁLISE E IMPLEMENTAÇÃO DE ALGORITMOS DE COMPRESSÃO DE DADOS. Maria Carolina de Souza Santos 1 Orientador: Prof.º Ms. ANÁLISE E IMPLEMENTAÇÃO DE ALGORITMOS DE COMPRESSÃO DE DADOS Maria Carolina de Souza Santos 1 Orientador: Prof.º Ms. Mauricio Duarte 2 Centro Universitário Euripides de Marilia UNIVEM FATEC Faculdade de

Leia mais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura

Leia mais

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos Capítulo 8 Sistemas com Múltiplos Processadores 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos 1 Sistemas Multiprocessadores Necessidade contínua de computadores mais rápidos modelo

Leia mais

TABELA DE EQUIVALÊNCIA FECOMP Curso de Engenharia de Computação

TABELA DE EQUIVALÊNCIA FECOMP Curso de Engenharia de Computação TABELA DE EQUIVALÊNCIA FECOMP Curso de Engenharia de Computação Disciplina A Disciplina B Código Disciplina C/H Curso Disciplina C/H Código Curso Ano do Currículo 66303 ESTRUTURA DE DADOS I 68/0 ENG. DE

Leia mais

- Aula 1 - ARQUITETURA DE COMPUTADORES

- Aula 1 - ARQUITETURA DE COMPUTADORES - Aula 1 - ARQUITETURA DE COMPUTADORES Em arquitetura de computadores serão estudados aspectos da estrutura e do funcionamento dos computadores. O objetivo é apresentar de forma clara e abrangente a natureza

Leia mais

7-1. Parte 6 Otimizações da Arquitetura

7-1. Parte 6 Otimizações da Arquitetura 7-1 Parte 6 Otimizações da Arquitetura 7-2 Bibliografia [1] Miles J. Murdocca e Vincent P. Heuring, Introdução à Arquitetura de Computadores [2] Andrew S. Tanenbaum, Modern Operating Systems [3] William

Leia mais

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos Sistemas Distribuídos Sistemas de Arquivos Distribuídos Roteiro Sistema de arquivos distribuídos Requisitos Arquivos e diretórios Compartilhamento Cache Replicação Estudo de caso: NFS e AFS Sistemas Distribuídos

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Engenharia de software 2011A. Trabalho sobre

Engenharia de software 2011A. Trabalho sobre Engenharia de software 2011A Trabalho sobre NOSQL Not only SQL NoSQL Not only SQL GRUPO - 9 Cléverton Heming Jardel Palagi Jonatam Gebing Marcos Wassem NOSQL O Termo NoSQL, foi utilizado pela primeira

Leia mais

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos Introdução a Sistemas Distribuídos Definição: "Um sistema distribuído é uma coleção de computadores autônomos conectados por uma rede e equipados com um sistema de software distribuído." "Um sistema distribuído

Leia mais

EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE

EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE por Miguel Aguiar Barbosa Trabalho de curso II submetido como

Leia mais

Treinamento PostgreSQL Cluster de Banco de Dados - Aula 01

Treinamento PostgreSQL Cluster de Banco de Dados - Aula 01 Treinamento PostgreSQL Cluster de Banco de Dados - Aula 01 Eduardo Ferreira dos Santos SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com 13 de Junho de 2013

Leia mais

Introdução à Simulação

Introdução à Simulação Introdução à Simulação O que é simulação? Wikipedia: Simulação é a imitação de alguma coisa real ou processo. O ato de simular algo geralmente consiste em representar certas características e/ou comportamentos

Leia mais

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados Sistema de Bancos de Dados Conceitos Gerais Sistema Gerenciador de Bancos de Dados # Definições # Motivação # Arquitetura Típica # Vantagens # Desvantagens # Evolução # Classes de Usuários 1 Nível 1 Dados

Leia mais

Boas Práticas em Sistemas Web muito além do HTML...

Boas Práticas em Sistemas Web muito além do HTML... Boas Práticas em Sistemas Web muito além do HTML... Adriano C. Machado Pereira (adrianoc@dcc.ufmg.br) De que Web estamos falando? De que Web estamos falando? A Web foi concebida para ser uma biblioteca

Leia mais

Visão do Usuário da DSM

Visão do Usuário da DSM Memória Compartilhada Distribuída Visão Geral Implementação Produtos 1 Memória Compartilhada Distribuída Mecanismos tradicionais de comunicação via RPC/RMI ou mensagens deixam explícitas as interações

Leia mais

Multicomputadores. Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação CECOMP

Multicomputadores. Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação CECOMP Multicomputadores Introdução Vimos que existem dois tipos de processadores paralelos MIMD: Multiprocessadores. Multicomputadores. Nos multiprocessadores, existe uma memória compartilhada que pode ser acessada

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

2 Auto-sintonia de Bancos de Dados e Agentes de Software

2 Auto-sintonia de Bancos de Dados e Agentes de Software 2 Auto-sintonia de Bancos de Dados e Agentes de Software A uso da abordagem de agentes de software 1 pode trazer benefícios a áreas de aplicação em que é necessário construir sistemas autônomos, ou seja,

Leia mais

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro Prof. Daniela Barreiro Claro Volume de dados muito grande Principais problemas em relação aos SGBD Relacionais é conciliar o tipo de modelo com a demanda da escalabilidade. Exemplo -Facebook Um crescimento

Leia mais

Programação Concorrente Processos e Threads

Programação Concorrente Processos e Threads Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por

Leia mais

TÉCNICAS DE COMPUTAÇÃO PARALELA PARA MELHORAR O TEMPO DA MINERAÇÃO DE DADOS: Uma análise de Tipos de Coberturas Florestais

TÉCNICAS DE COMPUTAÇÃO PARALELA PARA MELHORAR O TEMPO DA MINERAÇÃO DE DADOS: Uma análise de Tipos de Coberturas Florestais UNIVERSIDADE ESTADUAL DE PONTA GROSSA PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO PROGRAMA DE PÓS-GRADUAÇÃO EM COMPUTAÇÃO APLICADA CRISTIAN COSMOSKI RANGEL DE ABREU TÉCNICAS DE COMPUTAÇÃO PARALELA PARA MELHORAR

Leia mais

Introdução a Linguagens de Programação

Introdução a Linguagens de Programação Introdução a Linguagens de Programação Prof a.dra.thatyana de Faria Piola Seraphim Universidade Federal de Itajubá thatyana@unifei.edu.br Dados Importantes O material com todas as informações referentes

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

Multiprocessamento. Multiprocessadores com memória distribuída (multicomputador)

Multiprocessamento. Multiprocessadores com memória distribuída (multicomputador) Multiprocessamento Multiprocessadores com memória distribuída (multicomputador) Conjunto de processadores, cada qual com sua memória local Processadores se comunicam por troca de mensagens, via rede de

Leia mais

Uma Abordagem de Classificação não Supervisionada de Carga de Trabalho MapReduce Utilizando Análise de Log

Uma Abordagem de Classificação não Supervisionada de Carga de Trabalho MapReduce Utilizando Análise de Log paper:37 Uma Abordagem de Classificação não Supervisionada de Carga de Trabalho MapReduce Utilizando Análise de Log Ivan Luiz Picoli¹, Eduardo Cunha de Almeida¹ Nível: Mestrado; Ano de Ingresso: 2013;

Leia mais

Profs. Deja e Andrei

Profs. Deja e Andrei Disciplina Sistemas Distribuídos e de Tempo Real Profs. Deja e Andrei Sistemas Distribuídos 1 Conceitos e Projetos de Sistemas Distribuídos Objetivos: Apresentar uma visão geral de processamento distribuído,

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Introdução aos Bancos de Dados Não-Relacionais. Mauricio De Diana (mestrando) Marco Aurélio Gerosa (orientador)

Introdução aos Bancos de Dados Não-Relacionais. Mauricio De Diana (mestrando) Marco Aurélio Gerosa (orientador) Introdução aos Bancos de Dados Não-Relacionais Mauricio De Diana (mestrando) Marco Aurélio Gerosa (orientador) Conteúdo Histórico de BDs não-relacionais na Web 4 Categorias de bancos NoSQL Exemplos de

Leia mais

Programação de Computadores

Programação de Computadores Aula 01 Introdução Departamento de Computação Universidade Federal de Ouro Preto 2011.1 1 Processamento de dados 2 Organização de Computadores 3 Sistemas de Numeração Processamento de dados Processamento

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Sistema de Visão Computacional sobre Processadores com Arquitetura Multi Núcleos

Sistema de Visão Computacional sobre Processadores com Arquitetura Multi Núcleos Roberto Kenji Hiramatsu Sistema de Visão Computacional sobre Processadores com Arquitetura Multi Núcleos Tese apresentada à Escola Politécnica da Universidade de São Paulo para obtenção do Título de Doutor

Leia mais

Estudo de Caso 2: Windows Vista

Estudo de Caso 2: Windows Vista Faculdades Integradas de Mineiros Curso de Sistemas de Informação Sistemas Operacionais II Estudo de Caso 2: Windows Vista Grupo 4 Helder / Wagner / Frantyeis Junho/2010 O Windows usa uma estratégia Just-In-Time

Leia mais

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Ferramenta de apoio a gerência de configuração de software Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Gerência de Configuração

Leia mais

Tópicos Avançados em Banco de Dados Visão Geral de Tópicos Avançados em Banco de Dados I. Prof. Hugo Souza

Tópicos Avançados em Banco de Dados Visão Geral de Tópicos Avançados em Banco de Dados I. Prof. Hugo Souza Tópicos Avançados em Banco de Dados Visão Geral de Tópicos Avançados em Banco de Dados I Prof. Hugo Souza Iniciaremos nossos estudos sobre os tópicos avançados sobre banco de dados recapitulando o histórico

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto

Leia mais

Unidade: Arquitetura de computadores e conversão entre

Unidade: Arquitetura de computadores e conversão entre Unidade: Arquitetura de computadores e conversão entre Unidade bases I: numéricas 0 Unidade: Arquitetura de computadores e conversão entre bases numéricas 1 - Conceitos básicos sobre arquitetura de computadores

Leia mais

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de:

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: i Sumário 1 Introdução 1 1.1 Linguagens....................................... 1 1.2 O que é um Compilador?................................ 2 1.3 Processadores de Programas: Compiladores, Interpretadores

Leia mais

ARQUITETURA TRADICIONAL

ARQUITETURA TRADICIONAL INTRODUÇÃO Atualmente no universo corporativo, a necessidade constante de gestores de tomar decisões cruciais para os bons negócios das empresas, faz da informação seu bem mais precioso. Nos dias de hoje,

Leia mais

1. CAPÍTULO COMPUTADORES

1. CAPÍTULO COMPUTADORES 1. CAPÍTULO COMPUTADORES 1.1. Computadores Denomina-se computador uma máquina capaz de executar variados tipos de tratamento automático de informações ou processamento de dados. Os primeiros eram capazes

Leia mais

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron alexandre.a.giron@gmail.com Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema

Leia mais

Muitas aplicações modernas podem ser modeladas como tarefas divisíveis.

Muitas aplicações modernas podem ser modeladas como tarefas divisíveis. 1 Introdução O grande aumento de performance das redes de computadores, combinado com a proliferação de computadores de baixo custo e alto desempenho, trouxe à tona ambientes de meta-computação, ou grids[15,

Leia mais

GERENCIAMENTO CENTRALIZADO DELL POWERVAULT DL 2000 BASEADO EM TECNOLOGIA SYMANTEC

GERENCIAMENTO CENTRALIZADO DELL POWERVAULT DL 2000 BASEADO EM TECNOLOGIA SYMANTEC GERENCIAMENTO CENTRALIZADO DELL POWERVAULT DL 2000 BASEADO EM TECNOLOGIA SYMANTEC RESUMO EXECUTIVO O PowerVault DL2000, baseado na tecnologia Symantec Backup Exec, oferece a única solução de backup em

Leia mais

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Engenharia de Software Introdução Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Tópicos Apresentação da Disciplina A importância do Software Software Aplicações de Software Paradigmas

Leia mais

Introdução à Programação de Computadores

Introdução à Programação de Computadores 1. Objetivos Introdução à Programação de Computadores Nesta seção, vamos discutir os componentes básicos de um computador, tanto em relação a hardware como a software. Também veremos uma pequena introdução

Leia mais

Uma Avaliação de Desempenho dos Ambientes de Programação Paralela Hadoop e Spark

Uma Avaliação de Desempenho dos Ambientes de Programação Paralela Hadoop e Spark CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Programa de Pós-Graduação em Modelagem Matemática e Computacional Pedro Micael Theosã Lucas Nogueira Pinto Uma Avaliação de Desempenho dos Ambientes

Leia mais

ÁREA: CV ( ) CHSA ( ) ECET ( )

ÁREA: CV ( ) CHSA ( ) ECET ( ) ADAPTAÇÃO E INTEGRAÇÃO DO PROCESSADOR RISCO A UMA ARQUITETURA MULTI-CORE PARA SISTEMAS EMBARCADOS DE PROPOSITO GERAL Laysson Oliveira Luz (Bolsista PIBIC/CNPq), Ivan Saraiva Silva (Orientador, Departamento

Leia mais

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação III Aula 02 Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação Técnica de comunicação padronizada para enviar instruções a um computador. Assim

Leia mais

Sistema de Computação

Sistema de Computação Sistema de Computação Máquinas multinível Nível 0 verdadeiro hardware da máquina, executando os programas em linguagem de máquina de nível 1 (portas lógicas); Nível 1 Composto por registrados e pela ALU

Leia mais

Organização e Arquitetura de computadores

Organização e Arquitetura de computadores Conteúdo Organização e Arquitetura de computadores Abstrações e Tecnologias computacionais Prof. Dr. Luciano José Senger Falácias e armadilhas Computadores: produto da tecnologia de informação, 10% do

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Evolução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Introdução Componentes de um sistema computacional Conceituação Características desejáveis Organização

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

Características do Software

Características do Software Questionamentos Por que tanta demora para entregar? Por que os prazos se atrasam? Por que os custos são altos? Por que não achar todos os erros antes de entregar? Por que dificuldade em medir o progresso

Leia mais

MBA Analytics em Big Data

MBA Analytics em Big Data MBA Analytics em Big Data Inscrições Abertas Início das Aulas: 04/06/2015 Dias e horários das aulas: Segunda-Feira 19h00 às 23h00 Semanal Sexta-Feira 19h00 às 23h00 Semanal Carga horária: 600 Horas Duração:

Leia mais

O que é Grid Computing

O que é Grid Computing Grid Computing Agenda O que é Grid Computing Grid vs Cluster Benefícios Tipos de Grid Aplicações Ferramentas e padrões Exemplos no mundo Exemplos no Brasil Grid no mundo dos negócios Futuro O que é Grid

Leia mais

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução Arquitetura e Organização de Computadores Capítulo 0 - Introdução POR QUE ESTUDAR ARQUITETURA DE COMPUTADORES? 2 https://www.cis.upenn.edu/~milom/cis501-fall12/ Entender para onde os computadores estão

Leia mais

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução Arquitetura e Organização de Computadores Capítulo 0 - Introdução POR QUE ESTUDAR ARQUITETURA DE COMPUTADORES? 2 https://www.cis.upenn.edu/~milom/cis501-fall12/ Entender para onde os computadores estão

Leia mais

A evolução da tecnologia da informação nos últimos 45 anos

A evolução da tecnologia da informação nos últimos 45 anos A evolução da tecnologia da informação nos últimos 45 anos Denis Alcides Rezende Do processamento de dados a TI Na década de 1960, o tema tecnológico que rondava as organizações era o processamento de

Leia mais

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro Prof. Daniela Barreiro Claro Volume de dados muito grande Principais problemas em relacao aos SGBD Relacionais é conciliar o tipo de modelo com a demanda da escalabilidade. Exemplo -Facebook Um crescimento

Leia mais

Introdução à Engenharia de Computadores e Telemática. Guião das Aulas Práticas

Introdução à Engenharia de Computadores e Telemática. Guião das Aulas Práticas Introdução à Engenharia de Computadores e Telemática Guião das Aulas Práticas Departamento de Eletrónica, Telecomunicações e Informática Universidade de Aveiro 20122013 Conteúdo 1 Introdução ao UNIX 3

Leia mais

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro Introdução Sistemas Operacionais 1 Sistema Operacional: Um conjunto de programas, executado pelo computador como os outros programas. Função: Controlar o funcionamento do computador, disponibilizando seus

Leia mais

Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters

Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters Trabalho elaborado por: 980368 - Sérgio Gonçalves Lima 1010949 - Nisha Sudhirkumar Chaganlal Clusters O que é

Leia mais

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador Sistemas de Informação Prof. Anderson D. Moura Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

Seminário: Google File System (GFS)

Seminário: Google File System (GFS) UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC Disciplina: Sistemas Operacionais I INE5355 Alunos: Armando Fracalossi 06132008 Maurílio Tiago Brüning Schmitt 06132033 Ricardo Vieira Fritsche 06132044 Seminário:

Leia mais

Metas de um Sistema Distribuído

Metas de um Sistema Distribuído Metas de um Sistema Distribuído Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

UMA ANÁLISE COMPARATIVA ENTRE SERVIDORES PROXY DE ALTO DESEMPENHO.

UMA ANÁLISE COMPARATIVA ENTRE SERVIDORES PROXY DE ALTO DESEMPENHO. Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas - ICEB Departamento de Computação - DECOM UMA ANÁLISE COMPARATIVA ENTRE SERVIDORES PROXY DE ALTO DESEMPENHO. Aluno: Pedro

Leia mais

Nathalie Portugal Vargas

Nathalie Portugal Vargas Nathalie Portugal Vargas 1 Introdução Trabalhos Relacionados Recuperação da Informação com redes ART1 Mineração de Dados com Redes SOM RNA na extração da Informação Filtragem de Informação com Redes Hopfield

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Processos I: Threads, virtualização e comunicação via protocolos Prof. MSc. Hugo Souza Nesta primeira parte sobre os Processos Distribuídos iremos abordar: Processos e a comunicação

Leia mais