610 likes | 714 Views
BAH! 2013 7 / Maio / 2013 HPC & Big Data Luiz Monnerat PETROBRAS / TIC-E&P / INFRAEP / CST. Agenda. Introdução: Processamento Sísmico Processamento de Alto Desempenho Escalabilidade Grandes Massas de Dados não Estruturados na Petrobras Filesystems Paralelos Arquiteturas P2P
E N D
BAH! 2013 • 7 / Maio / 2013 • HPC & Big Data • LuizMonnerat • PETROBRAS / TIC-E&P / INFRAEP / CST
Agenda • Introdução: Processamento Sísmico • Processamento de Alto Desempenho • Escalabilidade • Grandes Massas de Dados não Estruturados na Petrobras • Filesystems Paralelos • Arquiteturas P2P • Filesystems P2P • Tabelas Hash Distribuídas (DHTs) • Hadoop • Conclusões
Agenda • Introdução: Processamento Sísmico • Processamento de Alto Desempenho • Escalabilidade • Grandes Massas de Dados não Estruturados na Petrobras • Filesystems Paralelos • Arquiteturas P2P • Filesystems P2P • Tabelas Hash Distribuídas (DHTs) • Hadoop • Conclusão
Processamento Sísmico Gera imagens da subsuperfície da terra É fundamental para as atividades de E&P Usa e gera enormes quantidades de dados não estruturados Não houve uma explosão repentina na quantidade de dados, e sim um crescimento acelerado e contínuo ao longo de décadas.
Processamento dos Dados Sísmicos A geração de informação (imagens de subsuperfície) a partir dos dados sísmicosrequergrandecapacidade de processamento Mais do que disso, o processamentosísmicorequer: MUITA capacidade de processamento MUITA capacidade de armazenamento ALTO desempenho de I/O ALTO desempenho de rede Para satisfazerestesrequisitos, o ProcessamentoSísmicousa o Processamento de Alto Desempenho (HPC) comoumaferramenta fundamental Requisitos também importantes em ambientes Big Data !!!!!
Agenda • Introdução: Processamento Sísmico • Processamento de Alto Desempenho • Escalabilidade • Grandes Massas de Dados não Estruturados na Petrobras • Filesystems Paralelos • Arquiteturas P2P • Filesystems P2P • Tabelas Hash Distribuídas (DHTs) • Hadoop • Conclusão
Processamento de Alto Desempenho O que é Processamento de Alto Desempenho Uso de computadores poderosos para resolver os maiores e mais complexos problemas numéricos Também conhecido como HPC, HPTC ou Supercomputação Onde a HPC é usada? Pra que serve? Metereologia Simulações Nucleares Avaliação de riscos em mercados Processamento Sísmico etc. Os maiores supercomputadores do mundo são rankeados segundo a lista TOP500
TOP500 TOP500: A lista “Fortune 500” da HPC www.top500.org 500 maiores computadores do mundo para cálculos numéricos Publicada duas vezes ao ano desde 1993 “sub-listas”: TOP5, TOP10, TOP100, etc. A Petrobras apareceu algumas vezes Em 2005 tínhamos duas máquinas, sendo uma no TOP100 Desde 2012 temos uma máquina no TOP100 (grifo04) Permite acompanhamento de históricos
TOP500: Sistemas Operacionais Figura extraída de top500.org
TOP500: Arquitetura dos Supercomputadores Figura extraída de top500.org
Clusters Beowulf Atualmente a HPC é dominada por clusters commodities Também chamados de Beowulfs Uma definição de Beowulf Agrupamento de computadores idênticos Construídos com uso de componentes commodities Para execução de aplicações científicas paralelas Desenvolvido inicialmente na NASA: 16 nós T. Sterling et al., BEOWULF: A Parallel Workstation for ScientificComputation, Proc. ofthe 24th InternationalConferenceonParallelProcessing, 1995. O primeiro Beowulf na Petrobras foi construído em 1997 Desde então nós temos seguido a estratégia: Quanto mais commodity, melhor! Isso pode valer para Big Data também !!!!!
Plataforma padrão em HPC hoje...... e amanhã?? • Beowulfs Linux são o padrão de fato ATUAL em HPC! • Mas nem sempre foi assim! • Continuará sendo? • Em HPC dizemos que quando uma plataforma de HARDWARE se torna padrão, já é momento de substituí-la • Isso costuma ocorrer a cada 10 anos Isso pode valer para Big Data também !!!!!
Evolução das arquiteturas de Supercomputadores Figura extraída de top500.org
Qual será a plataforma padrão em HPC amanhã? • Hoje caminha-se para uso de computação heterogênea • Uso de aceleradores (ou co-processadores) matemáticos • Por exemplo, GPUs como unidades computacionais • A Petrobras trabalha com computação com GPUs desde 2007 • Computação com GPUs continua sendo baseada em commodities • Em HPC aprendemos que é, sempre que possível, melhor usar tecnologias já existentes (e preferencialmente massificadas) do que desenvolver componentes específicos para seu caso. Isso pode valer para Big Data também !!!!!
GPU – Graphic Processing Units • Começamos a trabalhar com GPUs em processamento heterogêneo em 2007 • Algoritmos de imageamento sísmico foram portados e executados com sucesso • Relação custo/desempenho mais de 10 vezes melhor do que a proporcionada com CPUsquadcore (as mais modernas em 2007) • Em 2008 nós já tínhamos nosso primeiro cluster com GPUs (grifo01)
grifo04 : O maior supercomputador da América Latina Projetado em 2009 Instalado em 2010 Em produção desde 2010
grifo04 544 servidores 1088 GPUs e 487 mil núcleos de processamento matemático (GPU cores) ~ 40 TB de memória RAM Uma conexão de rede de rede 20 Gbps por nó (Infiniband DDR) 17 bastidores & 425 KW Custou R$17 milhões (HW+serviços) Equivalente a um cluster Beowulf com 125.000 CPU cores R$ 180 milhões de custo de aquisição 400 bastidores (servidores 1U) Mais de 4 MW Totalmente construído com componentes commodities!!!! Inclusive softwares!
Agenda • Introdução: Processamento Sísmico • Processamento de Alto Desempenho • Escalabilidade • Grandes Massas de Dados não Estruturados na Petrobras • Filesystems Paralelos • Arquiteturas P2P • Filesystems P2P • Tabelas Hash Distribuídas (DHTs) • Hadoop • Conclusão
Processamento Paralelo Uma definição de Beowulf Agrupamento de computadores idênticos Construídos com uso de componentes commodities Para execução de aplicações científicas paralelas Ao contrário de clusters usados em web farms (entre outros), todos os servidores de um cluster HPC podem ser usados para resolver conjuntamente um único grande problema, enquanto web farms são usadas para resolver diversos pequenos problemas simultaneamente. Partir um grande problema em diversos problemas menores, e processá-los em paralelo de maneira eficiente NÃO é uma tarefa fácil Processamento paralelo Hadoop pode ajudar MUITO
Escalabilidade Servidor de Processamento Servidor de Processamento Servidor de Processamento Servidor de Processamento Servidor de Processamento Servidor de Processamento Servidor de Processamento Servidor de Processamento Servidor de Processamento Servidor de Processamento Servidor de Processamento Servidor de Processamento Servidor de Processamento Servidor de Processamento Servidor de Processamento Em soluções paralelas pode-se dizer que escalabilidade é a propriedade de um sistema prover mais desempenho à medida em que lhe é adicionada mais capacidade (p.e., com a adição de mais CPUs) Isso vale para Big Data também !!!!!
Agenda • Introdução: Processamento Sísmico • Processamento de Alto Desempenho • Escalabilidade • Grandes Massas de Dados não Estruturados na Petrobras • Filesystems Paralelos • Arquiteturas P2P • Filesystems P2P • Tabelas Hash Distribuídas (DHTs) • Hadoop • Conclusão
Grandes Massas de Dados Científicos Não Estruturados • Devido ao alto volume, até cerca de 10 anos atrás a maior parte dos dados ficava em fitas • Hoje fitas são usadas para backups e arquivamento de dados históricos • Atualmente usamos filesystems paralelos para garantir o desempenho de I/O necessário para os dados mais “quentes” • Mas...... o que são filesystems paralelos?
Filesystems Paralelos • FS cliente/servidor aonde o arquivamento de um mesmo arquivo é distribuído por diversos servidores (um “pedacinho” em cada um) • Como um “RAID de servidores”, ao invés de um simples RAID de HDs • Em cada servidor, os dados são armazenados em RAIDs de HDs • CIFS, NFS 4, ext2/3/4 etc., não são (nem podem ser) FS paralelos • NFS 4.1 é paralelo • Exemplos de FS paralelos: Lustre, GPFS, Panasas • FS paralelos são escaláveis !!! • Servidores adicionais trazem desempenho adicional
Filesystem Tradicional Cluster de Processamento Servidor de Processamento FS Server FS client Servidor de Processamento FS client Servidor de Processamento FS client
Filesystem Tradicional Cluster de Processamento Servidor de Processamento FS Server FS client Servidor de Processamento FS client Servidor de Processamento FS client
Filesystem Tradicional Cluster de Processamento Servidor de Processamento FS Server FS client Servidor de Processamento FS client Servidor de Processamento FS client
Filesystem Tradicional Cluster de Processamento Servidor de Processamento FS Server FS client Servidor de Processamento FS client Servidor de Processamento FS client
Filesystem Paralelo Cluster de Processamento Servidor de Processamento FS Server FS client FS Server Servidor de Processamento FS Server FS client FS Server Servidor de Processamento FS Server FS client
Filesystems Paralelos • FS paralelos são escaláveis • Mas têm seus limites! • Pode-se chegar a pontos de saturação • Servidores adicionais nem sempre trazem desempenho adicional • Acesso a metadados é crítico • Pode-se chegar a dezenas ou centenas de servidores • FS paralelos são soluções específicas, historicamente usadas quase que só em HPC Gostaríamos de ter soluções mais genéricas e ainda mais escaláveis!
Agenda • Introdução: Processamento Sísmico • Processamento de Alto Desempenho • Escalabilidade • Grandes Massas de Dados não Estruturados na Petrobras • Filesystems Paralelos • Arquiteturas P2P • Filesystems P2P • Tabelas Hash Distribuídas (DHTs) • Hadoop • Conclusão
Arquitetura P2P • Peer-to-peer ou par-a-par • Arquitetura de sistemas distribuídos onde todos os participantes são iguais em suas funções (pares) • Cada nodo (par) realiza tanto funções de servidor quanto de cliente de um mesmo serviço. • Não há distinção entre servidores e clientes • Pares são também chamados de servents(SERVer + cliENT) • Implementação mais complexa do que cliente/servidor • Para ambientes pequenos e médios • Intrinsicamente escalável !!!!!!
Escalabilidade P2P Malha Telefônica
Filesystem Paralelo versus P2P Cluster de Processamento • Filesystems P2P são soluções basicamente de software que podem aliar: • Baixo custo • Escalabilidade • Alto desempenho • Exemplos • Hadoop FS • Google filesystem Servidor de Processamento FS Server FS client FS Server FS Server Servidor de Processamento FS Server FS Server FS client FS Server Servidor de Processamento FS Server FS Server FS client
Soluções P2P na Internet e em HPC • No final do Século XX, começaram a aparecer ambientes com centenas de milhares de usuários na Internet • Altíssimo nível de concorrência por recursos! • Soluções cliente/servidor se tornaram muito caras e complexas • Soluções P2P viabilizaram implementações baratas e escaláveis para aplicações com milhões de usuários • O ambiente HPC da Petrobras já tem mais de 500 mil cores de processamento matemático (CPU+GPU)! • Altíssimo nível de concorrência por recursos! • Há ambientes HPC muito maiores • Soluções cliente/servidor têm se tornado caras e complexas • Ainda não há soluções puramente P2P adequadas para HPC
Sistemas P2P híbridos • São comuns sistemas híbridos P2P + Cliente/Servidor, e a parte cliente/servidor é tipicamente um diretório (metadados). • Exemplos: • Na malha telefônica temos o serviço 102 • Napster • A maioria dos filesystems P2P
Típico Filesystem P2P Cluster de Processamento Servidor de Processamento Metadata Server FS client FS Server Servidor de Processamento FS Server FS client • Filesystems P2P em geral usam uma solução cliente/servidor para diretórios/metadados • Exemplos • Hadoop FS • Google filesystem • Acesso a metadados só se torna um gargalo em sistemas P2P MUITO grandes Servidor de Processamento FS Server FS client
Sistemas puramente P2P • São completamente P2P, incluindo a parte de diretórios e metadados • Primeiros sistemas puramente P2P utilizavam soluções pouco escaláveis para diretórios/metadados • Gnutella “v1” usa técnicas de inundação.... • Sistemas puramente P2P atuais usam DHTs como diretórios • Exemplos Skype e KAD • Mas, o que é DHT?
Agenda • Introdução: Processamento Sísmico • Processamento de Alto Desempenho • Escalabilidade • Grandes Massas de Dados não Estruturados na Petrobras • Filesystems Paralelos • Arquiteturas P2P • Filesystems P2P • Tabelas Hash Distribuídas (DHTs) • Hadoop • Conclusão
Distributed Hash Table (DHT) • Estrutura de dados distribuída, P2P, escalável e auto-reorganizável • Os dados são tipicamente índices ou metadados (entradas de diretórios) • Os dadossão distribuídos segundo uma função criptográfica (hash) • As recuperações dos dados são feitas através de consultas
DHTs versus Listas Telefônicas (LTs) • Assim como as LTs, DHTs armazenam índices (ou metadados) • Para resolver a consulta a qualquer índice de modo imediato, a DHT deveria ter uma tabela de roteamento (RT) completa com o endereço IP de todos os participantes do sistema • Mas é muito difícil manter atualizada uma RT com milhões de IPs • Do mesmo modo que as LTs! • Do mesmo modo que às vezes descobrimos o telefone de alguém consultando outras pessoas, as primeiras DHTs evitavam tabelas roteamento completas, mas tinham que realizar vários “saltos” para resolver cada consulta • Multi-hopDHTs • Até 20 saltos em sistemas com um milhão de pares • Mas garantem que qualquer consulta será resolvida!!!!! • A alta latência das multi-hopDHTs impede o seu uso em aplicações de desempenho crítico (incluindo HPC)
Latência versus Banda Passante • A alta latência das primeiras DHTs é consequência do esforço para reduzir o consumo de banda passante para manutenção de suas tabelas de roteamento • Desenvolvidas no início dos anos 2000 • Tentavam suportar até mesmo conexões discadas • Compromisso Latência vs. Banda Passante
Latência versus Banda passante Já foi demonstrado que: “Com o passar do tempo, o aumento da largura de banda passante é tipicamente maior do que o quadrado da redução das latências.” David Patterson, 2004
Single-hop DHTs • DHTs que resolvem consultas com um salto • RTs completas • Baixa latência e (potencialmente) alto consumo de banda passante
Principais Single-hop DHTs • OneHop (MIT, Gupta et al, 2004) • Altíssimo consumo de banda passante • Desbalanceamento de carga • 1h-Calot (IBM+Rochester, Tang et al, 2005) • Altíssimo consumo de banda passante • Bom balanceamento de carga • D1HT (Petrobras+UFRJ, Monnerat e Amorim, 2005) • Bom balanceamento de carga • Consumo de banda passante 10x menor do que OneHop e 1h-Calot • Puramente P2P • Auto-reorganizável