Introdução a Computação Paralela e a Montagem de Clusters.



Documentos relacionados
Computação de Alta Perfomance com Software Livre (Clusters)

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede

Sistemas Operacionais

Arquitetura NUMA 1. Daniel de Angelis Cordeiro. INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França

Introdução às arquiteturas paralelas e taxonomia de Flynn

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

Programação Paralela

Sistemas Paralelos e Distribuídos. Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN

Sistemas Distribuídos

Cluster HPC High Performance Computing.

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Comparação SDs X Scs

Máquinas Multiníveis

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

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

SISTEMAS DISTRIBUÍDOS

Sistemas Operacionais

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

Conteúdo 1 Comandos Básicos. Questão 1: Que comando permite encerrar o sistema definitivamente?

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Administração de Sistemas de Armazenamento Linux. Rodrigo Caetano Filgueira

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Profs. Deja e Andrei

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Tipos de Sistemas Distribuídos (Cluster e Grid)

Desenvolvimento de um Cluster de Alto Desempenho com PVM

ALGORÍTMOS PARALELOS (Aula 2) LCAD. Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

slide 0 Algoritmos Paralelos

Aula 2. Objetivo: Saber qual a funcionalidade de um sistema operacional de rede.

Sistemas Operacionais 1/66

Sistemas Operacionais. Roteiro. Sistemas de Computadores. Os sistemas de computadores são projetados com basicamente 3 componentes: Marcos Laureano

7 Processamento Paralelo

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

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

Sistemas Distribuídos

SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa

Material 5 Administração de Recursos de HW e SW. Prof. Edson Ceroni

Everson Scherrer Borges João Paulo de Brito Gonçalves

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

EAGLE TECNOLOGIA E DESIGN CRIAÇÃO DE SERVIDOR CLONE APCEF/RS

Noções básicas de Informática: Software

Sistemas de Lotes (2) Sistemas de Lotes (3) Layout da MP em Sistemas de Lotes. Minimizar o tempo de resposta

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

Sistemas Operacionais Introdução. Professora: Michelle Nery

1

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 02 - Estrutura dos Sistemas Operacionais. Cursos de Computação

Sistemas Distribuídos Conceitos HW e SW. Edeyson Andrade Gomes

Sistemas Operacionais. Prof. André Y. Kusumoto

ENGENHARIAS E TECNOLOGIAS - Computação e Informática ESTUDO DE APLICABILIDADE DE SISTEMAS FRACAMENTE ACOPLADOS UTILIZANDO HARDWARE DE BAIXO CUSTO

Supercomputadores dominavam o mercado

LCAD. ALGORÍTMOS PARALELOS (Aula 6) Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES.

CLUSTER WEB RESUMO. Palavras-Chave: Cluster Web. Servidores Web. OpenMosix. MigShm.

Palavras-chave Cluster; Beowulf; OpenMosix; MPI; PVM.

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Sistemas Operacionais

Capítulo 8 Arquitetura de Computadores Paralelos

Projetos I Resumo de TCC. Luiz Rogério Batista De Pieri Mat:

Aplicações. Sistema Operacional Hardware. Os sistemas de computadores são projetados com basicamente 3 componentes: Máquinas Virtuais e Emuladores

Prof. Samuel Henrique Bucke Brito

Como Instalar Programas no GNU/Linux. Elexsandro Rangel dos Santos

UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ - UNIOESTE CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CCET CURSO DE BACHARELADO EM INFORMÁTICA

Sistemas Distribuídos

Programação Concorrente Processos e Threads

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

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Classificação de SO (Sistemas Operacionais) Técnico de Informática 2º. Módulo Profa. Madalena Pereira da Silva

Informática I. Aula 5. Aula 5-13/05/2006 1

Introdução à Computação: Sistemas Operacionais II

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Sistemas Operacionais

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Processamento Distribuído em Cluster do Tipo Beowulf

Sistemas Operacionais

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

XDOC. Solução otimizada para armazenamento e recuperação de documentos

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano

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

Evolução na Comunicação de

Virtualização Gerencia de Redes Redes de Computadores II

SISTEMAS DISTRIBUÍDOS

Sistemas Operacionais

Sistema Operacional Correção - Exercício de Revisão

Computação Distribuída de Alto Desempenho. Marcelo Giovani M Souza mgm@cbpf.br

Aula 26: Arquiteturas RISC vs. CISC

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Introdução a Computação

Virtualização de Sistemas Operacionais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais

Sistemas Distribuídos: Conceitos e Projeto Classificação de Sistemas Distribuídos e Middleware

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Transcrição:

Introdução a Computação Paralela e a Montagem de Clusters. Marcelo Souza (marcelo@cebacad.net) Granduando em Sistema da Informação CEBACAD Centro Baiano de Computação de alto Desempenho

Introdução a Computação Paralela e a Montagem de Clusters. Snowflakes are one of nature's most fragile things, but just look at what they can do when they stick together. - Processamento Paralelo - Máquinas Paralelas Virtuais - openmosix vs. Beowulf MPI - Montando um Cluster openmosix - Montando um Cluster Beowulf MPI

Processamento Paralelo - Refere-se ao aumento de velocidade na execução de um programa atráves da divisão deste em pequenos fragmentos. - Obtenção de alto desempenho através da cooperação de processadores na execução simultânea de tarefas. - Necessária em áreas de computação intensiva, tratamento de informações e manipulação de grande volume de dados.

Processamento Paralelo - Grandes Desafios (Grand Challenge) a computação Paralela * Applied Fluid Dynamics * Ecosystem Simulations * Biomedical Imaging and Biomechanics * Molecular Biology * Molecular Design and Process Optimization * Nuclear power and weapons simulations - Executando uma tarefa dividida entre vários processadores se conseguirá executa-la muito mais rápidamente. [DIETZ2000]

Processamento Paralelo - Taxonomia de Flynn: Classificação de Arquiteturas de Computadores baseado no número de streams de instruções e dados: - Single instruction/single data stream (SISD) Computador convencional Sequencial. - Multiple instruction/single data stream (MISD) Não utilizado. - Single instruction/multiple data streams (SIMD) Processadores Vetoriais e/ou Instruções MMX, SSE, SSE2 e etc. - Multiple instruction/multiple data streams (MIMD) Multiplos processadores autonomos processando diferentes instruções em diferentes dados (Computadores Paralelos/Multiprocessados).

Processamento Paralelo

Processamento Paralelo - O conceito de Cluster de computador se refere a um grupo de computadores conectados trabalhando em conjuto. - A idéia foi originalmente desenvolvida pela DEC na década de 80. - n-computadores (n-nodes) interligados e compartilhando recursos possuem n vezes mais recursos.

Processamento Paralelo - Computadores Multiprocessados Vs. Computadores Paralelos. - Computadores Multiprocessados possuem memória compartilhada ente os n-processadores atráves de barramento dedicado e de alta velocidade. - Computadores Paralelos possuem memória distribuida entre os n-nós do Cluster, interligadas atráves de barramento dedicado ou não, geralmente de baixa velocidade.

Processamento Paralelo - Clusters são geralmente utilizados para High Perfomance Computing (HPC) - Clusters podem prover também estrutura para Tolerância a Falha em serviços de missão crítica (two-node cluster). - Buscar-se melhor Custo X Beneficio na Construção de Clusters de Computador.

Processamento Paralelo The Stone SouperComputer http://stonesoup.esd.ornl.gov/

Processamento Paralelo - Top 500 Supercomputers: http://www.top500.org/ - Cluster mais rápido do Mundo: Earth Simulator, simulação de mudanças climáticas. Perfomance de 35.86 Tflops (35.6 trilhões (35,600,000,000,000) de cálculos de ponto flutuante por segundo). - Consiste de 640 nodes, com oito processadores vetoriais, 16 gigabytes de memória em cada node, num total de 5120 processadores e 10 terabytes de memória.

Processamento Paralelo

Máquinas Paralelas Virtuais - Máquinas Paralelas Convencionais são caras e em geral possuem arquitetura fechada. - Alternativa são as Máquinas Paralelas Virtuais (MPV) baseadas em Estações de trabalho (Cluster Computer). - Utilizam de redes de computadores convencionais, locais e/ou remotas, como barramento de comunicação entre nodes.

openmosix vs. Beowulf MPI - São dois os principais paradigmas para a construção de clusters baseados em estações de trabalhos. - OpenMosix e Beowulf baseado em Passagem de Mensagem (MPI). - A solução baseada em passagem de mensagem necessita de codifição explicita com utilização de bibliotecas.

openmosix vs. Beowulf MPI - O Projeto Beowulf foi desenvolvido para a computação de alto desempenho (HPC), utilizando de máquinas de baixo custo interligadas em uma não dedicada (LAN). - Originalmente desenvolvido por Donald Becker nos laboratorios da NASA como solução a recursos escarsos. - Um cluster Beowulf é normalmente um grupo de PCs, identicos, rodando Sistemas Operacionais Livres (GNU/Linux, FreeBSD ou outros). Usando de uma rede TCP/IP e de bibliotecas e programa que permitem o compartilhamento do processamento.

openmosix vs. Beowulf MPI

