Algoritmos Paralelos Eficientes para Alguns Problemas em Proce. Caracteres

Documentos relacionados
Computação paralela para problemas em Biologia

O estado de arte: a evolução de computação de alto desempenho

O Desafio do Projeto de Algoritmos Paralelos

Evolução da Computação de Alto Desempenho na Ótica da Lista. ou (Se um processador já é rápido, imaginem um sistema com processadores :-)

Introdução ao Processamento de Alto Desempenho

List Ranking: Solução probabilística. Baseado na dissertação de mestrado de Guilherme Pereira Vanni Orientador: Prof.

Medida de desempenho

Arquiteturas Paralelas

Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos

Profa. Dra. Viviane Nogaroto

Paralelismo em Computadores com Tecnologia Multicore

TRANSCRIÇÕES GÊNICAS. BIOLOGIA Keffn Arantes

Análise de algoritmos

DNA, Cromossomos e Replicação. Capítulos 5 e 6 (pág ) - Fundamentos da Biologia Celular - Alberts- 2ª edição

Análise de algoritmos

BIOLOGIA Prof. André Fozzy

Gene de um organismo Eukariota. Intrões. Codão STOP UTR 5 3. Codão ATG. Exões. Transcrição. 5 Cap 3 poly-a. Splicing. Proteína 3/17/2005 3

Análise de algoritmos. Parte I

What is? Eduardo Viola Nicola Disciplina de IPPD

Paralelização Eficiente para o Algoritmo Binário de Exponenciação Modular

a complexidade no desempenho de algoritmos

Bioinformática. Conceitos Fundamentais de Biologia Molecular. Paulo Henrique Ribeiro Gabriel

Avaliação de Desempenho

ALGORITMOS AVANÇADOS UNIDADE I Análise de Algoritmo - Notação O. Luiz Leão

ESTRUTURA E FUNÇÃO DOS GENES E CROMOSSOMOS

INPE Outubro, Fabiana. S. Santana, César Bravo, Antonio. M. Saraiva Projeto:

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído

Análise de algoritmos. Parte I

Universidade Federal de Alfenas

Como programar um computador com processadores? ou: Oportunidades e Desafios da Computação Paralela

Aula 1. Teoria da Computação III

Modelos para Concorrência

ARQUITETURA DE COMPUTADORES

OpenMP: Variáveis de Ambiente

Algoritmo. Exemplo. Definição. Programação de Computadores Comparando Algoritmos. Alan de Freitas

Projeto e Análise de Algoritmos. Introdução. Prof. Ademir Constantino Universidade Estadual de Maringá Departamento de Informática

Nem todos os problemas algorítmicos que podem ser resolvidos em princípio podem ser resolvidos na prática: os recursos computacionais requeridos

TRADUZINDO O CÓDIGO GENÉTICO. Aula teórica 6. Maria Carolina Quecine Departamento de Genética LGN0114 Biologia Celular

Programação de Computadores

Teoria da Computação Aula 8 Noções de Complexidade

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva

Síntese de RNA e Proteínas

Análise e Projeto de Algoritmos

Análise de Algoritmos Estrutura de Dados II

Núcleo. Vera Andrade Robert Brown (1833) descreveu o núcleo celular

PCC104 Projeto e Análise de Algoritmos

Informática I. Aula 14. Aula 14-10/10/2007 1

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Introdução à Computação: Sistemas de Computação

ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

Complexidade de Tempo e Espaço

SSC PROGRAMAÇÃO CONCORRENTE. Aula 03 Terminologia Geral de Computação Paralela Prof. Jó Ueyama

Programação de Computadores

Desempenho. Na otimização do projeto, as métricas mais importantes são custo e desempenho. Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 1

Resolução de Problemas com Computador. Resolução de Problemas com Computador. Resolução de Problemas com Computador

Exemplo de Arquitetura: Cliente/Servidor com Mestre e Escravos. Interface. Fator de speed-up. Speed-up

iversidade Federal do Rio Grande do Sul PARALELISMO NA LINGUAGEM HASKELL Vagner Franco Pereira Rodrigo Machado Lucas Mello Schnorr

