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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

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

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

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

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

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

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

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

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

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

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

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

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

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

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

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

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira. Período letivo: 4 Semestre. Quinzena: 5ª. Faculdades Santa Cruz - Inove Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira. Unidade Curricular Sistemas Distribuídos Processos

Leia mais

Estatística Básica via MySQL para Pesquisas On-Line

Estatística Básica via MySQL para Pesquisas On-Line Estatística Básica via MySQL para Pesquisas On-Line Gabriel Ramos Guerreiro - DEs, UFSCar 1 2 Anderson Luiz Ara-Souza - DEs, UFSCar 1 3 Francisco Louzada-Neto - DEs, UFSCar 1 4 1. INTRODUÇÃO Segundo Cavalcanti

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 4 SUPORTE AO SISTEMA OPERACIONAL Prof. Luiz Gustavo A. Martins Sistema Operacional (S.O.) Programa responsável por: Gerenciar os recursos do computador. Controlar a execução

Leia mais

FAT32 ou NTFS, qual o melhor?

FAT32 ou NTFS, qual o melhor? FAT32 ou NTFS, qual o melhor? Entenda quais as principais diferenças entre eles e qual a melhor escolha O que é um sistema de arquivos? O conceito mais importante sobre este assunto, sem sombra de dúvidas,

Leia mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Conceitos Básicos Introdução Banco de Dados I Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Dados

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

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

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

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora OpenGL Uma Abordagem Prática e Objetiva Marcelo Cohen Isabel Harb Manssour Novatec Editora Capítulo 1 Introdução A Computação Gráfica é uma área da Ciência da Computação que se dedica ao estudo e ao desenvolvimento

Leia mais

Novas Mídias e Relações Sociais.

Novas Mídias e Relações Sociais. Novas Mídias e Relações Sociais. Eduardo Foster 1 1 Caiena Soluções em Gestão do Conhecimento, Av. 34-578, CEP 13504-110 Rio Claro, Brasil foster@caiena.net Resumo. A comunicação é uma disciplina que acompanha

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Consistência e Replicação Capítulo 7 Agenda Razões para Replicação Replicação como técnica de escalabilidade Modelos de Consistência centrados

Leia mais

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3 Tecnologia FPGA Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3.1. FPGA: Histórico, linguagens e blocos Muitos dos

Leia mais

Arquitetura de Banco de Dados

Arquitetura de Banco de Dados Arquitetura de Banco de Dados Daniela Barreiro Claro MAT A60 DCC/IM/UFBA Arquitetura de Banco de dados Final de 1972, ANSI/X3/SPARC estabeleceram o relatório final do STUDY GROUP Objetivos do Study Group

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

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

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

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

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

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

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de I Organização Básica B de (Parte V, Complementar)

Leia mais

Single-Chip Cloud Computer

Single-Chip Cloud Computer IME-USP Departamento de Ciência da Computação Single-Chip Cloud Computer Diogo de Jesus Pina 6798294 (diogojpina@gmail.com) Everton Topan da Silva 6514219 (everton.topan.silva@usp.br) Disciplina: Organizaçã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

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

7 Processamento Paralelo

7 Processamento Paralelo 7 Processamento Paralelo Yes, of course, who has time? Who has time? But then if we do not ever take time, how can we ever have time? (The Matrix) 7.1 Introdução Classificação de Sistemas Paralelos Diversas

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

Tópicos. Engenharia de Software: Uma Visão Geral

Tópicos. Engenharia de Software: Uma Visão Geral Tópicos 2 3 Engenharia de Software: Uma Visão Geral SCE 186 - Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestre de 2002 A importância do Software Software Aplicações

Leia mais

Disciplina de Banco de Dados Introdução

Disciplina de Banco de Dados Introdução Disciplina de Banco de Dados Introdução Prof. Elisa Maria Pivetta CAFW - UFSM Banco de Dados: Conceitos A empresa JJ. Gomes tem uma lista com mais ou menos 4.000 nomes de clientes bem como seus dados pessoais.

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

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

Sistemas Operacionais. Conceitos de um Sistema Operacional

Sistemas Operacionais. Conceitos de um Sistema Operacional Sistemas Operacionais Conceitos de um Sistema Operacional Modo usuário e Modo Kernel Como já vimos são ambientes de execução diferentes no processador Há um conjunto de funções privilegiadas acessadas

Leia mais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais Sistema Operacional Processo e Threads Introdução a Processos Todos os computadores modernos são capazes de fazer várias coisas ao mesmo tempo. Enquanto executa um programa do usuário, um computador pode

Leia mais

Sistemas Operacionais

