MVP Virtual Conference 2013 Windows Server HPC e Big Data: aplicação real em finanças Pericles Rocha Architect, Microsoft Technology Center [email protected] Pericles Rocha 16 anos na indústria Corintiano e Karateca Arquiteto, Microsoft Technology Center MCSE, MCDBA, MCSD Desenvolvedor Ex consultor na HP Services Na Microsoft há 6 anos Agenda Big Data Instalar O que é Windows HPC Server? Gerenciar Arquitetura de um cluster HPC HPC + Windows Azure Cenários de uso Jobs Cenário Real e Demo Dúvidas 1/3 de todos os dados do mundo vão passar pela núvem Indivíduos criam 70% de todos os dados – empresas armazenam 80% “Expertise em Big Data está escarço e é caro”, dizem 38% dos pesquisados Até 2020, mais de BIG DATA Big Data Até 2020, mais de 1/3 de todos os dados do mundo vão passar pela núvem¹ Indivíduos criam 70% de todos os dados – empresas armazenam 80%¹ “Expertise em Big Data está escarço e é caro”, dizem 38% dos pesquisados ¹ Big Data Just Beginning to Explode – csc.com ² How to Bridge Big Data’s Information Gap – InformationWeek.com Big Data... consequências 50% dos CIOs acreditam que seus custos vão aumentar 39% acreditam que terão redução de flexibilidade Fonte: IDC Whitepaper, “Big Data Analytics in Deuschland 2012” O que é Big Data? Petabytes Terabytes Gigabytes Megabytes Complexidade: Variedade e Velocidade Oportunidade Esteja entre os primeiros na sua indústria Tire mais dos dados Economize tempo e dinheiro Lidere a discussão Entenda as opções Transforme grandes volumes de informações em aprendizado Cenários comuns de Big Data Otimização da infraestrutura de TI Análises de Churn Detecção de fraudes Pesquisas científicas Descobertas Análise de redes sociais Otimização do fluxo de transito Exploração de recursos naturais Previsão do tempo Saúde pública Análise de resultado de anúncios Monitoração de equipamentos Otimização de aplicações web Medição inteligente Big Data requer uma abordagem fim-a-fim INSIGHT Auto serviço Colaboração Aplicativos Dispositivos DATA ENRICHMENT Descobrir Combinar Refinar DATA MANAGEMENT Relacional Não-relacional Analíticos Streaming Alertas, Notificações 3. SQL Server StreamInsight Fontes Big Data (Raw, Nào Estruturados) Streaming: Dados e Aplicações de Computação intensiva Business Insights Processamento de dados Real Time SQL Server FTDW Data Marts Sensores Fast Dispositivos Load 2. Map/Reduce: Armazenamento e processamento deHadoop dadosonnão Hadoop on Windows Azure estruturados Windows Server Equipamentos 4. Sumarização e Carga Business Analytics: SQL Server Reporting Services Interações com os dados SQL Server Parallel Data Warehouse 1. Integrar/Enriquecer Dados Históricos Data Warehousing: SQL Server Analysis Server Armazenamento e análise de dados estruturados Coletores Azure Market Place Scorecards de Desempenho ETL: SSIS, DQS, MDS ERP CRM LOB APPS Sistemas Fontes Data Relatórios Interativos Insights Value THE BIG (DATA) PICTURE comoditizada, desenvolvimento simplificado Reaproveitamento de aplicações existentes Tecnologia Atuação mais abrangente: Big Data, Cálculo de Risco, Processamento de grandes volumes de informação HIGH PERFORMANCE COMPUTING High Performance Computing (HPC) Histórico do uso científico de super computadores Década Uso e computador envolvido 1970 Previsão do tempo, pesquisa aerodinâmica (Cray-1) 1980 Análise de probabilidade, modelagem de blindagem de radiação (CDC Cyber) 1990 Quebra de código por força bruta (EFF DES cracker) 2000 Testes nucleares em 3D em substituição por conduta legal do Tratado de Proliferação Nuclear (ASCI Q) 2010 Simulação de Dinâmica Molecular (Tianhe-1A) Fonte: Supercomputer, Wikipedia HPC e Big Data • Parte de sua rotina de ETL: processamento com cálculos complexos, em grande volume de dados • Utilização (re) de código legado, ou de aplicações já existentes para cálculo • Modelos de cálculo em Microsoft Office Excel HPC hoje Tecnologia comoditizada, desenvolvimento simplificado Reaproveitamento de aplicações existentes Atuação mais abrangente: – Big Data, Cálculo de Risco, Processamento de grandes volumes de informação Windows Server HPC • Plataforma da Microsoft para computação em alta performance • Escala para milhares de núcleos • Na versão 2012 (quarta versão do HPC para Windows), permite que um cluster utilize VMs no Windows Azure HPC: Modelos de Desenvolvimento • • • • Parallel Applications Embarrassingly Parallel Applications Hybrid Applications Data Intensive Applications Parallel Applications Modelo de Programação Características Exemplos • MPI (C++ e Fortran) • Comunicação entre nodos do cluster • Sensível a latência • Difícil de escalar. Apropriado para cargas em batch • Dinâmica de Fluídos • Análise de elemento finito • Clima Embarrassingly Parallel Applications Modelo de Programação Características Exemplos • Parametric Sweep • Orientado a Serviços/WCF • Excel Services for HPC Server • Tarefas independentes uma das outras • Aplicações escalam com facilidade • Jobs interativos ou em batch • Análise de Monte Carlo • Cálculo de Risco Financeiro • Otimização de parâmetros MPI Hybrid Applications Modelo de Programação Características Exemplos • OpenMP • GP-GPU (CUDA – Compute Unified Device Architecture) • Aplicações com kernel apropriado para multicore ou GPU • Podem ser parallel ou embarrassingly parallel • Processamento Sísmico Data Intensive Applications Modelo de Programação Características Exemplos • Linq to HPC (Dryad) • Hadoop • Map-Reduce • Dados muito grandes para movimentar pelo cluster • Consultas Ad hoc em dados não estruturados • Análise de arquivos de Log • Busca de Web HPC Services for Excel • Utiliza uma infraestrutura SOA para executar Jobs do Excel no cluster • Unidades independentes de cálculo (células, linhas ou colunas) que rodam de forma assíncrona e independente no cluster Gerenciamento e agendamento dos Jobs. Ponto de entrada da rede corporativa para o Cluster Monitora e gerencia sessões SOA. Recebe requisições Aceita e executa Jobs. Podem ser utilizados de forma oportunista quando tem outro papel (File/Print Server, etc) ARQUITETURA DE UM CLUSTER HPC Topologia básica de um Cluster HPC Active Directory Clientes Compute Nodes Head, Compute & Broker Nodes Requests Jobs Tasks Jobs Jobs Papéis dos membros de um cluster Papel Funcionalidade Head node Gerenciamento e agendamento dos Jobs. Ponto de entrada da rede corporativa para o Cluster WCF Broker node Monitora e gerencia sessões SOA. Recebe requisições Compute node Aceita e executa os Jobs Workstation node Aceita e executa Jobs (Windows 7) Windows Azure Worker node Aceita e executa Jobs Windows Azure Virtual Machine node Aceita e executa Jobs Unmanaged Server node Aceita e executa Jobs. Podem ser utilizados de forma oportunista quando tem outro papel (File/Print Server, etc) Componentes do HPC Server Job Scheduler • API e Portal para submissão de jobs • Fila e Priorização • Monitoração • Políticas de Compartilhamento de Recursos Distributed Runtimes • Parametric Sweeps • Cluster SOA • Excel • MPI • LINQ to HPC System Administration • Cluster deployment • Monitoração • Diagnósticos • Reporting Ambiente híbrido: nodes on-premises e no Azure O único papel mandatório on-premise é o Head node Suportado a partir do Windows Server 2008 R2 SP 2 WINDOWS SERVER HPC + AZURE Windows Server HPC + Azure Ambiente híbrido: nodes on-premises e no Azure O único papel mandatório é o Head node on-premise Suportado a partir do Windows Server 2008 R2 SP 2 Windows Server HPC + Azure HPC on-premises Domain: ff.local hn1 cn1 cn2 ws1 Head Node GTW 10.1.1.10/24 10.1.1.254/24 10.1.1.1/24 Compute Proxies 10.1.1.2/24 10.1.1.3/24 Azure Worker Role Azure Worker Role Azure VM Role Azure VM Role Conteúdo Digital Pesquisa e Desenvolvimento Setor Público Ciências e Energia Finanças Criação de CENÁRIOS DE USO Cenários Criação de Conteúdo Digital Setor Público Manufatura Ciências e Energia Finanças Pesquisa e Desenvolvimento Instalar o Microsoft HPC Pack 2012 para criar o Head node, Fazer configuração inicial no Head node, Pre-configurar os Compute nodes, Fazer Join dos Compute nodes no cluster, HPC Cluster Manager, Node & Job Management, Diagnósticos, Relatórios e Gráficos Management Pack (apenas 2008 R2), Agendamento, Monitoração da execução dos Jobs INSTALAÇÃO, GERENCIAMENTO E JOBS Windows HPC Cluster: instalação Depois de validados os prérequisitos: 1. 2. 3. 4. Instalar o Microsoft HPC Pack 2012 para criar o Head node Fazer configuração inicial no Head node Pre-configurar os Compute nodes Fazer Join dos Compute nodes no cluster Windows HPC Cluster: gerenciar • HPC Cluster Manager – Node & Job Management – Diagnósticos – Relatórios e Gráficos • Management Pack (apenas 2008 R2) Windows HPC Cluster: jobs • Agendamento • Cada Job pode ter várias tarefas • Escolha de compute nodes para cada Job • Monitoração da execução dos Jobs Vida real: o cenário • • Cliente com necessidade de uma solução para auxílio de cálculo de VAR (value at risk). Um dos cálculos necessários é o RAROC O modelo RAROC (Risk Adjusted Return on Capital, ou Retorno Ajustado ao Risco no Capital) foi desenvolvido nos anos 70. Hoje em dia, praticamente todos os grandes bancos internacionais utilizam uma variação deste modelo. O RAROC é uma mensuração da rentabilidade baseada no risco, sendo base para análise do desempenho do ajuste de risco e provendo uma visão consistente da rentabilidade cruzada com os negócios. Vida real: a solução • Utilização de uma Plataforma de Cálculo em Alta Performance que deve utilizar código legado já em uso na empresa • A solução deverá oferecer boa escalabilidade, custo competitivo e agilidade na adoção de novos projetos • Utilização de uma aplicação de cálculo que recebe um arquivo de entrada, realiza cálculos de raiz quadrada e escreve o resultado em um arquivo de saída • É criado um Parametric Sweep Job (cenário Embarrassingly Parallel) • Serão passados 20 arquivos ao cluster. Cada Compute Node aloca quatro threads de cada vez, uma para cada núcleo, e cada thread processa um arquivo • Nesta demonstração, o Head node também é um compute node • Os dados processados são importados utilizando o SSIS e a análise pode ser feita no Excel por analistas de Business Intelligence Cenário da Demonstração Active Directory Rede Privativa do Cluster Rede Corporativa Cliente Head Node (+Compute) Compute Nodes Demonstração: Parametric Sweep Job 1 2 3 ... 1000000 dados.txt C:\calcula.exe dados.txt SQRT de 1: 20 vezes SQRT de 2: 20 vezes SQRT de 3: 20 vezes ... SQRT de 1000000: 20 vezes Total de 20 milhões de cálculos 1: 1,00 2: 1,41 3: 1,73 ... 1000000: dados.out Demonstração: Parametric Sweep Job HPC Engine: Parametric Sweep Job Compute Node 1 11 2 21 3 32 ......3 ... 1000000 1000000 1000000 O Head Node distribui a execução do job entre os núcleos dos Compute Nodes, de acordo com a disponibilidade Compute Node 2 CPU 1 dados_1.txt dados_2.txt dados_3.txt ... dados_20.txt dados_5 CPU 3 dados_7 CPU 2 dados_6 CPU 4 dados_8 CPU 1 dados_1 CPU 3 dados_3 CPU 2 dados_2 CPU 4 dados_4 Compute Node 3 CPU 1 dados_9 CPU 3 dados_11 1:1:1,00 1,00 1: 1,00 2:2:1,41 1,41 2: 1,41 3:3:1,73 1,73 3: ...... 1,73 ... 1000000: 1000000: 1000000: CPU 2 dados_10 CPU 4 dados_12 dados_1.out dados_2.out dados_3.out ... dados_20.out Utilização de uma Plataforma de Cálculo em Alta Performance que deve utilizar código legado já em uso na empresa A solução deverá oferecer boa novos projetos escalabilidade, custo competitivo e agilidade na adoção de DEMONSTRAÇÃO Resumo • Big Data: oportunidade de liderar a discussão • Várias tecnologias podem ser envolvidas no processo de tratamento dos dados • HPC é uma solução barata, altamente escalável e de implementação rápida rotina de ETL: processamento com cálculos complexos, em grande volume de dados – Utilização (re) de código legado, ou de aplicações já existentes para cálculo – Modelos de cálculo em Microsoft Office Excel Parte de sua DÚVIDAS Obrigado