IMPLEMENTAÇÃO DE UM CLUSTER DE COMPUTADORES PARA ACELERAR O PROCESSO DE COMPARAÇÃO DE BASES DE PROTEÍNAS E NUCLEOTÍDEOS   ...
Objetivo <ul><li>Implementar um  cluster  não dedicado do tipo  Beowulf , utilizando computadores de configuração simples,...
Introdução <ul><li>O que é um Cluster ? </li></ul><ul><li>A palavra cluster vem do inglês, e significa “ Aglomerar  ,  Agr...
História <ul><li>Thomas Sterling e Donald J. Becker - Goddard Space Flight Center (NASA)  </li></ul><ul><li>1994 - Necessi...
Componentes de um cluster <ul><li>Nós (computadores)  </li></ul><ul><li>Software – Sistema Operacional  </li></ul><ul><li>...
Nós <ul><li>O número de nós determina a eficiência de um cluster. </li></ul><ul><li>Quanto mais nós ligados ao sistema, ma...
 
Software + Pacotes <ul><li>Um sistema operacional  comum, GNU/linux </li></ul><ul><li>Pacotes adicionais:  </li></ul><ul><...
Software + Pacotes <ul><li>Monitoramento ( Ganglia ) </li></ul><ul><ul><li>Software de monitoramento do sistema: </li></ul...
 
Rede <ul><li>É utilizada uma rede de comunicação baseada em  switches  de alta velocidade; </li></ul><ul><li>Transmissão s...
 
Servidor <ul><li>O servidor é a peça principal de um cluster </li></ul><ul><li>É responsável por gerenciar e distribuir to...
 
Middleware <ul><li>Camada intermediária de software entre o sistema Operacional e as aplicações distribuídas  </li></ul><u...
Middleware - MPI <ul><li>MPI – ( Message Passing Interface ) </li></ul><ul><li>Biblioteca com funções de troca de mensagen...
Middleware - MPI <ul><li>O  MPI  define um conjunto de rotinas para facilitar a troca de dados e sincronização entre proce...
Tipos de clusters <ul><li>Existem três tipos de aplicações para um  cluster  : </li></ul><ul><ul><li>TOLERÂNCIA DE FALHAS ...
CLUSTER - PROCESSAMENTO PARALELO <ul><li>Famosos clusters   Beowulf   </li></ul><ul><li>Nesta aplicação o trabalho é divid...
 
