Paralelismo ferramentas e aplicaes Celso Carneiro Ribeiro Noemi
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 T 3 D (DM-MIMD, centenasmilhares de processadores) ðMas. Par MP-1 e MP-2, Connection Machine CM-1 e CM 2 (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, P 2 P, 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
Lab. Par - 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 > 3 TB • Full scan 1 TB a 10 MB/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 Lab. Par 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 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
- Slides: 49