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.