O Gargalo da Análise de Dados Moderna

Rodar queries analíticas em datasets enormes é o pão de cada dia de quem trabalha com dados. Mas quando os datasets crescem para terabytes, os motores de query tradicionais baseados em CPU começam a engasgar. O gargalo não é só o processamento, mas também a movimentação dos dados—entre CPU, GPU, armazenamento e nós.

É aí que entra o Presto acelerado por GPU. Ao delegar o trabalho pesado para GPUs NVIDIA e usar tecnologias como NVLink para comunicação GPU-para-GPU em alta velocidade e GPUDirect Storage (GDS) para caminhos de dados diretos do armazenamento para a GPU, o Presto pode oferecer melhorias dramáticas de desempenho.

Este post detalha os principais resultados dos benchmarks recentes da NVIDIA no sistema GB200 NVL72, mostrando exatamente como essas tecnologias trabalham juntas para entregar queries até 8x mais rápidas.

NVIDIA GB200 NVL72 server rack with NVLink connected GPUs for high performance analytics IT Technology Image

A Arquitetura: NVLink, cuDF e GDS em Ação

Desempenho em Nó Único: DGX B200

Um único nó DGX B200 tem 8 GPUs conectadas via NVLink 5.0 com 1.800 GB/s de largura de banda bidirecional. Isso permite que os workers do Presto acelerado por GPU compartilhem dados em velocidades impossíveis em redes tradicionais.

Resultados do Benchmark (derivado do TPC-H, dataset de 1 TB):

ConfiguraçãoTempo de ExecuçãoGanho vs CPU 8 nós
CPU 8 nós (Intel Xeon)Linha de base1x
1 GPU (B200)2,5x mais rápido2,5x
8 GPUs (B200)8,2x mais rápido8,2x

Na escala de 3 TB, a história é similar: 8 GPUs entregam 7,8x de ganho sobre um cluster CPU de 10 nós. O segredo? Algoritmos cuDF rodando nativamente na memória da GPU, sem cópia de dados entre GPUs graças ao NVLink.

Escalando para Vários Nós: GB200 NVL72 + IBM Storage Scale

Quando você precisa ir além de um único nó, o GB200 NVL72 é a resposta. Esse sistema conecta 18 nós (cada um com 2 CPUs Grace, 4 GPUs B200 e 4 NICs ConnectX-7) através do NVLink, formando um pool único e massivo de GPUs.

A Jornada de Otimização de I/O (8 nós, 32 GPUs, fator de escala 10K):

  1. Linha de base (leituras POSIX, tarefas de 4 MiB): Lento, devido a buffers intermediários e cruzamento de NUMA.
  2. + GDS + tarefas de 16 MiB: 30% mais rápido. GPUDirect Storage ignora a CPU completamente.
  3. + 16 threads de I/O: 17% a mais de velocidade. Melhor saturação do NVLink.
  4. + Rebatching + reescrita Q11: 35% de ganho adicional. Redução do tempo ocioso da GPU.

Melhoria total: 64% de redução no tempo de execução das queries.

A Vantagem do GDS

O GPUDirect Storage (GDS) é um divisor de águas. Em vez de ler dados para um buffer da CPU e depois copiar para a memória da GPU (caminho POSIX), o GDS usa RDMA para mover dados diretamente do dispositivo de armazenamento (IBM Storage Scale) para a memória da GPU. Isso elimina buffers intermediários e penalidades de NUMA.

Em um teste de dois nós e oito GPUs no fator de escala 10K, as leituras GDS a frio foram ~2x mais rápidas que as leituras POSIX a frio. Para custo-benefício, o GDS é o vencedor claro.

Diagram showing GPU-to-GPU communication via NVLink and GDS for Presto workloads System Abstract Visual

Limitações e Cuidados

Embora os benchmarks sejam impressionantes, é importante ter em mente alguns pontos:

  • Dependência da Carga de Trabalho: Nem todas as queries se beneficiam igualmente. Queries com muita reorganização de dados ou resultados pequenos podem não ver os mesmos ganhos. A reescrita Q11 (SELECT para INSERT) é um workaround para um gargalo específico na transferência de resultados.
  • Requisitos de Hardware: Os números de desempenho estão atrelados a hardware específico (GB200 NVL72, IBM Storage Scale). Seu resultado pode variar com sistemas de armazenamento ou redes diferentes.
  • Cache Frio vs Cache Quente: Os benchmarks usam cache 'frio' para comparações com GDS. Em produção com caches quentes, a diferença pode diminuir.
  • Complexidade: Configurar GDS, ajustar threads de I/O e otimizar tamanhos de lote requer conhecimento profundo. Não é uma solução plug-and-play.

Próximos Passos para Desenvolvedores

Pronto para testar o Presto acelerado por GPU? Aqui vai um guia rápido:

  1. Teste com Docker: Use a tag prestodb/presto:gpu-nightly no Docker Hub para um teste rápido.
  2. Explore os Scripts de Build: A NVIDIA fornece scripts completos de build e deploy no repositório rapidsai/velox-testing no GitHub.
  3. Entenda seu Caminho de Dados: Se você usa um sistema de arquivos paralelo como IBM Storage Scale ou Lustre, investigue a compatibilidade com GDS.
  4. Profile suas Queries: Nem todas as queries são amigáveis para GPU. Comece com o conjunto de benchmarks derivados do TPC-H para entender os ganhos.

Para um mergulho mais fundo na camada de comunicação entre workers GPU, confira nosso post anterior sobre Acelerando Análises de Dados em Grande Escala com Velox Nativo em GPU e NVIDIA cuDF.

Bar chart comparing CPU vs GPU-accelerated Presto query runtimes across different scale factors Algorithm Concept Visual

O Futuro da Análise Acelerada por GPU

Os benchmarks da NVIDIA no GB200 NVL72 mostram que o Presto acelerado por GPU não é apenas um experimento de laboratório—é uma solução pronta para produção que pode reduzir a latência de queries em até 8x. A combinação de cuDF, NVLink e GDS cria um caminho de dados que é ao mesmo tempo mais rápido e mais eficiente que clusters CPU tradicionais.

À medida que os datasets continuam crescendo, a capacidade de escalar computação GPU com tecnologias como o GB200 NVL72 se tornará uma vantagem competitiva para organizações que rodam dashboards interativos, ETL noturno ou análises ad-hoc.

Conclusão: Se você está rodando Presto em CPU e suas queries estão demorando demais, está na hora de considerar seriamente a aceleração por GPU.


Leitura Relacionada

Este conteúdo foi elaborado com o auxílio de ferramentas de IA, com base em fontes confiáveis, e revisado pela nossa equipe editorial antes da publicação. Não substitui o aconselhamento de um profissional especializado.