Preliminares. Profa. Sheila Morais de Almeida. agosto

Modelo de Programação Paralela

Estrutura da Apresentação. Introdução ao Processamento Paralelo e Distribuído. Conceitos em PPD. Conceitos em PPD 4/26/09.

15/03/2018. Professor Ariel da Silva Dias Algoritmo e Contagem de Instruções. Prof. Ariel da Silva Dias -

Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação

Análise e Projeto de Algoritmos

BIOLOGIA. Moléculas, Células e Tecidos Transcrição e Tradução. Prof. Daniele Duó

Teoria da computabilidade Indecidíveis Decidíveis

SSC510 Arquitetura de Computadores. 6ª aula

de petróleo. Um novo domínio chamado computação de propósito geral em processadores gráficos (GPGPU) surgiu quando os pipelines de gráficos de

Estruturas de Dados Algoritmos

UNIVERSIDADE FEDERAL DO PARÁ PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO DIRETORIA DE PESQUISA PROGRAMA INSTITUCIONAL DE BOLSAS DE INICIAÇÃO CIENTÍFICA

MCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core

APRESENTAÇÃO. Slides baseados no material de Marco A. Zanata Alves - UFPR (2016) Curso: CI316 Programação Paralela INTEL MODERN CODE PARTNER 1

Organização e Arquitetura de Computadores I

Transcrição é a primeira etapa da expressão do gene. Envolve a cópia da sequência de DNA de um gene para produzir uma molécula de RNA

Introdução aos Conceitos de Computação Paralela através da estimativa de Pi

O Que Veremos. Introdução. Introdução. Definindo Desempenho. Definindo Desempenho. Avaliando e Compreendendo o Desempenho

Computadores e Programação (DCC/UFRJ)

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado

UM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1

Duplicação do DNA e Síntese de PROTEÍNAS

4) Defina o que vem a ser um algoritmo, e porque, o mesmo depende do processo.

Análise e Projeto de Algoritmos

Definindo melhor alguns conceitos

Construção de Algoritmos II Aula 06

COLÉGIO PEDRO II CAMPUS TIJUCA II. DEPARTAMENTO DE BIOLOGIA E CIÊNCIAS COORD.: PROFa. CRISTIANA LIMONGI

Transcrição e tradução QBQ 102

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136

Núcleo interfásico. Patricia Coltri

SSC PROGRAMAÇÃO CONCORRENTE

Carlos Eduardo Batista Centro de Informática - UFPB

Dados Moleculares x Morfológicos

MATRIZ CURRICULAR BACHARELADO EM ENGENHARIA DA COMPUTAÇÃO. 1º Período

Aluno de Pós-Graduação em Engenharia de Software para Dispositivos Móveis pela UNINTER

The future is parallel but it may not be easy

PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Transcrição:

lgoritmos Paralelos Eficientes para lguns Problemas em Processamento de Cadeias de Caracteres JI/SBC 2007 - Rio de Janeiro Parte 1

gradecimentos O material deste curso é baseado em trabalhos publicados conjuntamente com os Professores Edson Norberto Cáceres e Carlos Eduardo Rodrigues lves. s pesquisas realizadas contaram com o apoio do CNPq e FPESP. gradecimentos também são devidos aos organizadores da JI e aos revisores anônimos.

Computação Paralela - Oportunidade O que já temos ou que está no horizonte: Sistemas de computação maciçamente paralelos serão cada vez mais comuns. Clusters Beowulf baseados em arquiteturas abertas tornam o uso da Computação Paralela cada vez mais popular. Novas arquiteturas de processadors: multi-core: Intel já anunciou o lançamento de um chip com 80 processadores, um trilhão de operações aritméticas por segundo (1 TFLOPS). Médio ou longo prazo: Novas arquiteturas eficientes em energia e tecnologias que não são baseadas em silício.

Computação Paralela - Dificuldades Dificuldade de lidar com paralelismo: como projetar um programa eficiente para centenas ou milhares de processadores? Uma forma é o desenvolvimento de compiladores que fazem a paralelização automática a partir de um código sequencial. É a forma ideal. Mas temos muito pouco progresso.