Sistemas Operacionais 7 Sistemas Operacionais 7.1 Fundamentos da ciência da computação Cengage Learning Objetivos 7.2 Compreender o papel do sistema operacional. Compreender o processo de inicialização para carregar o sistema

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização Básica B de Computadores

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

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa.

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa. CLUSTERS Pode-se pegar uma certa quantidade de servidores e juntá-los para formar um cluster. O serviço então é distribuído entre esses servidores como se eles fossem uma máquina só. Um cluster de servidores

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

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

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

A Estrutura da Web. Redes Sociais e Econômicas. Prof. André Vignatti

A Estrutura da Web. Redes Sociais e Econômicas. Prof. André Vignatti A Estrutura da Web Redes Sociais e Econômicas Prof. André Vignatti A Estrutura da Web Até agora: redes onde unidades eram pessoas ou entidades sociais, como empresas e organizações Agora (Cap 13, 14 e

Leia mais

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Questões Em uma rede de sobreposição (overlay), mensagens são roteadas de acordo com a topologia da sobreposição. Qual uma importante desvantagem

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

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

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP Banco de Dados Introdução João Eduardo Ferreira Osvaldo Kotaro Takai jef@ime.usp.br DCC-IME-USP Importância dos Bancos de Dados A competitividade das empresas depende de dados precisos e atualizados. Conforme

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

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

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

Uma solução de desempenho para a distribuição de documentos: Habilitando a distribuição de documentos em tempo real para corporações globais

Uma solução de desempenho para a distribuição de documentos: Habilitando a distribuição de documentos em tempo real para corporações globais Uma solução de desempenho para a distribuição de documentos: Habilitando a distribuição de documentos em tempo real para corporações globais Visão Geral Desafio Hoje, os aplicativos da web são um tremendo

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

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

Cálculo Aproximado do número PI utilizando Programação Paralela

Cálculo Aproximado do número PI utilizando Programação Paralela Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Cálculo Aproximado do número PI utilizando Programação Paralela Grupo 17 Raphael Ferras Renan Pagaiane Yule Vaz SSC-0143 Programação

Leia mais

Lucas Nascimento Santos

Lucas Nascimento Santos Lucas Nascimento Santos Mobile Application Developer lucassantoos56@gmail.com Resumo Lucas Nascimento Santos (@ll_ucasn), engenheiro de software. Estudante de Ciência da Computação na Universidade Salvador

Leia mais

ATIVIDADE 1 MÁQUINAS VIRTUAIS. 1.1 Arquiteturas não virtualizadas

ATIVIDADE 1 MÁQUINAS VIRTUAIS. 1.1 Arquiteturas não virtualizadas ATIVIDADE 1 MÁQUINAS VIRTUAIS Existem hoje diversas tecnologias e produtos para virtualização de computadores e ambientes de execução, o que pode gerar uma certa confusão de conceitos. Apesar disso, cada

Leia mais

Agência digital especializada na consultoria, design e desenvolvimento de projetos de internet

Agência digital especializada na consultoria, design e desenvolvimento de projetos de internet Agência digital especializada na consultoria, design e desenvolvimento de projetos de internet Oferecemos ao mercado nossa experiência e metodologia amplamente desenvolvidas ao longo de 15 anos de experiência

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

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas Processamento e Otimização de Consultas Banco de Dados Motivação Consulta pode ter sua resposta computada por uma variedade de métodos (geralmente) Usuário (programador) sugere uma estratégia para achar

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO PARANÁ GOVERNO DO ESTADO COLÉGIO ESTADUAL DE PARANAVAÍ ENSINO FUNDAMENTAL, MÉDIO, NORMAL E PROFISSIONAL CURSO TÉCNICO EM INFORMÁTICA DISCIPLINA: INTERNET E PROGRAMAÇÃO WEB 1º MÓDULO SUBSEQUENTE MECANISMOS

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

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas Arquitetura de Sistemas Operacionais Capítulo 4 Estrutura do Sistema Operacional Cap. 4 Estrutura do Sistema 1 Sistemas Operacionais Pitágoras Fadom Divinópolis Material Utilizado na disciplina Sistemas

Leia mais

Relatório de Pesquisa

Relatório de Pesquisa Relatório de Pesquisa A Vantagem da Virtualização de Mainframe: Como Economizar Milhões de Dólares Utilizando um IBM System z como um Servidor em Nuvem Linux Sumário Executivo Os executivos de TI (Tecnologia

Leia mais

USCS. Universidade Municipal de São Caetano do Sul. Pró-Reitoria de Pesquisa e Pós-Graduação Programa de Mestrado em Comunicação

USCS. Universidade Municipal de São Caetano do Sul. Pró-Reitoria de Pesquisa e Pós-Graduação Programa de Mestrado em Comunicação USCS Universidade Municipal de São Caetano do Sul Pró-Reitoria de Pesquisa e Pós-Graduação Programa de Mestrado em Comunicação Sub-Projeto de Pesquisa Evolução na Comunicação: estudos em sites da Internet

Leia mais