Paralelismo, ferramentas e aplicações Celso Carneiro Ribeiro Noemi Rodriguez Sérgio Lifschitz Seminário DI/PUC-Rio Maio de 2002 Transparência 1/49 03/maio/2002 Paralelismo, ferramentas e aplicações Paralelismo: evolução • Anos 70: primeiras máquinas paralelas - Illiac IV, 64 processadores) • Anos 80: aparecimento em escala comercial de máquinas paralelas e vetoriais voltadas para aplicações científicas de grande porte (meteorologia, petróleo, etc.) – Cray, CDC Cyber • Diversificação de arquiteturas: SIMD vs. MIMD Memória compartilhada (SM) vs. distribuída (DM) Redes de interconexão (anel, cubo, mesh, shuffle, etc.) Transparência 2/49 03/maio/2002 Paralelismo, ferramentas e aplicações Paralelismo: evolução • Diversificação de fabricantes: Denelcor HEP (DM-MIMD, poucos processadores) Sequent Balance, Encore Multimax (SM-MIMD, poucos processadores) KSR Intel Paragon, Cray T3D (DM-MIMD, centenasmilhares de processadores) MasPar MP-1 e MP-2, Connection Machine CM-1 e CM2 (SIMD síncronas com até 65536 pequenos procs.) • Custos de desenvolvimento, pequena escala, falta de padrões, dificuldades de programação: desaparecimento • Poucos “sobreviventes”: IBM (sistemas SP), SGI-Cray Transparência 3/49 03/maio/2002 Paralelismo, ferramentas e aplicações Paralelismo: evolução • Final dos anos 90 e hoje: Reaparecimento de multiprocessadores a memória compartilhada com até algumas centenas de processadores (SGI Origin) Clusters de máquinas conectadas por redes locais rápidas (escalabilidade, tolerância a falhas, economias de escala, bons índices de custo/benefício) Conexão de múltiplas máquinas através de redes nacionais ou internacionais de velocidade muito alta Transparência 4/49 03/maio/2002 Paralelismo, ferramentas e aplicações Clusters • Coleção de PCs ou estações de trabalho conectadas por uma rede: Componentes comerciais regulares facilmente disponíveis Sistemas operacionais de domínio público (Linux) Redes comuns (Ethernet, Fast Ethernet) ou mais rápidas (Myrinet) Ambientes padrão de software baseados em trocas de mensagens (PVM, MPI) • “Beowulf clusters” com alguns milhares de processadores encontram-se entre as máquinas com maior capacidade de processamento atualmente disponíveis Transparência 5/49 03/maio/2002 Paralelismo, ferramentas e aplicações Grid computing • Enfoque para distribuição de capacidade de processamento: Internet + alto desempenho • Diferentes realizações: grid computing, P2P, metacomputing, web, Internet computing, global computing, web services, etc. • Sistemas distribuídos: “um sistema distribuído é uma coleção de computadores independentes que aparecem para o usuário como um computador único” (Tanenbaum) Transparência 6/49 03/maio/2002 Paralelismo, ferramentas e aplicações Grid computing • Princípios: Internet computing: reaproveitamento do tempo ocioso de milhares de processadores através de um screen-saver (uso não-comercial: SETI@home, Décrypthon) Metacomputing: comprar serviços de cálculo (aplicações pré-instaladas e computadores) sobre a Internet Supercomputador virtual: oferecer um supercomputador paralelo virtual fazendo as aplicações executarem sobre processadores distantes (Globus, Legion, Unicore) • Resultados práticos e aplicações Transparência 7/49 03/maio/2002 Paralelismo, ferramentas e aplicações LabPar - Laboratório de Paralelismo • Configuração do atual cluster do DI: 32 Pentium II 450 Mhz (32 MB RAM e 6.3 GB HD) Switch a 10 Mbits Linux / MPI e PVM / C, C++ e Java • Com a criação do Laboratório de Paralelismo: Expansão para um cluster heterogêneo com 64 nós: mais 32 Pentium IV 1.7 Ghz (256 MB RAM e 40 GB HD) Subredes a diferentes velocidades: 10/100 Mbits • SGI Origin 2 e cerca de 10 novos postos de trabalho para pós-graduandos • Ferramentas e instalações para grid computing Transparência 8/49 03/maio/2002 Paralelismo, ferramentas e aplicações Paralelismo: problemas típicos • • • • • • Ferramentas e linguagens de programação Comunicação e redes Balanceamento de carga Gerenciamento de recursos Confiabilidade Algoritmos para processamento paralelo Transparência 9/49 03/maio/2002 Paralelismo, ferramentas e aplicações Programação Paralela Distribuída Noemi Rodriguez Transparência 10/49 03/maio/2002 Paralelismo, ferramentas e aplicações Sistemas distribuídos • importância atual crescimento de uso com ambiente de redes geográficas forma de baixo custo de provisão de paralelismo • modelos de programação cliente-servidor, peer-to-peer, orientação a eventos, ... • programas distribuídos por diferentes arquiteturas • gerenciamento de distribuição por várias máquinas » gerenciamento de recursos » adaptação dinâmica Transparência 11/49 03/maio/2002 Paralelismo, ferramentas e aplicações Ferramentas para programação • bibliotecas de troca de mensagens MPI, PVM • "bibliotecas" para programação concorrente pthreads • linguagens para programação distribuída abstrações de mais alto nível • linguagens interpretadas Lua Transparência 12/49 03/maio/2002 Paralelismo, ferramentas e aplicações alua • • • • • uso de um paradigma orientado a eventos envio explícito estilo send recebimento gera evento tratamento: execução do trecho recebido modelo de programação dual: coordenação em Lua computação em C Transparência 13/49 03/maio/2002 Paralelismo, ferramentas e aplicações Troca de mensagens B A send(B,"a=1") B A send(B,"send(A,'a='..a)") Transparência 14/49 a=1 03/maio/2002 send(A,'a='..a) Paralelismo, ferramentas e aplicações alua multicanal • eventos podem ter tratamento diferente em cada canal Transparência 15/49 03/maio/2002 Paralelismo, ferramentas e aplicações alua • envio de código permite alterar o comportamento da aplicação em tempo real • modelo assíncrono apropriado para programação de aplicações distribuídas em redes geográficas • modelo de programação dual permite que aproveitemos o melhor de cada mundo... Transparência 16/49 03/maio/2002 Paralelismo, ferramentas e aplicações Trabalhos em andamento • suporte a abstrações específicas espaço de tuplas (canal de comunicação) chamadas remotas de métodos • suporte ao desenvolvimento de aplicações paralelas em ambientes geograficamente distribuídos framework para programação de aplicações adaptativas • uso do alua multicanal para desenvolvimento de aplicações multimidia distribuídas Transparência 17/49 03/maio/2002 Paralelismo, ferramentas e aplicações Bancos de Dados Paralelos, Agentes e Bioinformática Sérgio Lifschitz Transparência 18/49 03/maio/2002 Paralelismo, ferramentas e aplicações Motivação para BD paralelos Contexto VLDB... • Terabytes são realidade (“terror” bytes) • Algumas empresas > 3TB • Full scan 1TB a 10MB/s … mais de 1 dia! • Gargalo I/O: comprar mais hardware… ?!? • Solução ‘cluster’: MPP e off-the-shelf Transparência 19/49 03/maio/2002 Paralelismo, ferramentas e aplicações Aspectos de BD paralelos Alguns itens a considerar... • Shared-something ou shared-nothing • Paralelismo inter/intra query ou intra operação • I/O (consultas simples) ou CPU (complexas)? • Particionamento: faixas, hash e round-robin • Problemas: startup, interferência e desvios Transparência 20/49 03/maio/2002 Paralelismo, ferramentas e aplicações Algumas pesquisas em BDs //s Focos principais … • Consultas e balanceamento de carga • Biocomputação e projeto de BD paralelos … e também ... • Integração dados + aplicações • Sistemas (multi-)agentes Transparência 21/49 03/maio/2002 Paralelismo, ferramentas e aplicações Resultados recentes Junções paralelas... • Junção // com balanceamento preventivo • Agent-based databases (Minibase) ... e em Bioinformática ... • BLAST paralelo • Projeto de BDs distribuídos Transparência 22/49 03/maio/2002 Paralelismo, ferramentas e aplicações Oportunidades … e possibilidades concretas … • Data mining • Gerenciador ad-hoc • Repositórios de biologia computacional • Self-tuning • Streaming data Transparência 23/49 03/maio/2002 Paralelismo, ferramentas e aplicações Observações finais • Dados complexos • Hoje terabytes, breve petabytes • GRIDs para BDs e Biocomputação • Já há primitivas DM e DW … e mais! … SGBDs paralelos já existem ... O LabPar viabiliza alguns projetos! Transparência 24/49 03/maio/2002 Paralelismo, ferramentas e aplicações Metaheurísticas Paralelas e Aplicações: Redes e Biologia Celso Carneiro Ribeiro Transparência 25/49 03/maio/2002 Paralelismo, ferramentas e aplicações Problemas de otimização • Problema: otimizar uma função objetivo definida por variáveis contínuas (intensidades) ou discretas (decisões) e sujeita a um conjunto de restrições • Dificuldade: a grande parte dos problemas de interesse pertence à classe NP-difícil, problemas para os quais não se conhece (e possivelmente não existem) algoritmos exatos eficientes (de complexidade polinomial) • Alternativa: bons algoritmos aproximados eficientes Transparência 26/49 03/maio/2002 Paralelismo, ferramentas e aplicações Metaheurísticas • Paradigmas de estratégias de solução que devem ser instanciadas para cada problema específico, baseadas em técnicas de: Construção de soluções Melhoria de soluções (busca local) • Exemplos: Algoritmos genéticos Simulated annealing Busca tabu GRASP Colônias de formigas, etc. Transparência 27/49 03/maio/2002 Paralelismo, ferramentas e aplicações Metaheurísticas • Algoritmos genéticos: baseados na analogia com o processo de evolução natural, ao longo do qual populações evoluem de acordo com os princípios de seleção natural e de “sobrevivência dos mais adaptados” (evolução das propriedades genéticas da população). • População representada pelos seus cromossomos (soluções): novas soluções são geradas a partir da população corrente e incluídas na população, enquanto outras são excluídas, através de mecanismos de reprodução e de mutação. Transparência 28/49 03/maio/2002 Paralelismo, ferramentas e aplicações Metaheurísticas • Algoritmo genético básico: Gerar população inicial de soluções while .NOT.critério-de-parada do Escolher soluções reprodutoras Fazer o crossover de soluções Gerar mutações de soluções Avaliar a aptidão das novas soluções Atualizar a população end-while Transparência 29/49 03/maio/2002 Paralelismo, ferramentas e aplicações Metaheurísticas paralelas • Paralelização: distribuição dos cálculos entre diferentes processadores que cooperam e trocam informações na busca de melhores soluções • Vantagens: Algoritmos mais robustos (menos dependentes de parâmetros) Problemas maiores, tempos menores, melhores soluções • AGs paralelos: dividir a população original em diversas subpopulações, cujas evoluções ocorrem em paralelo (modelo de ilhas) com trocas dos melhores indivíduos entre as subpopulações (quando? quais? como? etc.) Transparência 30/49 03/maio/2002 Paralelismo, ferramentas e aplicações Roteamento de circuitos virtuais privados • Circuitos virtuais privados (PVCs) entre os pares origem e destino de cada cliente em um backbone • Roteamento de cada cliente feito pelo projetista sem conhecimento de demandas futuras • Ineficiência e necessidade ocasional de rotear os PVCs offline • Problema: minimizar atrasos e congestão, satisfazendo as demandas e restrições de capacidade • Aplicação desenvolvida para a AT&T: melhoria sensível do desempenho e do aproveitamento de redes reais Transparência 31/49 03/maio/2002 Paralelismo, ferramentas e aplicações Roteamento de PVCs Transparência 32/49 03/maio/2002 Paralelismo, ferramentas e aplicações Roteamento de PVCs Transparência 33/49 03/maio/2002 Paralelismo, ferramentas e aplicações Roteamento de PVCs Transparência 34/49 03/maio/2002 Paralelismo, ferramentas e aplicações Roteamento de PVCs Transparência 35/49 03/maio/2002 Paralelismo, ferramentas e aplicações Roteamento de PVCs capacidade máxima = 3 Transparência 36/49 03/maio/2002 Paralelismo, ferramentas e aplicações Roteamento de PVCs capacidade máxima = 3 rerotear Caminho longo! Transparência 37/49 03/maio/2002 Paralelismo, ferramentas e aplicações Roteamento de PVCs capacidade máxima = 3 Transparência 38/49 03/maio/2002 Paralelismo, ferramentas e aplicações Roteamento de PVCs Viável e ótima! Transparência 39/49 03/maio/2002 capacidade máxima = 3 Paralelismo, ferramentas e aplicações Projeto de redes locais de acesso • Construir uma rede de fibras óticas para prover serviços de banda larga a consumidores comerciais e residenciais, levando em consideração o balanceamento entre os custos de construção (colocação das fibras) e os rendimentos potenciais dos clientes atendidos (perda de receita no caso do cliente não ser atendido). • Problema de Steiner com prêmios: aplicação desenvolvida para a AT&T Transparência 40/49 03/maio/2002 Paralelismo, ferramentas e aplicações Projeto de redes locais de acesso rua penalidade nula cliente (prêmio) raiz Transparência 41/49 03/maio/2002 Paralelismo, ferramentas e aplicações Projeto de redes locais de acesso Transparência 42/49 03/maio/2002 Paralelismo, ferramentas e aplicações Projeto de redes a k-caminhos • Dados: Grafo suporte para a construção de uma rede Conjunto de pares origem-destino Custo de construção de cada arco • Problema: construir uma rede de custo mínimo, na qual todos os pares origem-destino são conectados por caminhos usando no máximo k arcos • Para que a confiabilidade da rede seja alta, todos os caminhos devem ser formados por k ≤3 arcos Transparência 43/49 03/maio/2002 Paralelismo, ferramentas e aplicações Roteamento Internet sob protocolo OSPF • Objetivo da engenharia de tráfego: melhor utilização dos recursos da rede • Roteamento de tráfego pode ter um grande impacto na eficiência da utilização dos recursos • OSPF é o protocolo mais comumente utilizado para roteamento intra-domínio Todos os roteadores têm conhecimento completo da rede Roteamento segundo caminhos mais curtos Fluxo igualmente repartido em caso de múltiplos caminhos Transparência 44/49 03/maio/2002 Paralelismo, ferramentas e aplicações Roteamento Internet sob protocolo OSPF • Problema: atribuir pesos [1,65535] às conexões da rede, de forma que o roteamento segundo o protocolo OSPF por um critério de caminho mais curto minimize uma medida de congestão • Algoritmo genético paralelo com soluções melhoradas por busca local • Aplicação desenvolvida para a AT&T, levando a melhorias significativas (tráfego 40% maior) em relação ao critério proposto pela CISCO (pesos proporcionais ao inverso das capacidades) Transparência 45/49 03/maio/2002 Paralelismo, ferramentas e aplicações Problema da filogenia • Uma filogenia é uma árvore que relaciona espécies ou genes homólogos de espécies distintas (taxons) • Dado um conjunto de taxons caracterizados por um conjunto de caracteres, obter uma filogenia com o menor número de passos evolucionários (mudança de um caracter) a b c d e f g • Exemplo: O A B C Transparência 46/49 03/maio/2002 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 Paralelismo, ferramentas e aplicações Problema da filogenia Exemplo: O A B C a 0 1 1 1 b 0 1 1 1 c 0 0 1 1 d 0 0 1 1 e 0 1 1 0 f 0 1 1 0 g 0 1 1 0 Solução com 10 passos: Solução com 9 passos: Transparência 47/49 Paralelismo, ferramentas e aplicações 03/maio/2002 Reconhecimento de imagens médicas • Dados: Uma imagem a ser identificada Um atlas de imagens • Exemplos: Identificação de tumores Reconhecimento facial • Imagens representadas por grafos de atributos relacionais: Nós: regiões das imagens Arestas: relações entre regiões (fronteiras) Atributos: cores, intensidades, etc. Transparência 48/49 03/maio/2002 Paralelismo, ferramentas e aplicações Reconhecimento de imagens médicas • Medidas de similaridade entre pares de nós e entre pares de arestas (imagem-modelo) • Problema: Determinar a imagem do atlas que mais se assemelha à imagem a ser identificada Determinar a correspondência ótima entre as regiões da imagem e as regiões do modelo Transparência 49/49 03/maio/2002 Paralelismo, ferramentas e aplicações