Outra forma: para cada problema, um algoritmo paralelo Para cada problema com alta demanda computacional, projetar um programa paralelo eficiente. O progresso também deixa a desejar. Conseguimos lidar com aplicações trivialmente paralelizáveis. Para muitas aplicações, levamos tempo demais para obter uma solução paralela eficiente. Muitos algoritmos paralelos desenvolvidos não são escaláveis.

Computação Paralela - Desafios Computação Paralela será regra e não exceção. Necessidade de formar profissionais capazes de projetar algoritmos paralelos eficientes e escaláveis. Descobrir novas aplicações com alta demanda computacional que podem tirar proveito do paralelismo maciço. Criar novos (?) modelos de computação, novos (?) paradigmas de programação paralela ou novas (?) linguagens de programação paralela.

Objetivos deste Mini-Curso Este curso mostra: importância de adotar modelos de computação paralela adequada. Um bom algoritmo paralelo requer um estudo cuidadoso das característica do problema. Vamos ilustrar isso mostrando como desenvolver algoritmos paralelos para dois importantes problemas em processamento de cadeias.

Os Dois Problemas Problema de Todas Subseqüências Maximais Caso particular: Problema de Subseqüência Máxima Problema de Toda-Subcadeia Subseqüência Comum Mais Longa Caso particular: Problema de Subseqüência Comum Mais Longa

Vários Conceitos Importantes ntes de iniciar a discussão dos dois problemas e suas soluções paralelas vamos introduzir alguns conceitos preliminares.

Biologia Computacional Os problemas que vamos examinar lidam com seqüências (e.g. de DN ou amino-ácidos) e têm importantes aplicações em Biologia Computacional. seguir vamos dar uma introdução muito sucinta de conceitos como DN, genes, etc.

CC CC CC Chromosome Chromosome Nucleus Chromatid Chromatid Telomere Centromere Cell Telomere Histones Base Pairs T T T DN(double helix) National Institutes of Health National Human enome Research Institute Division of Intramural Research Uma pessoa tem trilhões de células. Em cada célula há 2 conjuntos de 23 cromosomos cada.

Sky - Spectral Karyotype National Institutes of Health National Human enome Research Institute Division of Intramural Research O DN completo (genoma) humano tem 3 bilhões de bases (representadas pelas letras, T, C e ).

DN dvanced P P S S T Base pairs Hydrogen bonds T C Sugarphosphate backbone Sugarphosphate backbone S S S P P P P S T S P P P S S C Base pair C S S P P P S Nucleotide National Institutes of Health National Human enome Research Institute Division of Intramural Research Todo o DN no núcleo de uma célula mede mais que 1 m.

ene Exon ene Intron Exon National Institutes of Health National Human enome Research Institute Division of Intramural Research Um gene é o código responsável pela síntese de proteína. Há cerca de 100 mil genes no ser humano.

ene Expression DN Nuclear membrane mrn Transcription Mature mrn mino acid Transport to cytoplasm mino acid chain (protein) trn Translation nti-codon Codon mrn Ribosome National Institutes of Health National Human enome Research Institute Division of Intramural Research Expressão gênica é o processo de converter uma seqüência de DN de um gene em proteína, pela transcrição em RN mensageiro.

mino acid Primary protein structure is sequence of a chain of amino acids mino cids mino group Phe Leu Ser Cys H NH 2 C R R group COOH cidic carboxyl group mino cid National Institutes of Health National Human enome Research Institute Division of Intramural Research proteína é constituída de uma seqüência de amino-ácidos.

Codon C U C C U U C C U RN Ribonucleic acid C U C C U U C C U Codon 1 Codon 2 Codon 3 Codon 4 Codon 5 Codon 6 Codon 7 National Institutes of Health National Human enome Research Institute Division of Intramural Research C U Codon é o código genético formado por grupo de 3 bases que é transformado em amino-ácido.

