Ir para o conteúdo principal

O que é tungstênio?

Como o projeto Tungsten otimiza o mecanismo de execução do Spark com uso mais inteligente de memória, algoritmos com reconhecimento de cache e geração de código para aproximar o desempenho ao nível do hardware puro.

por Equipe da Databricks

Archived. This article has not been updated since the publish date above. The dynamic nature of information means that previously accurate content can become outdated or even obsolete over time. Readers are advised to exercise due diligence and cross-check any information found in this blog post before making decisions or adopting any practices based on said information.

  • Veja como a Tungsten se concentra em aprimorar a eficiência de memória e CPU no mecanismo de execução do Spark para se aproximar dos limites de hardware modernos para aplicativos Spark.
  • Saiba mais sobre as principais iniciativas da Tungsten, incluindo gerenciamento explícito de memória, computação com reconhecimento de cache, geração de código e redução de despachos de funções virtuais.
  • Entenda como técnicas como manter dados intermediários em registradores da CPU, desenrolamento de loops e suporte a SIMD proporcionam ganhos significativos de velocidade para cargas de trabalho Spark SQL e DataFrame.

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.

EBOOK

Principais conclusões sobre sistemas multiagentes, casos de uso de IA, avaliações e muito mais

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

Receba os posts mais recentes na sua caixa de entrada

Assine nosso blog e receba os posts mais recentes diretamente na sua caixa de entrada.