BAH! 2013 HPC & Big Data Luiz Monnerat 7 / Maio / ppt carregar
BAH! 2013 HPC & Big Data Luiz Monnerat 7 / Maio / 2013
PublicouGuilherme Menor Alterado mais de 4 anos atrás
Apresentação em tema: "BAH! 2013 HPC & Big Data Luiz Monnerat 7 / Maio / 2013"— Transcrição da apresentação:
1 BAH! 2013 HPC & Big Data Luiz Monnerat 7 / Maio / 2013
PETROBRAS / TIC-E&P / INFRAEP / CST
2 Introdução: Processamento Sísmico Processamento de Alto Desempenho
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
3 Introdução: Processamento Sísmico Processamento de Alto Desempenho
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
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.
5 Sísmica 3
7 Processamento dos Dados Sísmicos
A geração de informação (imagens de subsuperfície) a partir dos dados sísmicos requer grande capacidade de processamento Mais do que disso, o processamento sísmico requer: MUITA capacidade de processamento MUITA capacidade de armazenamento ALTO desempenho de I/O ALTO desempenho de rede Para satisfazer estes requisitos, o Processamento Sísmico usa o Processamento de Alto Desempenho (HPC) como uma ferramenta fundamental Requisitos também importantes em ambientes Big Data !!!!!
8 Introdução: Processamento Sísmico Processamento de Alto Desempenho
9 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
10 TOP500: A lista "Fortune 500" da HPC
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
11 TOP500: Sistemas Operacionais
Figura extraída de top500.org
12 TOP500: Arquitetura dos Supercomputadores
13 Atualmente a HPC é dominada por clusters commodities
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 Scientific Computation, Proc. of the 24th International Conference on Parallel Processing, 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! E usar componentes commodities traz uma vantagem economica, mas não é só isso! Uma vez um representante de um grande fabricante veio me dizer que eles não iriam mais desenvolver plcas mãe, e usariam motherboards commodities da Intel. Mas que eles continuariam a ter um diferencial por que eles mexer ou incrementar as motherboards intel que eles usassem. Aí eu disse- pelo amor de Deus não mexam na motherboard da Intel!!!!! Essa filosofia commodity, serve também para softwares. Por exemplo, a Sun quando começou no mercado x86 ela lançou um tal de Sun Linux, que seria um redhat mexido, ou incrementado Isso pode valer para Big Data também !!!!!
14 bw1: 72 CPUs (1999)
15 bwr1: 1300 CPUs no CCTI (2004)
16 bwr2: CPUs e 9TB RAM (2005)
17 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 !!!!!
18 Evolução das arquiteturas de Supercomputadores
19 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 !!!!!
20 Cluster de PlayStations 3 (2007)
21 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 CPUs quadcore (as mais modernas em 2007) Em 2008 nós já tínhamos nosso primeiro cluster com GPUs (grifo01)
22 grifo04 : O maior supercomputador da América Latina
Projetado em 2009 Instalado em 2010 Em produção desde 2010
23 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 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!
24 Introdução: Processamento Sísmico Processamento de Alto Desempenho
25 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
26 Isso vale para Big Data também !!!!!
Escalabilidade Servidor de Processamento Servidor de Processamento Servidor de Processamento Servidor de Processamento Servidor de Processamento Servidor de Processamento So que uma coisa que todos tem em mente é que obter uma boa escalabilidade em termos de desempenho não é uma tarefa fácil Quando a gente fala em espaço em disco, por exemplo, quando voce dobra a quantidade de discos voce naturalmente dobra o espaço em disco – mas com desempenho a coisa não funciona tao simples assim Por exemplo, quando vai de um para dois servidores você pode esperar que vá ganhar um ganho de 100% de desempenho, mas nem sempre isso ocorre. Você pode ganhar 99%, ou só 50%, ou pode até não ganhar nada! E quanto maior o ambiente, mas difícil é obter uma boa escalabilidade. Por exemplo, se indo de 1 para 2 servidores você ganhou 90% de desempenho, quando você for de 2 para 4 você porvavelmente só ira conseguir mais 80% no máximo E com certeza há umas solucoes mais escaláveis do que outras, e a escalabilidade não depende só do hardware Portanto se um fornecedor vier te dizer que a solução dele vai até 100 servidores por exemplo, não vá assumir que ela pode crecer em até 100 vezes em termos de desempenho 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 !!!!!
27 Introdução: Processamento Sísmico Processamento de Alto Desempenho
28 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?
29 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
30 Filesystem Tradicional
Cluster de Processamento FS Server Servidor de Processamento FS client Servidor de Processamento FS client Servidor de Processamento FS client
31 Filesystem Tradicional
32 Filesystem Tradicional
33 Filesystem Tradicional
34 Filesystem Paralelo FS Server FS Server FS Server FS Server FS Server
Cluster de Processamento FS Server Servidor de Processamento FS client FS Server FS Server FS Server FS Server Servidor de Processamento FS client Servidor de Processamento FS client
35 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!
36 Introdução: Processamento Sísmico Processamento de Alto Desempenho
37 Peer-to-peer ou par-a-par
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 !!!!!!
38 Escalabilidade P2P Malha Telefônica
39 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 FS Server Servidor de Processamento FS client FS Server Servidor de Processamento FS client FS Server Servidor de Processamento FS client FS Server
40 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)! 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
41 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
42 Típico Filesystem P2P Metadata Server
Cluster de Processamento Metadata Server Servidor de Processamento FS client FS Server Servidor de Processamento FS client FS Server 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 client FS Server
43 São completamente P2P, incluindo a parte de diretórios e metadados
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?
44 Introdução: Processamento Sísmico Processamento de Alto Desempenho
45 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 dados são distribuídos segundo uma função criptográfica (hash) As recuperações dos dados são feitas através de consultas
46 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-hop DHTs Até 20 saltos em sistemas com um milhão de pares Mas garantem que qualquer consulta será resolvida!!!!! A alta latência das multi-hop DHTs impede o seu uso em aplicações de desempenho crítico (incluindo HPC)
47 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
48 Já foi demonstrado que:
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
49 DHTs que resolvem consultas com um salto
Single-hop DHTs DHTs que resolvem consultas com um salto RTs completas Baixa latência e (potencialmente) alto consumo de banda passante
50 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) Bom balanceamento de carga D1HT (Petrobras+UFRJ, Monnerat e Amorim, 2005) Consumo de banda passante 10x menor do que OneHop e 1h-Calot Puramente P2P Auto-reorganizável
51 Baixos custos de manutenção:
D1HT: A Distributed One Hop Hash Table Baixa Latência: Requisito de HPC (entre outros ambientes) Baixos custos de manutenção: Requisito de aplicações P2P na Internet
52 D1HT: Uma DHT de propósito geral!
D1HT: A Distributed One Hop Hash Table Baixa Latência: Requisito de HPC (entre outros ambientes) Baixos custos de manutenção: Requisito de aplicações P2P na Internet D1HT: Uma DHT de propósito geral!
53 D1HT: Uma DHT de propósito geral!
D1HT: A Distributed One Hop Hash Table Baixa Latência: Requisito de HPC (entre outros ambientes) Baixos custos de manutenção: Requisito de aplicações P2P na Internet D1HT: Uma DHT de propósito geral! Melhor Tese de Doutorado brasileira em HPC (2010)
54 Introdução: Processamento Sísmico Processamento de Alto Desempenho
55 Hadoop File System (HDFS)
Parte do projeto Apache Hadoop Baseado no GFS (Google FS) É P2P!!!!!!!! P2P híbrido, com os metadados em servidor dedicado Escalável Integração com MapReduce Pode ser usado em separado do Hadoop Não é compatível com padrão POSIX Aplicações prévias precisam ser reescritas Aplicações novas podem ser desenvolvidas de modo "HDFS friendly"
56 Arquitetura do HDFS
57 Arquitetura P2P híbrida do HDFS
FS client datanode Servidor de Processamento namenode Namenode (servidor de metadadados) roda em um servidor dedicado Datanodes (servidores de dados) rodam nos nós do cluster. Cada nó atua então como: Servidor de processamento Cliente de FS Servidor de FS
58 Pode ser SUPER útil para HPC !!!!!
Hadoop HDFS + MapReduce (& more) É P2P!!!!!!!! "Moving Computation is Cheaper than Moving Data" Induz P2P Se encaixa bem com estratégias de Analytics Pode facilitar – em MUITO – o desenvolvimento de aplicações paralelas Solução commodity e escalável! Pode ser SUPER útil para HPC !!!!!
59 Processamento sísmico usa grandes massas de dados e HPC
Conclusões Processamento sísmico usa grandes massas de dados e HPC Muito da cultura HPC pode ser (e já é) usado em BigData Clusters Linux Soluções commodities Quanto mais commodity melhor! Paralelismo Escalabilidade Arquiteturas P2P são intrinsicamente escaláveis DHT: solução P2P para diretórios e metadados Hadoop: P2P, escalável e commodity HPC pode usufruir de soluções desenvolvidas para BigData