Complexidade de um lgoritmo complexidade é a medida de eficiência de um algoritmo. complexidade de um algoritmo é medida pelo número de operações que um algoritmo realiza para resolver um problema. Essa medida é melhor do que medir simplesmente o tempo absoluto, pois o tempo é dependente da máquina, além do algoritmo. complexidade é expressa como uma função do tamanho da entrada, geralmente indicada por n. Tem especial interesse a complexidada assintótica, quando n é considerado muito grande, tendendo a infinito. Usa-se a notação O, por exemplo, O(n) ou O(n 2 ) para mostrar que a complexidade varia linearmente com n (isto é, proporcional a n), ou varia quadraticamente (com o quadrado de n). Quando a complexidade é constante, isto é, não depende de n, então dizemos que a complexidade é O(1).

10000000 n é melhor que 1000n 2 que é melhor que 2 n 5 algoritmos de complexidades T 1 (n) a T 5 (n) resolvem um mesmo problema. Supomos que uma operação leva 1 ms. tabela dá o tempo usado por cada um dos algoritmos. T 1 (n) T 2 (n) T 3 (n) T 4 (n) T 5 (n) n n n log n n 2 n 3 2 n 16 0.016s 0.064s 0.256s 4s 1m 4s 32 0.032s 0.16s 1s 33s 46 dias 512 0.512s 9s 4m 22s 1 dia 13h 10 137 séculos

10000000 n é melhor que 1000n 2 que é melhor que 2 n 5 algoritmos de complexidades T 1 (n) a T 5 (n) resolvem um mesmo problema. Supomos que uma operação leva 1 ms. tabela dá o tempo usado por cada um dos algoritmos. T 1 (n) T 2 (n) T 3 (n) T 4 (n) T 5 (n) n n n log n n 2 n 3 2 n 16 0.016s 0.064s 0.256s 4s 1m 4s 32 0.032s 0.16s 1s 33s 46 dias 512 0.512s 9s 4m 22s 1 dia 13h 10 137 séculos

10000000 n é melhor que 1000n 2 que é melhor que 2 n 5 algoritmos de complexidades T 1 (n) a T 5 (n) resolvem um mesmo problema. Supomos que uma operação leva 1 ms. tabela dá o tempo usado por cada um dos algoritmos. T 1 (n) T 2 (n) T 3 (n) T 4 (n) T 5 (n) n n n log n n 2 n 3 2 n 16 0.016s 0.064s 0.256s 4s 1m 4s 32 0.032s 0.16s 1s 33s 46 dias 512 0.512s 9s 4m 22s 1 dia 13h 10 137 séculos

10000000 n é melhor que 1000n 2 que é melhor que 2 n 5 algoritmos de complexidades T 1 (n) a T 5 (n) resolvem um mesmo problema. Supomos que uma operação leva 1 ms. tabela dá o tempo usado por cada um dos algoritmos. T 1 (n) T 2 (n) T 3 (n) T 4 (n) T 5 (n) n n n log n n 2 n 3 2 n 16 0.016s 0.064s 0.256s 4s 1m 4s 32 0.032s 0.16s 1s 33s 46 dias 512 0.512s 9s 4m 22s 1 dia 13h 10 137 séculos

Complexidade de um algoritmo paralelo Considere um dado problema. Suponha que um algoritmo seqüencial resolve o problema em tempo T seq. Se um algoritmo paralelo usando p processadores resolve o problema em tempo T par, então dizemos que houve um speed-up de T seq /T par. Um caso ideal é um algoritmo paralelo produzir um speed-up de O(p). Por exmemplo tempo seqüencial = O(n) e tempo paralelo = O(n/p).

Modelo CM - Coarse rained Multicomputer Considere a entrada do problema de tamanho O(n). Multicomputador com p processadores, cada um com memória local de tamanho O(n/p). Um algoritmo CM consiste numa alternância de duas rodadas: Rodada de computação: cada processador computa independentemente dos demais. Rodada de comunicação: cada processador pode enviar/receber O(n/p) dados dos demais. meta é minimizar o número de rodadas requeridas, a fim de obter um speed-up linear em p.

Rodada computacao Rodada comunicacao P p 1 P 2 P 1 Comunicacao global P 0 Barreira sincronizacao Computacao local