openmosix vs. Beowulf MPI - O alto custo de desenvolvimento ou adequação de soluções comerciais/ciêntificas existentes dificulta ou impossibilita o uso do Paradigma de Passagem de Mensagem. - openmosix oferece uma solução transparente ao usuário sem necessidade de alteração em códigofonte de qualquer aplicativo.

openmosix vs. Beowulf MPI - openmosix permite a paralelização de processos de maneira transparente ao usuário. - Implementado em forma de Patch no Kernel do Sistema Operacional Linux. - Uma máquina pode se juntar ou sair do cluster a qualquer momento. O openmosix tenta continuamente otimizar o alocamento de recursos.

openmosix vs. Beowulf MPI - Migração Transparente dos Processos do user-space do nó pai (local) para o kernel-space do nó remoto. Não é visivel atráves de ferramentas de controle de processo (ps, top ou outros) - Uso de Algoritmo de Balanceamento de Carga (Load Balance) baseado em lógica do Mercado Financeiro (Menor custo).

openmosix vs. Beowulf MPI - Um Cluster openmosix comporta-se como um sistema multiprocessado distribuindo processos entre os nós do cluster. - Não possibilita a migração de Processos com Memória Compartilhada e/ou ou que possua Multi- Thread. - Processo tem seu mapa de memória destruido e as páginas relacionadas ao nó original recriado no nó remoto.

openmosix vs. Beowulf MPI - migshm é um patch ao openmosix Kernel que possibilita a migração de alguns procesos que utilizam de áreas de memória compartilhada. - Possibilita à migração de processos, tais como Web Servers, Sistemas Gerenciadores de Banco de Dados e outros. - Modelo Eager Release consistency model.

openmosix vs. Beowulf MPI Teste de Perfomance Apache Web Server openmosix + migshm

Montando um Cluster openmosix - Para simular um Cluster podemos utilizar apenas uma máquina atráves da interface de loopback. - Geralmente se utiliza Sistemas Operacionais Unix- Like livres para a construção de Clusters. - O GNU/Linux e/ou FreeBSD são os mais utilizados pois provem um ambiente Robusto, Flexivel, fácil e Barato.

Montando um Cluster openmosix - Download do Kernel 2.4.24: http://www.kernel.org/ - Download do Patch e Ferramantes openmosix: http://openmosix.sourceforge.net/ - Aplicar Patch ao Kernel: patch -p1 < openmosix-2.4.24-om1 - Configurar: make menuconfig

Montando um Cluster openmosix - Configurar/Compilar: openmosixtools - Configurar: openmosix.conf - Configurar: openmosix.map - Ver Script Init: openmosix - Reiniciar o computador - Testar: awk BEGIN { for (i=0;i<10000;i++) for (j=0;j<10000;j++);} - Verificar: mosmon

Montando um Cluster openmosix - openmosix é uma nova solução para a construção dos Computadores de Alta Perfomance e de Baixo Custo com uma abordagem mais transparente ao usuário e altamente eficiente. - Barramento de comunicação tem forte influência na perfomance geral de um Cluster de Computadores. - openmosix ainda não é amplamente utilizado.

Montando um Cluster MPI - MPI (Message Passing Interface) - Sistema de passagem de mensagem padrão. - Clusters visto como um único Sistema de Memória Distribuida. - Mestre e Trabalhador (Paradigma mais utilizado). - Portabilidade. - Baixo Custo.

Montando um Cluster MPI - MPI provê um padrão implementado na forma de Bibliotecas para a construção de Softwares que paralelizem o processamento. - Necessita de codificação explicita. - Solução mais estudada e difundida, permite explorar e desenvolver o conhecimento sobre Computação Paralela. - Utilizado no desenvolvimento de soluções comerciais/ciêntificas. Ex.: MPIBlast, MPIPovray e etc.

Montando um Cluster MPI - Implementação MPICH: http://www-unix.mcs.anl.gov/mpi/mpich/ - Mpich foi desenvolvido durante o processo de padronização do MPI para provê um feedback ao MPI Forum sobre a necessidades destes. - William Gropp e Ewing Lusk

Montando um Cluster MPI - Verificar ssh/sshd - Descompactar: tar -xvzf mpich.tar.gz - Configurar: configure --prefix=/usr -rsh=ssh --with-device=ch_p4 - Compilar: make ; make install

Montando um Cluster MPI - Configurar Chaveiro Confiável : - ssh-keygen -t rsa - cd ~/.ssh - cp id_rsa.pub authorized_keys - Cópia de todas as chaves dos nós - Configurar arquivos: hosts / hosts.allow / hosts.deny

Montando um Cluster MPI - Configurar: machines.linux - Testar: exemplos do mpich

CEBACAD E-Mail: marcelo@cebacad.net http://www.cebacad.net