Escalando Python con Dask

Book description

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Los sistemas modernos contienen CPU multinúcleo y GPU que tienen potencial para la computación paralela. Pero muchas herramientas científicas de Python no se diseñaron para aprovechar este paralelismo. Con este breve pero exhaustivo recurso, los científicos de datos y los programadores de Python aprenderán cómo la biblioteca de código abierto Dask para la computación paralela proporciona API que facilitan la paralelización de las bibliotecas PyData, incluidas NumPy, pandas y scikit-learn.

Los autores Holden Karau y Mika Kimmins te muestran cómo utilizar los cálculos de Dask en sistemas locales y luego escalarlos a la nube para cargas de trabajo más pesadas. Este práctico libro explica por qué Dask es popular entre expertos de la industria y académicos, y lo utilizan organizaciones como Walmart, Capital One, la Facultad de Medicina de Harvard y la NASA.

Con este libro aprenderás

  • Qué es Dask, dónde puedes utilizarlo y cómo se compara con otras herramientas
  • Cómo utilizar Dask para el procesamiento paralelo de datos por lotes
  • Conceptos clave de sistemas distribuidos para trabajar con Dask
  • Métodos para utilizar Dask con APIs de alto nivel y bloques de construcción
  • Cómo trabajar con bibliotecas integradas como scikit-learn, pandas y PyTorch
  • Cómo utilizar Dask con GPUs

