Cálculo da árvore binária de busca ótima usando MPI
|
|
- Diego Carlos Barroso
- 5 Há anos
- Visualizações:
Transcrição
1 Cálculo da árvore binária de busca ótima usando MPI 1. O Algoritmo Adriano Medeiros 1, André Murbach Maidl 1 1 Programação Concorrente/Paralela - PUC-Rio 1 adrimedeiros1@gmail.com, andremm@gmail.com O cálculo da árvore binária de busca ótima é um algoritmo de programação dinânica, comunmente usado para organizar uma árvore binária de tal forma que o número de nós visitados seja minimizado em todas as procuras. O algoritmo é executado a partir de uma sequência de n palavras, sendo que para cada palavra n i nós temos uma probabilidade p i de uma busca ser executada para n i. O procedimento de cálculo da árvore binária de busca ótima é θ(n ), pois é bastante similar ao procedimento de multiplicação de matrizes, usando três loops aninhados. Todavia, após calculada garante que a execução de uma busca por uma determinada palavra seja O(lg n). A seguir apresentaremos como paralelizamos tal algoritmo, usando MPI, os resultados dos testes executados no cluster e por fim uma análise do speed up.. Implementação e Paralelização O algoritmo paralelo foi implementado a partir do exemplo serial apresentado no exercício sugerido. No entanto, modificamos o algoritmo para ler as palavras e as probabilidades de um arquivo, em vez de ler do teclado. O arquivo deve ser organizado como apresentado a seguir e passado como parâmetro para o programa que executa o procedimento de cálculo da árvore binária de busca ótima. Para usarmos o exemplo também apresentado no exercício sugerido, devemos criar o seguinte arquivo: brown,.1 dog,.1 fox,. jumped,. lazy,. over,.1 quick,. the,. Cada palavra deve ser listada em uma linha do arquivo, seguida de uma vírgula (,) e sua respectiva probabilidade. Ao criar o arquivo livro.txt executamos o código paralelo passando-o como parâmetro: $ mpirun -v -np /obst_parallel /livro.txt
2 Ao executar o comando acima, indicamos que queremos dividir o trabalho entre dois processadores. A seguir veremos os detalhes do algoritmo paralelo. O algoritmo serial consiste no cálculo das sub-árvores ótimas, ou seja, cada célula da matriz triangular superior representa uma sub-árvore ótima. A figura 1 ilustra que em cada iteração são calculadas o valor de cada sub-árvore, onde cada processador realiza os cálculos sobre as sub-árvores de seu domínio. Por se tratar de um algoritmo iterativo, existe uma dependência sobre os dados da iteração (n+1) e n. Essa dependência é gerenciada pelo processador master. Figura 1. Divisão entre processadores para cálculo das sub-árvores em cada iteração O processador master, através da operação coletiva MPI_Scatterv, realiza a divisão dos dados da iteração n entre os diferentes processadores (slave), para o cálculo das sub-árvores do nível n+1. Depois do cálculo realizado por cada processador, através da operação MPI_Reduce é armazenado o melhor resultado no processador master, o qual gerencia a matriz superior triangular, o valor da menor sub-árvore e sua raiz na última coluna da linha da iteração. No final, na última iteração, armazena-se na posição [][LAST COLLUMN] o valor da árvore ótima e sua raíz.. Testes Para os testes medimos o tempo do cálculo da árvore binária de busca ótima para 1,,, e 9 palavras usando 1,,, e es. Cada teste foi executado cinco vezes, os resultados foram somados para obter a média das cinco execuções de cada caso de teste. Um script lua foi usado para gerar cada caso de teste, ou seja, para cada palavra um número aleatório, entre. e 1., era atribuído. Os mesmos dados foram usados em todas as execuções. A princípio gostaríamos de testar usando 1,, 1,,, e
3 palavras, no entanto encontramos uma limitação de 9 palavras, possivelmente devido a alguma configuração do servidor. Veremos agora alguns gráficos confrontando o resultado serial com cada resultado paralelo e ao final da seção um gráfico confrontando todos os resultados, bem como uma análise de cada gráfico. Os gráficos apresentam os resultados em uma escala de número de palavras X tempo em minutos. 1 1 processadores Figura. X processadores Podemos observar no gráfico que as execuções para 1 e palavras apresentam um tempo similar, mesmo assim nesses casos o serial é mais rápido. A partir de palavras a execução paralela, usando processadores, já leva vantagem sob a execução serial. 1 1 processadores Figura. X processadores
4 Bastante similar ao gráfico, o gráfico também apresenta comportamento similar entre o algoritmo serial e o paralelo, usando processadores, para 1 e palavras. Porém, pode-se notar bastante diferença a partir de palavras, quando a divisão entre os processos começa a apresentar resultados mais satisfatórios. 1 1 processadores Figura. X processadores No gráfico é fácil de ver um comportamento diferente nas execuções para 1 e palavras, ou seja, aqui é possível ver que a comunicação entre os processadores já começa a ter influência no tempo de execução, mesmo assim para palavras o resultado continua melhor que o serial e para 9 palavras foi mais significativo. 1 1 es Figura. X es Com es a comunicação é mais intensa ainda, portanto no gráfico
5 podemos observar uma execução mais lenta do algoritmo paralelo para 1, e palavras e uma execução similar a execução com processadores, apresentada em, para e 9 palavras proessadores processadores processadores es 1 9 Figura. Todos Finalmente, no gráfico confrontamos todos os resultados e obtivemos a seguinte análise: Para 1 e palavras o algoritmo paralelo é mais lento, devido a comunicação entre os processos, o que não existe no algoritmo serial. Para palavras o algoritmo paralelo usando, e processadores apresentou resultados bastante similares e uma pequena vantagem em relação ao serial. Usando processadores obtivemos o melhor resultado para palavras e com processadores o melhor resultado para 9 palavras. Infelizmente não pudemos testar usando 1 palavras ou mais, contudo os testes com es sinalizaram que provavelmente observaríamos um resultado significativo, se executado numa base de pelo menos 1 palavras. Ficou claro também que quanto menor a base de dados e maior o número de processadores, o algoritmo paralelo terá mais desvantagens em relação ao algoritmo serial.. Análise do Speed UP Como vimos anteriormente, os resultados para 1 e palavras, bem como os resultados para e 9 palavras são relativamente semelhantes, por isso analisaremos o speed up apenas para os casos com, e 9 palavras. Para palavras, no gráfico fica nítido que o speed up não é satisfatório porque a base de palavras é pequena de mais para ser paralelizada, ou seja, toda a comunicação necessária entre os processos influi severamente na performance do algoritmo, na medida que o número de processadores aumenta.
6 Speed UP x Processadores Real Ideal Speed UP 1 1 Processadores Figura. Speed UP para palavras No gráfico podemos observar que o speed up ainda é fraco, apesar de se mostrar relativamente estável para e processadores, a partir de processadores a comunicação entre processos volta a ser um problema para o tamanho da base de palavras utilizada. Speed UP x Processadores Real Ideal Speed UP 1 1 Processadores Figura. Speed UP para palavras Com 9 palavras o speed up ainda não é ideal, mas, como podemos observar no gráfico 9, já sinaliza que a medida que a base de palavras cresce ele também melhora, indicando que certamente obteríamos uma taxa de speed up bastante significativa ao executar o algoritmo paralelo para calcular a árovre de busca ótima de milhares de palavras.
7 Speed UP x Processadores Real Ideal Speed UP 1 1 Processadores Figura 9. Speed UP para 9 palavras É importante ressaltar que tivemos uma limitação de 9 palavras em nossos testes, provavelmente devido a configuração do MPI instalado no cluster, por isso ficou bastante evidente que o tempo de comunicação entre os processadores superam a demanda de processamento sobre cada processador para uma carga pequena de dados, acarretando em um baixo speed up. Porém, nota-se que para 9 palavras esse quadro começa a inverter e que certamente a tendência seria speed up aproximar-se do linear (esperado) com o aumento do número de palavras.
Computação científica utilizando placas gráficas
Brasília, dezembro de 2008 Universidade de Brasília - Faculdade do Gama Sumário Introdução Sumário Introdução Arquitetura da GPU Sumário Introdução Arquitetura da GPU Modelo de programação Sumário Introdução
Leia maisBanco 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 maisIntrodução à OpenMP (Dia 1) Prof. Guido Araujo
Introdução à OpenMP (Dia ) Prof. Guido Araujo www.ic.unicamp.br/~guido Roteiro Escrevendo programas usando OpenMP Usando OpenMP para paralelizar laços seriais com pequenas mudanças no código fonte Explorar
Leia maisArquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Desenvolvimento de Aplicações Paralelas
Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano Desenvolvimento de Aplicações Paralelas (gec.di.uminho.pt/lesi/ap10203/aula06aplicaçõespar.pdf) João Luís Ferreira Sobral Departamento
Leia maisDESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES
DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES João Ricardo Kohler Abramoski (PAIC/FUNDAÇÃO ARAUCÁRIA), Sandra Mara Guse Scós Venske (Orientadora), e-mail: ssvenske@unicentro.br
Leia maisLINGUAGEM C: COMANDOS DE REPETIÇÃO
LINGUAGEM C: COMANDOS DE REPETIÇÃO Prof. André Backes ESTRUTURAS DE REPETIÇÃO Uma estrutura de repetição permite que uma sequência de comandos seja executada repetidamente, enquanto determinadas condições
Leia maisTabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou
Tabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou também denominada de tabela hashing com endereçamento aberto.
Leia maisProgramação de Alto Desempenho - 2. Prof: Carla Osthoff
Programação de Alto Desempenho - 2 Prof: Carla Osthoff E-mail: osthoff@lncc.br 3- Modelos de programação paralela Shared Memory/Threads Posix Win32 treads OpenMP Message Passing MPI Data Parallel OpenCL/Cuda
Leia maisALGORITMOS AVANÇADOS UNIDADE I Análise de Algoritmo - Notação O. Luiz Leão
Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 1.1 - Algoritmo 1.2 - Estrutura de Dados 1.2.1 - Revisão de Programas em C++ envolvendo Vetores, Matrizes, Ponteiros, Registros
Leia maisGrafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de todos os pares
Grafos Caminhos mais curtos de todos os pares Conteúdo Algoritmos Baseado em multiplicação de matrizes Algoritmo de Floyd-Warshall Agoritmo de Johnson para grafos esparsos Referências Dado um grafo orientado
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 13: Ordenação: MergeSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: reifortes@iceb.ufop.br
Leia mais6 Aplicação do Modelo de Geração de Cenários
6 Aplicação do Modelo de Geração de Cenários 6.. Considerações Iniciais Os cenários de energia natural afluente, que são utilizados durante as simulações forward e backward do processo de definição da
Leia maisHashing: conceitos. Hashing
Hashing: conceitos hashing é uma técnica conhecida como espalhamento, mapeamento ou randomização que tenta distribuir dados em posições aleatórias de uma tabela (array) associa cada objeto (de um determinado
Leia maisIntrodução ao CUDA. Material elaborado por Davi Conte.
Introdução ao CUDA Material elaborado por Davi Conte. O objetivo deste material é que o aluno possa iniciar seus conhecimentos em programação paralela, entendendo a diferença da execução de forma sequencial
Leia maisArquiteturas Paralelas
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Arquiteturas Paralelas Medidas de desempenho Alexandre Amory Edson Moreno Índice 2 1. Introdução 2. Medidas de Desempenho Introdução 3 Aumento de desempenho dos
Leia maisUniversidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos Pensando em Paralelo Pensar em paralelo é uma tarefa que exige disciplina
Leia maisANÁLISE DE ALGORITMOS: PARTE 1. Prof. André Backes. Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa
ANÁLISE DE ALGORITMOS: PARTE 1 Prof. André Backes Algoritmos 2 Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa Precisamos escrever o seu algoritmo Um algoritmo
Leia maisTeoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.
Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Grafos e Algoritmos Preparado a partir do texto: Rangel, Socorro.
Leia maisProgramação dinâmica
Programação dinâmica CLRS 15.2 15.3 = recursão com tabela = transformação inteligente de recursão em iteração Algoritmos p. 1 Multiplicação iterada de matrizes Se A é p q e B é q r então AB é p r. (AB)[i,j]
Leia maisAnálise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenação Mario E. Matiusso Jr. (11028407) Bacharelado em Ciências da Computação Universidade Federal do ABC (UFABC) Santo André, SP Brasil mario3001[a]ig.com.br Resumo:
Leia maisUniversidade Federal do Espírito Santo Departamento de Informática 1 o Trabalho de Algoritmos Numéricos I - 17/2 Sistemas Lineares
Universidade Federal do Espírito Santo Departamento de Informática 1 o Trabalho de Algoritmos Numéricos I - 17/2 Sistemas Lineares (Cursos: Engenharia Mecânica, Engenharia de Computação e Ciência da Computação)
Leia maisFatoração LU André Luís M. Martinez UTFPR
Fatoração LU André Luís M. Martinez UTFPR Agosto de 2011 Sumário 1 Introdução Sumário 1 Introdução 2 Fatoração LU Sumário 1 Introdução 2 Fatoração LU 3 Método de Crout Sumário 1 Introdução 2 Fatoração
Leia maisProgramação Procedimental
Programação Procedimental Maria Adriana Vidigal de Lima Universidade Federal de Uberlândia - 2013 1 Escrita de Algoritmos 1.1 Técnicas de Programação e Algoritmos Na elaboração de programas maiores e complexos
Leia mais5 Simulações e Resultados
5 Simulações e Resultados 5.. Introdução Neste capítulo são apresentados alguns estudos de casos que analisam a aplicabilidade da metodologia proposta: o algoritmo de fechos convexos na resolução do problema
Leia maisWaldemar Celes e Roberto Ierusalimschy. 29 de Fevereiro de 2012
Capítulo 5: Repetições Waldemar Celes e Roberto Ierusalimschy 29 de Fevereiro de 2012 1 Construção de laços Uma das principais características de um computador é sua capacidade para realizar cálculo e
Leia maisGauss-Seidel para Solução de Sistemas com Matrizes Banda Usando Armazenamento Especial
Universidade Federal do Espírito Santo Departamento de Informática Algoritmos Numéricos 2016/2 Profa. Claudine Badue Trabalho 1 Objetivos Gauss-Seidel para Solução de Sistemas com Matrizes Banda Usando
Leia maisÁrvore Binária de Busca Ótima - Uma Implementação Distribuída
Árvore Binária de Busca Ótima - Uma Implementação Distribuída Felipe Reis e Caio Valentim Departamento de Informática PUC-Rio 7 de novembro de 2010 1 Introdução O problema de encontrar a árvore binária
Leia maisLinguagens de Programação Classificação
Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda
Leia maisAluno de Pós-Graduação em Engenharia de Software para Dispositivos Móveis pela UNINTER
COMPARAÇÃO DE DESEMPENHO NA PROGRAMAÇÃO PARALELA HÍBRIDA (MPI + OPENMP) NA BUSCA DE TEXTO EM ARQUIVOS 1 COMPARISON OF PERFORMANCE IN HYBRID PARALLEL PROGRAMMING (MPI + OPENMP) IN SEARCH OF TEXT IN FILES
Leia maisOrdenação: MergeSort. Prof. Túlio Toffolo BCC202 Aula 14 Algoritmos e Estruturas de Dados I
Ordenação: MergeSort Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 14 Algoritmos e Estruturas de Dados I DIVISÃO E CONQUISTA Motivação É preciso revolver um problema com uma entrada grande
Leia mais5. Expressões aritméticas
5. Expressões aritméticas 5.1. Conceito de Expressão O conceito de expressão em termos computacionais está intimamente ligado ao conceito de expressão (ou fórmula) matemática, onde um conjunto de variáveis
Leia maisSistemas Operacionais
Sistemas Operacionais Slides adaptados de Prof. Dr. Marcos José Santana, Prof. Dra. Regina Helena Carlucci Santana e Sarita Mazzini Bruschi baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum
Leia maisAnálise de algoritmos
Análise de algoritmos Introdução à Ciência de Computação II Baseados nos Slides do Prof. Dr. Thiago A. S. Pardo Análise de algoritmos Existem basicamente 2 formas de estimar o tempo de execução de programas
Leia maisCIC 111 Análise e Projeto de Algoritmos II
CIC 111 Análise e Projeto de Algoritmos II Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 18 Tree queries Finding ancestors Subtrees and paths Lowest common ancestor Offline
Leia mais7 Experimentos Computacionais
7 Experimentos Computacionais Este capítulo objetiva validar a estratégia de paralelização hierárquica distribuída e o middleware de gerenciamento metaeasygrid propostos nesta tese. Ambos foram integrados
Leia maisImplemente a função de remoção de uma chave na tabela hashing fechada em questão. void remover(tabela tabela, int n) {
Implemente a função de remoção de uma chave na tabela hashing fechada em questão. void remover(tabela tabela, int n) { } Tabelas de hash fechada: Exercício int posicao = buscar(tabela, n); if (posicao
Leia maisArquitetura e Organização de Processadores. Aula 4. Pipelines
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 4 Pipelines 1. Introdução Objetivo: aumento de
Leia maisIntrodução OpenMP. Nielsen Castelo Damasceno
Introdução OpenMP Nielsen Castelo Damasceno Computação de auto desempenho Processamento Paralelo Memória Distribuída e Compartilhada Modelo de programação OpenMP Métricas de Desempenho Computação de auto
Leia maisESTRUTURAS DE REPETIÇÃO - PARTE 1
AULA 15 ESTRUTURAS DE REPETIÇÃO - PARTE 1 15.1 O comando enquanto-faca- Considere o problema de escrever um algoritmo para ler um número inteiro positivo, n, e escrever todos os números inteiros de 1 a
Leia maisCriptograa e Segurança
Criptograa e Segurança 2017.2 Relembrando... Assinaturas Digitais Relembrando... Assinaturas Digitais Assinatura RSA Relembrando... Assinaturas Digitais Assinatura RSA Assinatura ElGamal Relembrando...
Leia maisAula 3: Algoritmos: Formalização e Construção
Aula 3: Algoritmos: Formalização e Construção Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Algoritmos: Formalização e Pseudo-Código Programação de
Leia maisComparação entre Abordagens de Paralelização para o Problema do Jogo da Vida
Comparação entre Abordagens de Paralelização para o Problema do Jogo da Vida Daniel Michelon de Carli 1,2, Eduardo Spolaor Mazzanti 1,2,3, Rodrigo Dewes 1, Ronaldo Canofre M. dos Santos 1,3, Valdir Stumm
Leia maisLINGUAGEM ALGORÍTMICA
LINGUAGEM ALGORÍTMICA Adriano Mauro Cansian André Proto UNESP - São José do Rio Preto Linguagem Computacional Introdução! Para uma melhor padronização de nosso estudos, vamos agora definir uma linguagem
Leia mais9 Conclusões e Sugestões para Trabalhos Futuros
9 Conclusões e Sugestões para Trabalhos Futuros O extenso horizonte do planejamento da operação e a estocasticidade das afluências futuras tornam o problema de planejamento da operação energética do sistema
Leia maisSistemas Multiprogramáveis/Multitarefa
Sistemas Multiprogramáveis/Multitarefa - Programas submetidos são armazenados em fitas/discos onde são executado sequencialmente -A UCP pode processar seqüencialmente cada job (tarefa), diminuindo o tempo
Leia maisA IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES
A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES Euzébio da Costa Silva 1, Victor Pereira Ribeiro 2, Susana Brunoro Costa de Oliveira 3 1 29520-000, euzebioprogramacao@gmail.com 2 29520-000, victor3ifes@gmail.com
Leia maisSistemas Operacionais e Introdução à Programação. Introdução à Lógica de Programação: estruturas de repetição
Sistemas Operacionais e Introdução à Programação Introdução à Lógica de Programação: estruturas de repetição 1 Imagine um algoritmo para calcular a média de uma quantidade desconhecida de números Para
Leia maisFUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres
FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5 Cristina Boeres Introdução! Diferença de velocidade entre Processador e MP O processador executa uma operação rapidamente e fica em
Leia maisAlgoritmos Estrutura Condicional
Algoritmos Estrutura Condicional Aula 06 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa diogopedrosa@ufersa.edu.br Universidade Federal Rural do Semiárido Bacharelado
Leia maisUniversidade Federal do Espírito Santo Departamento de Informática 1 o Trabalho de Algoritmos Numéricos I - 14/2 Sistemas Lineares
Universidade Federal do Espírito Santo Departamento de Informática 1 o Trabalho de Algoritmos Numéricos I - 14/2 Sistemas Lineares (Cursos: Engenharia de Computação e Ciência da Computação) Data de entrega:
Leia maisProjeto e Análise de Algoritmos Projeto de Algoritmos Programação Dinâmica. Prof. Humberto Brandão
Projeto e Análise de Algoritmos Projeto de Algoritmos Programação Dinâmica Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas versão da aula: 0.3 Programação Dinâmica
Leia maisAnálise de algoritmos
Análise de algoritmos Ordenação em tempo linear Prof. Flávio Rogério Uber (UEM/DIN) Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) Conteúdo Limites inferiores para ordenação por comparações Ordenação
Leia maisIntrodução à Lógica de Programação
Sistemas Operacionais e Introdução à Programação Introdução à Lógica de Programação 1 Resolução de problemas usando computador Computador: ferramenta para processamento automático de dados Processamento
Leia maisUniversidade Federal de São Carlos UFSCar Departamento de Engenharia de Produção
Universidade Federal de São Carlos UFSCar Departamento de Engenharia de Produção Tutorial básico de uso do Matlab/Octave para o método simplex Prof. Dr. Pedro Munari (munari@dep.ufscar.br) Matlab e Octave
Leia maisEstruturas de Dados Tabelas de Espalhamento
Estruturas de Dados Tabelas de Espalhamento Prof. Eduardo Alchieri (introdução) Uma estrutura como, as árvores binárias de busca, que trabalhe na ordem de log n é muito eficiente, mas em algumas situações
Leia maisIntrodução Ferramentas Unix MapReduce Outras Ferramentas. Batch Processing. Fabiola Santore. Universidade Federal do Paraná
Fabiola Santore Universidade Federal do Paraná Sumário 1. Introdução 2. Ferramentas Unix 2.1 Análise de log 2.2 Filosofia Unix 3. MapReduce 3.1 Procedimento 3.2 Reduce: Joins e Agrupamento 3.3 Análise
Leia maisEstruturas de Repetição
Prof.: Edwar Saliba Júnior Fevereiro 2012 1 Nomenclaturas: Loopings, Laços ou Malhas de Repetição; Possibilidades de Parada: Quantidade de repetições previamente definida (melhoria na legibilidade e qualidade
Leia maisAlgoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição 1 Comando while Deseja-se calcular o valor de: 1 + 2 + 3 +... + N. Observação: não sabemos, a priori, quantos termos
Leia maisIntrodução à Ciência da Computação II
Introdução à Ciência da Computação II 2semestre/200 Prof Alneu de Andrade Lopes Apresentação com material gentilmente cedido pelas profas Renata Pontin Mattos Fortes http://wwwicmcuspbr/~renata e Graça
Leia maisTabelas de dispersão/hash
Tabelas de dispersão/hash 1 Tabelas de dispersão/hash 1. Considere uma tabela de hash de tamanho m = 1000 e a função de hash h(k)= [m.(k.a % 1)], com A=( 5-1)/2. Calcule os valores de hash das chaves 61,
Leia maisIntrodução a Sistemas Operacionais. Adão de Melo Neto
Introdução a Sistemas Operacionais Adão de Melo Neto 41 Definição de SO Sistema Operacional É um conjunto de rotinas (programa) executado pelo processador que controla o funcionamento do computador como
Leia maisheapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i<n; i++) { e = x[i]; s = i; f = (s-1)/2;
heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i0 && x[f]
Leia maisFiltros de Média Movente
Processamento Digital de Sinais Filtros de Média Movente Prof. Dr. Carlos Alberto Ynoguti Características É o filtro ótimo para a tarefa de remover ruído aleatório de um sinal, e manter uma resposta a
Leia mais6 Estudos de Casos Porta Lógica OU de 4 Entradas
6 Estudos de Casos Com o objetivo de avaliar a síntese automática de circuitos de QCA usando técnicas de Hardware Evolucionário (EHW), alguns circuitos foram sintetizados e serão apresentados a seguir.
Leia maisAtividades Práticas no Ensino Introdutório de Sistemas Operac
Atividades Práticas no Ensino Introdutório de Sistemas Operacionais Cassio P. de Campos Nicolas Kassalias Faculdade de Computação e Informática Universidade Mackenzie 17 de julho de 2006 Agenda 1 Introdução
Leia maisAnálise de Algoritmos Estrutura de Dados II
Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Análise de Algoritmos Estrutura de Dados II COM10078 - Estrutura de Dados II Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br
Leia maisSOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU
SOP - TADS Threads Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula Processos [1/3] Conceito:
Leia maisManual do Usuário. Sistema Controle de Caixa (versão gratuita)
Manual do Usuário Sistema Controle de Caixa (versão gratuita) - Lançamento de receitas, despesas, gastos, depósitos. - Controla um ou mais caixas, para pessoas ou empresas que necessitem separar saldos,
Leia maisEstatística e Modelos Probabilísticos - COE241
Estatística e Modelos Probabilísticos - COE241 Aula passada Análise da dados através de gráficos Introdução a Simulação Aula de hoje Introdução à simulação Geração de números aleatórios Lei dos Grandes
Leia maisPROJETO E ANÁLISE DE ALGORITMOS (INF 2926)
PUC-Rio Departamento de Informática Prof. Marcus Vinicius S. Poggi de Aragão Horário: 4as-feiras de 13 às 16 horas - Sala 511 RDC 29 de abril de 2015 Data da Entrega: 10 de junho de 2015 Período: 2015.1
Leia maisPIPELINE. Introdução ao Pipeline. PIPELINE Ciclo de Instruções. PIPELINE Ciclo de Instruções. PIPELINE - Exemplo. PIPELINE Considerações
Arquitetura de Computadores Introdução ao Pipeline PIPELINE Linha de Montagem A produção é dividida em várias etapas Produtos em etapas distintas podem ser desenvolvidos separadamente Pode ser Aplicado
Leia maisBarramento. Prof. Leonardo Barreto Campos 1
Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;
Leia maisEstatística e Modelos Probabilísticos - COE241
Estatística e Modelos Probabilísticos - COE241 Aula passada Análise da dados através de gráficos Introdução a Simulação Aula de hoje Introdução à simulação Geração de números aleatórios Lei dos Grandes
Leia maisTeoria dos Grafos Aula 14
Teoria dos Grafos Aula 14 Aula passada MST Aula de hoje Construção de algoritmos Paradigma guloso Escalonando tarefas no tempo (interval scheduling) Projetando Algoritmos Dado um problema P, como projetar
Leia maisALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)
Algoritmos e Estruturas de Dados 1 Prof. Eduardo 1 ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE) Até o momento da disciplina vimos comandos de entrada, processamento e saída
Leia maisAlgoritmos 3/17/ Algoritmos como área de estudo e investigação
Algoritmos e Complexidade Ana Teresa Freitas INESC-ID/IST ID/IST 3/17/2005 1 O que é um algoritmo? Algoritmos: Sequência de instruções necessárias para a resolução de um problema bem formulado [passíveis
Leia maisEstatística e Modelos Probabilísticos - COE241
Estatística e Modelos Probabilísticos - COE241 Aula passada Somas aleatórias Aula de hoje Introdução à simulação Geração de números aleatórios Lei dos Grandes Números Simulação de Sistemas Discretos É
Leia maisAlgoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 3 Conceitos Básicos de Algoritmos Prof. Tiago A. E. Ferreira Definição de Algoritmo Informalmente... Um Algoritmo é qualquer procedimento computacional bem definido
Leia maisAula 4 Introdução ao C
Considere o nosso MSC. O Processador Central, entende o conjunto de instruções, leia, imprima, atribuição e condicional e com ela resolvemos vários problemas, construindo vários algoritmos. As instruções
Leia maisParalela e Distribuída. com o MPI e o OpenMP
Programação Paralela e Distribuída Programação Híbrida com o e o OpenMP e OpenMP Uma forma de executar um programa em paralelo num cluster multiprocessor é criar um processo por cada processador. Nesse
Leia maisResultados Obtidos 49
4 Resultados Obtidos Foram realizados testes para avaliar o desempenho do NCBI BLAST usando o BioProvider. Os testes foram feitos em um computador Pentium 4 com processador de 3 GHz de velocidade e 512
Leia maisESTRUTURA CONDICIONAL E SELEÇÃO
Algoritmos e Estruturas de Dados 1 Prof. Eduardo 1 ESTRUTURA CONDICIONAL E SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE OU DECISÃO) Até o momento da disciplina vimos algoritmos e programas
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: estruturas de repetição While / Do While / For Prof. Renato Pimentel 1 Estruturas de repetição O real poder dos computadores está
Leia maisProjeto e Análise de Algoritmos
Projeto e Algoritmos Pontifícia Universidade Católica de Minas Gerais harison@pucpcaldas.br 26 de Maio de 2017 Sumário A complexidade no desempenho de Quando utilizamos uma máquina boa, ela tende a ter
Leia maisALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)
Algoritmos e Estruturas de Dados 1 Prof. Eduardo 1 ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE) Já vimos entrada, processamento e saída, que compõem os algoritmos puramente
Leia maisAlgoritmos Computacionais
UNIDADE 1 Processador e instruções Memórias Dispositivos de Entrada e Saída Software ARQUITETURA BÁSICA UCP Unidade central de processamento MEM Memória E/S Dispositivos de entrada e saída UCP UNIDADE
Leia maisCérebro humano versus Computador digital
Cérebro humano versus Computador digital O cérebro humano possui uma rede de neurónios (células nervosas) que formam um sistema de processamento de informação em rede extremamente potente. E isso é um
Leia maisIntrodução Paradigmas
Introdução Paradigmas Recursividade Algoritmos tentativa e erro Divisão e conquista Programação dinâmica Algoritmos gulosos Algoritmos aproximados 1 Introdução O projeto de algoritmos requer abordagens
Leia maisINFORMÁTICA: Informação automática
INTRODUÇÃO INFORMÁTICA: Informação automática Definição: é a ciência que estuda o tratamento automático e racional da informação (encarregada pelo estudo e desenvolvimento de máquinas e métodos para processar
Leia maisÁRVORES E ÁRVORE BINÁRIA DE BUSCA
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática
Leia maisProcessos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend
Concorrência Nos sistemas Monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado a esta única tarefa. Os recursos como memória, processador e dispositivos
Leia maisIntrodução aos Métodos Numéricos
Introdução aos Métodos Numéricos Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo específico Sistemas de Equações Lineares. Métodos Iterativos
Leia maisAnálise de algoritmos
Análise de algoritmos Heapsort Conteúdo Introdução A estrutura de dados heap Definição Manutenção da propriedade de heap A construção de um heap O algoritmo heapsort Exercícios Referências Introdução Heapsort
Leia maisDecisões arquiteturais importantes. Projeto arquitetural x projeto de algoritmos. Decomposição de dados. Decomposição de dados
Processamento Paralelo Técnicas de Decomposição de Problemas Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) Decisões arquiteturais importantes 1. Divisão de responsabilidades entre partes (componentes)
Leia maisLinguagens de Programação
Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação Linguagens de Programação Professor Responsável: Luiz Affonso Henderson Guedes de Oliveira Prof.
Leia maisOpenMP: Variáveis de Ambiente
Treinamento OpenMP C/C++ 1 TREINAMENTO OpenMP C/C++ Módulo 1 Computação de Alto Desempenho Módulo 2 OpenMP: Construtores Paralelos Módulo 3 OpenMP: Diretivas de sincronização Módulo 4 OpenMP: Funções de
Leia maisOrganização de Sistemas Computacionais Processadores: Organização da CPU
Universidade Paulista UNIP Curso: Ciências da Computação Turma: CCP30 Turno: Noturno Disciplina: Arquitetura de Computadores Professor: Ricardo Loiola Alunos: Thiago Gomes dos Santos Matrícula: C63873-0
Leia mais6. Controle por Aprendizado Neuro-Fuzzy
6. Controle por Aprendizado Neuro-Fuzzy 6.1. Introdução Neste capítulo é apresentado o controle por aprendizado utilizando um sistema híbrido Neuro-Fuzzy, para o cálculo e atualização dos pontos de reversão
Leia maisEstruturas de Dados Algoritmos
Estruturas de Dados Algoritmos Prof. Eduardo Alchieri Algoritmos (definição) Sequência finita de instruções para executar uma tarefa Bem definidas e não ambíguas Executáveis com uma quantidade de esforço
Leia mais