Ir para o conteúdo principal

Tungsten

Experimente o Databricks gratuitamente

O que é o Projeto Tungsten?

Tungsten é o codinome do projeto guarda-chuva que modifica o mecanismo de execução do Apache Spark. Seu foco é melhorar drasticamente a memória e a eficiência da CPU para aplicativos Spark, aproximando o desempenho dos limites do hardware moderno.

Iniciativas incluídas no Projeto Tungsten

  • Gerenciamento de memória e processamento binário: uso da semântica do aplicativo para gerenciar explicitamente a memória e eliminar o modelo de objeto JVM e a sobrecarga da coleta de lixo.
  • Computação com reconhecimento de cache: uso de algoritmos e estruturas de dados para explorar hierarquias de memória.
  • Geração de código: uso de geração de código para explorar compiladores e CPUs mais recentes.
  • Sem dispatches de função virtual: reduz várias chamadas de CPU que podem afetar gravemente o desempenho em bilhões de dispatches.
  • Dados intermediários na memória e registradores da CPU: Tungsten Phase 2 coloca dados intermediários nos registradores da CPU. Isso reduz drasticamente o número de ciclos para recuperar dados dos registradores da CPU em vez da memória.
  • Desenrolamento de loop e SIMD: o mecanismo de execução do Apache Spark foi otimizado para aproveitar os compiladores mais recente e os recursos de CPU para compilar e executar com eficiência loops for simples (em oposição a gráficos de chamada de função complexos).

O motivo do foco na eficiência da CPU é que o uso da CPU e da memória são os gargalos para as cargas de trabalho do Spark, em vez de E/S e comunicação de rede. Um estudo recente sobre o desempenho de cargas de trabalho de big data mostra essa tendência.

Recursos adicionais

Voltar ao glossário