Need for Speed: cuDF Pandas contra Pandas |  de Thomas Reid |  abril de 2024

Una visión comparativa

¿Qué son los pandas cuDF?

Si es usuario de la biblioteca Pandas en Python y desea o necesita maximizar los tiempos de ejecución de su programa, tiene algunas opciones disponibles. La mayoría de estas opciones giran en torno al uso de bibliotecas externas que reemplazan las operaciones existentes de Pandas y están optimizadas para el procesamiento de datos a escala y velocidad. Ejemplos de estas bibliotecas son VAEX, POLARS, DuckDB y otras. El problema con estos es que, en general, requieren que usted vuelva a escribir su código en mayor o menor medida, lo que puede no ser algo que desee o no tenga la capacidad de hacer.

Si tiene la suerte de tener una GPU en su sistema, entonces se llama otra opción más reciente que está disponible. cuDF.pandas.

cuDF.pandas se basa en cuDF, una biblioteca Python GPU DataFrame (basada en Flecha apache formato de memoria en columnas) para cargar, unir, agregar, filtrar y manipular datos de otro modo.

Para usar cuDF Pandas, simplemente proporcione una marca si ejecuta Python desde la línea de comandos o cargue una extensión si ejecuta Python a través de un Jupyter Notebook. Cuando se admite el cálculo de GPU (por ejemplo, hay una GPU NVIDIA disponible y cuDF sabe cómo ejecutar el código Pandas), su código se ejecutará en la GPU. En los casos en los que esto no sea posible, cuDF cambia automáticamente a ejecutarse en la CPU. No necesita escribir dos versiones de su código y no necesita manejar el cambio entre GPU y CPU manualmente.

cuDF es parte de RAPIDS, un conjunto de bibliotecas de software y API de código abierto creado y mantenido por NVIDIA, la empresa pionera en tecnología GPU (Unidad de procesamiento de gráficos) y creadora de CUDA (Arquitectura de dispositivo unificado de cómputo). RAPIDS está diseñado para permitir que los científicos e ingenieros de datos aprovechen el poder de la aceleración de GPU para procesos de análisis y exploración de datos. Para ello, utiliza la capacidad de procesamiento paralelo de las GPU y permite mejoras de rendimiento significativas en comparación con el procesamiento de datos tradicional basado en CPU.

En este artículo, enfrentaremos a los pandas normales contra los pandas cuDF y veremos a qué se debe todo este alboroto. Obtendremos un archivo de entrada grande, lo leeremos en un marco de datos de pandas y realizaremos algunas manipulaciones en el marco de datos. A cada paso…