El Cuello de Botella en el Análisis de Datos Moderno
Ejecutar consultas analíticas en conjuntos de datos masivos es el pan de cada día de los ingenieros de datos. Pero cuando los datasets crecen a terabytes, los motores de consulta tradicionales basados en CPU empiezan a ahogarse. El cuello de botella no es solo el cómputo, sino también el movimiento de datos—entre CPU, GPU, almacenamiento y nodos.
Aquí es donde entra Presto acelerado por GPU. Al delegar el trabajo pesado a las GPUs de NVIDIA y usar tecnologías como NVLink para comunicación GPU a GPU de alta velocidad y GPUDirect Storage (GDS) para rutas de datos directas del almacenamiento a la GPU, Presto puede ofrecer mejoras dramáticas en el rendimiento.
Este post desglosa los hallazgos clave de los benchmarks recientes de NVIDIA en el sistema GB200 NVL72, mostrando exactamente cómo estas tecnologías trabajan juntas para entregar consultas hasta 8x más rápidas.

La Arquitectura: NVLink, cuDF y GDS en Acción
Rendimiento en un Solo Nodo: DGX B200
Un solo nodo DGX B200 tiene 8 GPUs conectadas vía NVLink 5.0 con 1.800 GB/s de ancho de banda bidireccional. Esto permite que los workers de Presto acelerado por GPU compartan datos a velocidades imposibles en redes tradicionales.
Resultados Clave del Benchmark (derivado de TPC-H, dataset de 1 TB):
| Configuración | Tiempo de Ejecución | Aceleración vs CPU 8 nodos |
|---|---|---|
| CPU 8 nodos (Intel Xeon) | Línea base | 1x |
| 1 GPU (B200) | 2.5x más rápido | 2.5x |
| 8 GPUs (B200) | 8.2x más rápido | 8.2x |
A escala de 3 TB, la historia es similar: 8 GPUs ofrecen 7.8x de aceleración sobre un cluster CPU de 10 nodos. El secreto: algoritmos cuDF corriendo de forma nativa en la memoria de la GPU, sin copia de datos entre GPUs gracias a NVLink.
Escalando a Múltiples Nodos: GB200 NVL72 + IBM Storage Scale
Cuando necesitas ir más allá de un solo nodo, el GB200 NVL72 es la respuesta. Este sistema conecta 18 nodos (cada uno con 2 CPUs Grace, 4 GPUs B200 y 4 NICs ConnectX-7) a través de NVLink, formando un único y masivo pool de GPUs.
El Viaje de Optimización de I/O (8 nodos, 32 GPUs, factor de escala 10K):
- Línea base (lecturas POSIX, tareas de 4 MiB): Lento, debido a buffers intermedios y cruce de NUMA.
- + GDS + tareas de 16 MiB: 30% más rápido. GPUDirect Storage ignora la CPU por completo.
- + 16 hilos de I/O: 17% más de velocidad. Mejor saturación de NVLink.
- + Rebatching + reescritura Q11: 35% de ganancia adicional. Reducción del tiempo ocioso de la GPU.
Mejora total: 64% de reducción en el tiempo de ejecución de consultas.
La Ventaja de GDS
GPUDirect Storage (GDS) es un cambio de juego. En lugar de leer datos a un búfer de la CPU y luego copiarlos a la memoria de la GPU (ruta POSIX), GDS usa RDMA para mover datos directamente del dispositivo de almacenamiento (IBM Storage Scale) a la memoria de la GPU. Esto elimina los búferes intermedios y las penalizaciones de NUMA.
En una prueba de dos nodos y ocho GPUs con factor de escala 10K, las lecturas GDS en frío fueron ~2x más rápidas que las lecturas POSIX en frío. Para costo-rendimiento, GDS es el claro ganador.

Limitaciones y Precauciones
Aunque los benchmarks son impresionantes, es importante tener en cuenta algunos puntos:
- Dependencia de la Carga de Trabajo: No todas las consultas se benefician por igual. Las consultas con mucho barajado de datos o conjuntos de resultados pequeños pueden no ver las mismas ganancias. La reescritura Q11 (SELECT a INSERT) es un workaround para un cuello de botella específico en la transferencia de resultados.
- Requisitos de Hardware: Las cifras de rendimiento están ligadas a hardware específico (GB200 NVL72, IBM Storage Scale). Tu experiencia puede variar con diferentes sistemas de almacenamiento o redes.
- Caché Frío vs Caché Caliente: Los benchmarks usan caché 'frío' para las comparaciones con GDS. En producción con cachés calientes, la brecha podría reducirse.
- Complejidad: Configurar GDS, ajustar hilos de I/O y optimizar tamaños de lote requiere conocimiento profundo. No es una solución plug-and-play.
Próximos Pasos para Desarrolladores
¿Listo para probar Presto acelerado por GPU? Aquí te va una guía rápida:
- Prueba con Docker: Usa la etiqueta
prestodb/presto:gpu-nightlyen Docker Hub para una prueba rápida. - Explora los Scripts de Build: NVIDIA proporciona scripts completos de build y deploy en el repositorio rapidsai/velox-testing en GitHub.
- Entiende tu Ruta de Datos: Si usas un sistema de archivos paralelo como IBM Storage Scale o Lustre, investiga la compatibilidad con GDS.
- Perfila tus Consultas: No todas las consultas son amigables con GPU. Empieza con el conjunto de benchmarks derivados de TPC-H para entender las ganancias.
Para una inmersión más profunda en la capa de comunicación entre workers GPU, echa un vistazo a nuestro post anterior sobre Acelerando Análisis de Datos a Gran Escala con Velox Nativo en GPU y NVIDIA cuDF.

El Futuro del Análisis Acelerado por GPU
Los benchmarks de NVIDIA en el GB200 NVL72 muestran que Presto acelerado por GPU no es solo un experimento de laboratorio—es una solución lista para producción que puede reducir la latencia de las consultas hasta 8x. La combinación de cuDF, NVLink y GDS crea una ruta de datos que es a la vez más rápida y más eficiente que los clusters CPU tradicionales.
A medida que los datasets continúan creciendo, la capacidad de escalar cómputo GPU con tecnologías como el GB200 NVL72 se convertirá en una ventaja competitiva para las organizaciones que ejecutan dashboards interactivos, ETL nocturno o análisis ad-hoc.
En resumen: Si estás ejecutando Presto en CPU y tus consultas están tardando demasiado, es hora de considerar seriamente la aceleración por GPU.