Table of contents

  1. Prefacio
    1. Una nota sobre la responsabilidad
    2. Convenciones utilizadas en este libro
    3. Cifras en línea
    4. Licencia
    5. Utilizar ejemplos de código
    6. Aprendizaje en línea O'Reilly
    7. Cómo contactar con nosotros
    8. Agradecimientos
  2. 1. ¿Qué es Dask?
    1. ¿Por qué necesitas Dask?
    2. ¿Dónde encaja Dask en el ecosistema?
      1. Grandes datos
      2. Ciencia de datos
      3. Python paralelo a distribuido
      4. Bibliotecas Comunitarias Dask
    3. Lo que Dask no es
    4. Conclusión
  3. 2. Primeros pasos con Dask
    1. Instalar Dask localmente
    2. Hola Mundos
      1. Tarea Hola Mundo
      2. Colecciones distribuidas
      3. Dask DataFrame (Pandas/Lo que la gente desearía que fueran los Big Data)
    3. Conclusión
  4. 3. Cómo funciona Dask: Conceptos básicos
    1. Backends de ejecución
      1. Backends locales
      2. Distribuido (cliente y programador Dask)
    2. Interfaz de usuario de diagnóstico de Dask
    3. Serialización y decapado
    4. Particionar/agrupar colecciones
      1. Matrices Dask
      2. Bolsas Dask
      3. Marcos de datos Dask
      4. Baraja
      5. Particiones durante la carga
    5. Tareas, gráficos y evaluación perezosa
      1. Evaluación perezosa
      2. Dependencia de tareas
      3. visualiza
      4. Resultados de las tareas intermedias
      5. Dimensionamiento de tareas
      6. Cuando los gráficos de tareas son demasiado grandes
      7. Combinar cálculo
      8. Persistir, Almacenamiento en caché y Memoización
    6. Tolerancia a fallos
    7. Conclusión
  5. 4. Dask DataFrame
    1. Cómo se construyen los DataFrames Dask
    2. Carga y escritura
      1. Formatos
      2. Sistemas de archivos
    3. Indexación
    4. Baraja
      1. Ventanas rodantes y map_overlap
      2. Agregaciones
      3. Barajado completo y particionado
    5. Operaciones embarazosamente paralelas
    6. Trabajar con varios DataFrames
      1. Funcionamiento interno de Multi-DataFrame
      2. Funcionalidad ausente
    7. Lo que no funciona
    8. Qué es más lento
    9. Manejo de algoritmos recursivos
    10. Datos recalculados
    11. En qué se diferencian otras funciones
    12. Ciencia de datos con Dask DataFrame: Poniéndolo todo junto
      1. Decidir utilizar Dask
      2. Análisis exploratorio de datos con Dask
      3. Carga de datos
      4. Trazar datos
      5. Inspección de datos
    13. Conclusión
  6. 5. Colecciones de Dask
    1. Matrices Dask
      1. Casos de uso habituales
      2. Cuándo no utilizar matrices Dask
      3. Cargar/guardar
      4. Lo que falta
      5. Funciones especiales de Dask
    2. Bolsas Dask
      1. Casos de uso habituales
      2. Cargar y guardar bolsas Dask
      3. Cargar datos desordenados con una bolsa Dask
      4. Limitaciones
    3. Conclusión
  7. 6. Programación avanzada de tareas: Futuros y Amigos
    1. Revisión de la evaluación perezosa y ansiosa
    2. Casos prácticos para Futuros
    3. Lanzando Futuros
    4. Ciclo de vida futuro
    5. Dispara y olvídate
    6. Recuperar resultados
    7. Futuros anidados
    8. Conclusión
  8. 7. Añadir Estado Modificable/Mutable con Actores Dask
    1. ¿Qué es el modelo de actor?
    2. Actores de Dask
      1. Tu primer actor (es una cuenta bancaria)
      2. Escalar los actores de Dask
      3. Limitaciones
    3. Cuándo utilizar actores Dask
    4. Conclusión
  9. 8. Cómo evaluar los componentes y bibliotecas de Dask
    1. Consideraciones cualitativas para la evaluación de proyectos
      1. Prioridades del proyecto
      2. Comunidad
      3. Buenas prácticas específicas de Dask
      4. Dependencias actualizadas
      5. Documentación
      6. Apertura a las aportaciones
      7. Extensibilidad
    2. Métricas cuantitativas para la evaluación de proyectos de código abierto
      1. Historia de la liberación
      2. Frecuencia de compromiso (y volumen)
      3. Uso de la biblioteca
      4. Código y buenas prácticas
    3. Conclusión
  10. 9. Migrar la ingeniería analítica existente
    1. ¿Por qué Dask?
    2. Limitaciones de Dask
    3. Hoja de ruta de la migración
      1. Tipos de agrupaciones
      2. El desarrollo: Consideraciones
      3. Monitoreo de Implementaciones
    4. Conclusión
  11. 10. Dask con GPU y otros recursos especiales
    1. Aceleradores transparentes frente a no transparentes
    2. Comprender si las GPU o las TPU pueden ayudar
    3. Cómo hacer que Dask sea consciente de los recursos
    4. Instalar las bibliotecas
    5. Utilizar recursos personalizados dentro de tus tareas Dask
      1. Decoradores (Incluido Numba)
      2. GPUs
    6. Aceleración de la GPU construida sobre Dask
      1. cuDF
      2. BlazingSQL
      3. cuStreamz
    7. Liberar recursos del acelerador
    8. Patrones de diseño: CPU Fallback
    9. Conclusión
  12. 11. Aprendizaje automático con Dask
    1. Paralelizar el ML
    2. Cuándo utilizar Dask-ML
    3. Primeros pasos con Dask-ML y XGBoost
      1. Ingeniería de funciones
      2. Selección y entrenamiento del modelo
      3. Cuando no hay equivalente Dask-ML
      4. Utilizar con la joblib de Dask
      5. XGBoost con Dask
    4. Modelos ML con Dask-SQL
    5. Inferencia e Implementación
      1. Distribuir datos y modelos manualmente
      2. Inferencias a gran escala con Dask
    6. Conclusión
  13. 12. Producción de Dask: cuadernos, implementación, ajuste y monitoreo
    1. Factores a considerar en una opción de Implementación
    2. Creación de Dask en una Implementación de Kubernetes
    3. Dask en Ray
    4. Dask en YARN
    5. Dask en la informática de alto rendimiento
      1. Configurar Dask en un clúster remoto
      2. Conectar una máquina local a un clúster HPC
    6. Extensión Dask JupyterLab y Magias
      1. Instalar extensiones de JupyterLab
      2. Lanzamiento de Clusters
      3. IU
      4. Observando el progreso
    7. Comprender el rendimiento de Dask
      1. Métricas en computación distribuida
      2. El panel Dask
      3. Guardar y compartir métricas/registros de rendimiento de Dask
      4. Diagnóstico avanzado
    8. Buenas prácticas de escalado y depuración
      1. Escalado manual
      2. Escalado adaptativo/automático
      3. Persistir y eliminar datos costosos
      4. Dask Niñera
      5. Gestión de la memoria del trabajador
      6. Dimensionamiento del clúster
      7. Chunking, revisitado
      8. Evita la reconexión
    9. Trabajos programados
    10. Monitoreo de Implementaciones
    11. Conclusión
  14. A. Conceptos clave del sistema para los usuarios de Dask
    1. Prueba
      1. Pruebas manuales
      2. Pruebas unitarias
      3. Pruebas de integración
      4. Desarrollo basado en pruebas
      5. Pruebas de propiedad
      6. Trabajar con cuadernos
      7. Pruebas fuera del cuaderno
      8. Pruebas en el bloc de notas: Afirmaciones en línea
    2. Validación de datos y resultados
    3. Peer-to-Peer Versus Centralizado Distribuido
    4. Métodos de paralelismo
      1. Paralelismo de tareas
      2. Paralelismo de datos
      3. Equilibrio de carga
    5. Tolerancia a fallos de red y teorema CAP
    6. Recursión (con y sin cola)
    7. Versionado y ramificación: código y datos
    8. Aislamiento y vecinos ruidosos
    9. Tolerancia a fallos de la máquina
    10. Escalabilidad (ascendente y descendente)
    11. Caché, Memoria, Disco y Redes: Cómo cambia el rendimiento
    12. Hashing
    13. Localidad de datos
    14. Exactamente una vez frente a al menos una vez
    15. Conclusión
  15. B. Marcos de datos escalables: Una comparación y algo de historia
    1. Herramientas
      1. Una sola máquina
      2. Distribuido
    2. Conclusión
  16. C. Depuración de Dask
    1. Uso de depuradores
    2. Consejos generales de depuración con Dask
    3. Errores nativos
    4. Algunas notas sobre los consejos oficiales para tratar los registros defectuosos
    5. Diagnóstico Dask
    6. Conclusión
  17. D. Streaming con Streamz y Dask
    1. Primeros pasos con Streamz en Dask
    2. Fuentes y sumideros de datos en streaming
    3. Recuento de palabras
    4. Pipelines GPU en Dask Streaming
    5. Limitaciones, retos y soluciones
    6. Conclusión
  18. Índice
  19. Sobre los autores

Product information

  • Title: Escalando Python con Dask
  • Author(s): Holden Karau, Mika Kimmins
  • Release date: October 2024
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9798341603943