Categorias <ul><li>Os  clusters  são divididos em duas categorias:   </li></ul><ul><li>Alta Disponibilidade ( HÁ – High Av...
Categorias <ul><li>Alta Performance de Computação ( HPC – High Performance Computing )   </li></ul><ul><li>É a categoria d...
Implementação: <ul><li>Servidor:  Acer Altus 22000, 4 x 700 Mhz, 80 Gb HD e 6 Gb memória RAM   </li></ul><ul><li>Nós:  Int...
 
 
Implementação: <ul><li>Instalação do pacote  NFS ( network file system )  no servidor e nos nós do cluster </li></ul><ul><...
Implementação: <ul><li>Foi feita uma atribuição de nomes e endereços de IP   para cada máquina do sistema </li></ul><ul><l...
Implementação: <ul><li>Instalação do pacote  SSH </li></ul><ul><li>Relacionamento de confiança entre as máquinas. </li></u...
Implementação: <ul><li>Instalação do pacote  MPI  no servidor na pasta  /cluster .  </li></ul><ul><li>Deste ponto em diant...
Implementação: <ul><li>Instalação do software de gerenciamento  Ganglia  para monitorar o funcionamento do sistema de form...
Instalação pacote BLAST <ul><li>O pacote do programa BLAST foi baixado do site da NCBI  http ://www. ncbi . nlm . nih . go...
Bases de proteínas <ul><li>Aumento do número de seqüências de proteínas e nucleotídeos coletados em laboratório </li></ul>...
Configurações finais <ul><li>Formam baixadas cinco seqüências em formato  FASTA  da proteína  fosfolipase  e salvamos em u...
Configurações finais <ul><li>Foram baixadas mais quatro seqüências em formato  FASTA  e salvamos em outro arquivo texto no...
Configurações finais <ul><li>Depois de estruturadas as seqüências da proteína em dois arquivos diferentes Foi feita a form...
Execução da comparação <ul><li>Executamos o comando: </li></ul><ul><li>mpirun -np 27 /cluster/bin/mpiblast -p blastp -d ar...
Análise de resultados <ul><li>Podemos analisar na figura a seguir a quebra dos processos entre as máquinas do cluster, os ...
Análise de resultados <ul><li>Para motivo de comparação, rodamos a mesma comparação, dos mesmos arquivos em uma maquina de...
 
Upcoming SlideShare
Loading in...5
×

Apresentação Monografia

2,759

Published on

slides finais de minha apresentação de TCC.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,759
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
121
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Apresentação Monografia

  1. 1. IMPLEMENTAÇÃO DE UM CLUSTER DE COMPUTADORES PARA ACELERAR O PROCESSO DE COMPARAÇÃO DE BASES DE PROTEÍNAS E NUCLEOTÍDEOS Leon Daniel Xavier Homar
  2. 2. Objetivo <ul><li>Implementar um cluster não dedicado do tipo Beowulf , utilizando computadores de configuração simples, para acelerar o processo de comparação de bases de proteínas no laboratório de bioinfomática da Universidade de Ribeirão Preto. </li></ul>
  3. 3. Introdução <ul><li>O que é um Cluster ? </li></ul><ul><li>A palavra cluster vem do inglês, e significa “ Aglomerar , Agrupar ”. </li></ul><ul><li>um conjunto de processadores que se comunicam através de uma rede de interconexão e que utilizam um software específico para sistemas distribuídos </li></ul><ul><li>Computadores mono ou multiprocessados </li></ul><ul><li>Conexão em rede a um servidor </li></ul><ul><li>Gerenciamento e distribuição de tarefas aos computadores (nós). </li></ul>
  4. 4. História <ul><li>Thomas Sterling e Donald J. Becker - Goddard Space Flight Center (NASA) </li></ul><ul><li>1994 - Necessidade de supercomputador - 1Gigaflop </li></ul><ul><li>1Gigaflops = 1 bilhão de operações de ponto flutuante por segundo </li></ul><ul><li>16 computadores pessoais, processadores 486DX4 </li></ul><ul><li>GNU/Linux </li></ul><ul><li>Rede Ethernet </li></ul><ul><li>Resultado =70 megaflops </li></ul><ul><li>1/10 do valor cobrado pelo mercado para um sistema de desempenho similar </li></ul><ul><li>1996 - 16 Pentiuns Pro = 1 Gigaflop - US$50.000 </li></ul>
  5. 5. Componentes de um cluster <ul><li>Nós (computadores) </li></ul><ul><li>Software – Sistema Operacional </li></ul><ul><li>Rede </li></ul><ul><li>Servidor </li></ul><ul><li>Middleware (MPI) </li></ul>
  6. 6. Nós <ul><li>O número de nós determina a eficiência de um cluster. </li></ul><ul><li>Quanto mais nós ligados ao sistema, mais poderoso e eficiente será o cluster. </li></ul><ul><li>O aumento do número de nós do sistema representa uma diminuição significativa no numero de tarefas a serem processadas por nó. </li></ul><ul><li>É comum a utilização de computadores (nós) com configurações de hardware semelhantes ou iguais ( cluster Homogêneo ). </li></ul><ul><li>Mas também é possível utilizar computadores com configurações de hardware diferentes. ( Heterogêneos ) </li></ul>
  7. 8. Software + Pacotes <ul><li>Um sistema operacional comum, GNU/linux </li></ul><ul><li>Pacotes adicionais: </li></ul><ul><li>NFS ( network file system ) </li></ul><ul><ul><li>Sistema de Arquivos em Rede, permite que um sistema compartilhe seus diretórios e arquivos com outros sistemas através de uma rede </li></ul></ul><ul><li>SSH ( remote login ) </li></ul><ul><ul><li>Login remoto sem senha entre servidor e nós do cluster </li></ul></ul><ul><li>Softwares instalados no servidor para gerenciar a distribuição de tarefas entre os nós do sistema. </li></ul><ul><li>Ferramentas de gerenciamento e visão centralizada de todos os nós do cluster . </li></ul>
  8. 9. Software + Pacotes <ul><li>Monitoramento ( Ganglia ) </li></ul><ul><ul><li>Software de monitoramento do sistema: </li></ul></ul><ul><ul><li>Processamento, memória, rede... </li></ul></ul>
  9. 11. Rede <ul><li>É utilizada uma rede de comunicação baseada em switches de alta velocidade; </li></ul><ul><li>Transmissão simultânea de pacotes pertencentes a diferentes pares de comunicação a altas taxas de transmissão. </li></ul><ul><li>As redes mais utilizadas são a Fast ethernet e gigabit ethernet </li></ul><ul><li>Protocolos de transmissão de dados: </li></ul><ul><li>TCPIP </li></ul><ul><li>Costuma ser o gargalo do sistema </li></ul>
  10. 13. Servidor <ul><li>O servidor é a peça principal de um cluster </li></ul><ul><li>É responsável por gerenciar e distribuir todas as tarefas para os nós do sistema. </li></ul><ul><li>Recebe as tarefas processadas de cada nó e as monta como um quebra cabeça, gerando o resultado final do processamento. </li></ul><ul><li>Com a ajuda de Software, é capaz de identificar e isolar problemas ocorridos no sistema. </li></ul><ul><li>E capaz de gerenciar todos no nós do sistema através de login remoto ( SSH ) </li></ul>
  11. 15. Middleware <ul><li>Camada intermediária de software entre o sistema Operacional e as aplicações distribuídas </li></ul><ul><li>Possibilita que um mesmo aplicativo utilize os recursos computacionais de mais de uma máquina ao mesmo tempo, através de protocolos de comunicação. </li></ul><ul><li>Responsável por oferecer uma ilusão de um sistema único </li></ul><ul><li>(SSI – Single System Image ) </li></ul><ul><li>redução na complexidade do sistema </li></ul><ul><li>facilita a integração entre as aplicações </li></ul><ul><li>É a alma do desenvolvimento dos aplicativos para os clusters GNU/Linux </li></ul>
  12. 16. Middleware - MPI <ul><li>MPI – ( Message Passing Interface ) </li></ul><ul><li>Biblioteca com funções de troca de mensagens, responsável pela comunicação e sincronização de processos em um cluster paralelo </li></ul><ul><li>É constituído por um padrão de troca de mensagens com sintaxe definida </li></ul><ul><li>O principal objetivo do MPI é otimizar a comunicação e aumentar o desempenho computacional das máquinas </li></ul><ul><li>Não possui gerenciamento dinâmico de processos e processadores </li></ul><ul><li>Biblioteca mais nova e mais utilizada atualmente </li></ul>
  13. 17. Middleware - MPI <ul><li>O MPI define um conjunto de rotinas para facilitar a troca de dados e sincronização entre processos em memória </li></ul>
  14. 18. Tipos de clusters <ul><li>Existem três tipos de aplicações para um cluster : </li></ul><ul><ul><li>TOLERÂNCIA DE FALHAS </li></ul></ul><ul><li>Dois ou mais computadores ligados entre si </li></ul><ul><li>um computador faz todo o trabalho (Servidor) </li></ul><ul><li>Os outros se limitam a manter seus dados atualizados (Escravos) </li></ul><ul><ul><li>BALANCEAMENTO DE CARGA </li></ul></ul><ul><li>Neste caso há pelo menos três computadores, </li></ul><ul><li>O primeiro recebe todas as requisições e se encarrega de dividi-las entre os demais computadores. </li></ul><ul><ul><li>PROCESSAMENTO PARALELO </li></ul></ul>
  15. 19. CLUSTER - PROCESSAMENTO PARALELO <ul><li>Famosos clusters Beowulf </li></ul><ul><li>Nesta aplicação o trabalho é dividido em pequenas partes, </li></ul><ul><li>Processado de forma distribuída </li></ul><ul><li>Finalmente é montado gerando o trabalho final </li></ul><ul><li>Áreas de Utilização: </li></ul><ul><li>É muito utilizado em aplicações científicas </li></ul><ul><li>Cálculos complexos e que exigem muita carga de processamento </li></ul><ul><li>Animações e efeitos especiais destinados a filmes onde existe um gigantesco volume de dados a serem processados . </li></ul>
  16. 21. Categorias <ul><li>Os clusters são divididos em duas categorias: </li></ul><ul><li>Alta Disponibilidade ( HÁ – High Availability ) </li></ul><ul><li>Tem a finalidade de manter um serviço funcionando de forma segura e contínua o maior tempo possível </li></ul><ul><li>Mesmo havendo falha de algum software ou hardware. </li></ul><ul><li>Trabalham em conjunto para manter um serviço ou equipamento sempre ativo, </li></ul><ul><li>Replicando serviços e servidores, </li></ul><ul><li>Evitando máquinas paradas e ociosas. </li></ul><ul><li>Utilizada em empresas que possuem sistemas que não podem parar, </li></ul><ul><li>Ex: sistema de comércio eletrônico </li></ul>
  17. 22. Categorias <ul><li>Alta Performance de Computação ( HPC – High Performance Computing ) </li></ul><ul><li>É a categoria designada a prover grande poder computacional, </li></ul><ul><li>Oferece maior capacidade de processamento que um computador só seria capaz de oferecer. </li></ul><ul><li>Tem como foco o desenvolvimento de supercomputadores, </li></ul><ul><li>Algoritmos de processamento e construções de aplicações paralelas. </li></ul><ul><li>Utilizado em aplicações científicas onde há a necessidade de processamento de grandes volumes de dados. </li></ul>
  18. 23. Implementação: <ul><li>Servidor: Acer Altus 22000, 4 x 700 Mhz, 80 Gb HD e 6 Gb memória RAM </li></ul><ul><li>Nós: Intel Pentium 3, 700 Mhz, 20 Gb HD e 128 Mb memória RAM </li></ul><ul><li>Rede fast ethernet 100megabits </li></ul><ul><li>Sistema Operacional: </li></ul><ul><li>GNU/Linux Debian, kernell 2.6.8 </li></ul>
  19. 26. Implementação: <ul><li>Instalação do pacote NFS ( network file system ) no servidor e nos nós do cluster </li></ul><ul><li>Criação e compartilhamento da pasta /Cluster </li></ul><ul><li>Todos os arquivos e programas utilizados para rodar no cluster foram baixados para esta pasta </li></ul><ul><li>(MPI, ganglia, BLAST) </li></ul>
  20. 27. Implementação: <ul><li>Foi feita uma atribuição de nomes e endereços de IP para cada máquina do sistema </li></ul><ul><li>Através da configuração do arquivo hosts em /etc/hosts de cada maquina do cluster : </li></ul><ul><li>127.0.0.1 localhost localhost.localdomain </li></ul><ul><li>192.168.0.1 bioinf01 bioinf01.unaerp.br </li></ul><ul><li>192.168.0.2 bioinf02 bioinf02.unaerp.br </li></ul><ul><li>192.168.0.3 bioinf03 bioinf03.unaerp.br </li></ul><ul><li>192.168.0.4 bioinf04 bioinf04.unaerp.br </li></ul><ul><li>192.168.0.5 bioinf05 bioinf05.unaerp.br </li></ul>
  21. 28. Implementação: <ul><li>Instalação do pacote SSH </li></ul><ul><li>Relacionamento de confiança entre as máquinas. </li></ul><ul><li>Instalação deste pacote no servidor e nós do cluster </li></ul><ul><li>Gerada uma chave publica de 1024 bits no servidor e exportada para os nós do cluster </li></ul><ul><li>Acesso remoto do servidor para todos os nós do sistema. </li></ul><ul><li>O servidor passa ser capaz de enviar processos para os nós sem a necessidade de senha para acesso. </li></ul>
  22. 29. Implementação: <ul><li>Instalação do pacote MPI no servidor na pasta /cluster . </li></ul><ul><li>Deste ponto em diante, passamos a trabalhar somente no servidor de forma centralizada. </li></ul><ul><li>Configuração do arquivo machines.LINUX em /cluster/share/machines.LINUX </li></ul><ul><li>127.0.0.1 localhost </li></ul><ul><li>192.168.0.1:2 bioinf01 </li></ul><ul><li>192.168.0.2 bioinf02 </li></ul><ul><li>192.168.0.3 bioinf03 </li></ul><ul><li>192.168.0.4 bioinf04 </li></ul><ul><li>192.168.0.5       bioinf05 </li></ul>
  23. 30. Implementação: <ul><li>Instalação do software de gerenciamento Ganglia para monitorar o funcionamento do sistema de forma centralizada </li></ul>
  24. 31. Instalação pacote BLAST <ul><li>O pacote do programa BLAST foi baixado do site da NCBI http ://www. ncbi . nlm . nih . gov /BLAST </li></ul><ul><li>As primeiras comparações de bases de proteínas foram realizadas. </li></ul><ul><li>Foi baixado o pacote MPIBLAST para a pasta /cluster e foi compilado o software </li></ul><ul><li>Após a instalação do pacote o programa BLAST pode ser executado em um sistema distribuído </li></ul>
  25. 32. Bases de proteínas <ul><li>Aumento do número de seqüências de proteínas e nucleotídeos coletados em laboratório </li></ul><ul><li>Necessidade crescente de que os programas de computador fornecessem uma maneira mais rápida de comparar seqüencialmente as bases de dados das novas seqüências </li></ul><ul><li>Organização das seqüências de proteínas e nucleotídeos em arquivos de texto de forma padronizada - Formato FASTA </li></ul>Arquivo FASTA da proteína de identificação 1ABT
  26. 33. Configurações finais <ul><li>Formam baixadas cinco seqüências em formato FASTA da proteína fosfolipase e salvamos em um arquivo texto nomeado arq1.txt </li></ul>
  27. 34. Configurações finais <ul><li>Foram baixadas mais quatro seqüências em formato FASTA e salvamos em outro arquivo texto nomeado arq2.txt </li></ul>
  28. 35. Configurações finais <ul><li>Depois de estruturadas as seqüências da proteína em dois arquivos diferentes Foi feita a formatação dos dois arquivos para a execução no MPIBLAST: </li></ul><ul><li>formatdb -i arq1.txt -o F -p T </li></ul><ul><li>Executamos esta linha de código: </li></ul><ul><li>blastall -p blastp -d arq1.txt -i arq2.txt > resultado.txt, </li></ul><ul><li>para indicar um arquivo de saída para o resultado da comparação. </li></ul>
  29. 36. Execução da comparação <ul><li>Executamos o comando: </li></ul><ul><li>mpirun -np 27 /cluster/bin/mpiblast -p blastp -d arq1.txt -i arq2.txt > resultado.txt </li></ul><ul><li>para realizar a comparação entre os dois arquivos e gerar um relatório como resultado em um arquivo texto nomeado resultado.txt </li></ul>
  30. 37. Análise de resultados <ul><li>Podemos analisar na figura a seguir a quebra dos processos entre as máquinas do cluster, os respectivos tempos de processamento e utilização de processador nas maquinas </li></ul>Tempo total de processamento =14,26 segundos
  31. 38. Análise de resultados <ul><li>Para motivo de comparação, rodamos a mesma comparação, dos mesmos arquivos em uma maquina de configuração simples </li></ul><ul><li>(Athlon XP 1.7 Ghz, 128 Mb RAM e 20 Gb de HD) utilizando o BLAST e obtivemos o resultado em 29.12 segundos </li></ul><ul><li>O cluster foi eficiente para a redução do tempo te comparação de dois arquivos com 9 bases de proteínas </li></ul><ul><li>Atualmente esta funcionando no laboratório de Bioinformática da UNAERP para pesquisas de alunos e professores </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×