🖥️ Diapositivas — Sesión 02 (vie 2 oct)
Veremos cómo trabajar con distintos entornos.
Entorno local¶
Para trabajar localmente con Python y cuadernos de Jupyter.
Recomendamos Visual Studio Code para editar código y cuadernos, ejecutarlos e interactuar con GitHub. Así escribimos este libro, y ahí viven la mayoría de los asistentes de IA agéntica (vea 1.8).
Desde su sistema operativo o desde VS Code, abra una terminal. La terminal pasa comandos a la computadora a través de un shell; BASH (Bourne Again SHell) es la implementación más común. Hay buenos tutoriales para empezar en las lecciones de los Software Carpentries.
Conozca su hardware. Averigüe qué CPU, GPU y memoria tiene su máquina. htop monitorea los recursos en tiempo real; instálelo localmente (por ejemplo, brew install htop en macOS).
CPU, GPU y otros aceleradores¶
Las cargas de trabajo de aprendizaje automático (machine learning, ML) se paralelizan. Las CPU (unidades centrales de procesamiento) bastan para la mayoría del ML clásico: son el hardware por defecto de toda computadora y manejan bien la entrada/salida de conjuntos de datos grandes. Las CPU suelen tener entre 8 y 96 núcleos.
El aprendizaje profundo (deep learning) — tanto el entrenamiento de modelos como la inferencia con modelos ya entrenados — se apoya en el paralelismo mucho más amplio de los aceleradores:
- Las GPU de NVIDIA siguen siendo el estándar. El modelo de programación CUDA (2007) hizo práctico el cómputo general en GPU, y PyTorch lo tiene como primer objetivo. Las GPU tienen miles de núcleos (aproximadamente entre 5 000 y 20 000).
- Las Mac con Apple silicon tienen una GPU integrada que PyTorch usa a través del backend MPS (Metal Performance Shaders):
device = "mps". Es más que suficiente para los modelos de este curso, así que una MacBook reciente es una máquina legítima de aprendizaje profundo para problemas a escala de clase. - Las TPU (unidades de procesamiento tensorial) son los aceleradores de Google, disponibles en Google Cloud y en Colab.
Para observar cómo se está usando una GPU de NVIDIA:
watch nvidia-smiAlquilar GPU cuesta dinero real. A 2026, el precio en la nube bajo demanda va desde bastante menos de un dólar por hora para una GPU modesta hasta varios dólares por hora para una GPU actual de centro de datos, y las instancias spot/interrumpibles son más baratas pero pueden interrumpirse. De ahí siguen dos hábitos: medir y reportar su tiempo de cómputo (el proyecto final lo exige), y dimensionar el hardware al problema — la mayoría de los proyectos del curso se entrena en minutos en una laptop o en una GPU gratuita de Colab, y comprar una GPU más grande no sustituye un problema mejor planteado.
Las CPU individuales componen un nodo. Varios nodos componen un clúster. Los clústeres pueden ser locales (¡con suerte!) y, más a menudo, remotos. Niveles típicos: la máquina de su grupo de investigación, el clúster institucional (por ejemplo, Hyak en la Universidad de Washington), un centro nacional de HPC (por ejemplo, TACC en Estados Unidos — muchas universidades latinoamericanas operan clústeres propios, como el Miztli de la UNAM), o un proveedor de nube (AWS, Azure, GCP). En el cómputo en la nube, un nodo es una instancia.
HPC¶
HPC (cómputo de alto rendimiento, High Performance Computing) se refiere a un sistema de nodos estrechamente conectados para trabajos a gran escala. Los Software Carpentries tienen tutoriales sobre el uso de clústeres: vea las lecciones Introduction to HPC. Estas arquitecturas permiten el «escalado vertical»: más CPU, memoria o entrada/salida por trabajo.
Los sistemas HPC tienen 1) un clúster de cómputo, 2) un sistema de archivos scratch (temporal) y 3) un sistema de archivos home. El código vive en home, los datos grandes en scratch, y los trabajos corren en el clúster de cómputo a través de una cola de planificación. Es habitual correr trabajos grandes en cientos a miles de nodos.
Cada institución puede tener su propio sistema HPC. En la Universidad de Washington, el sistema se llama Hyak.
Los recursos nacionales de HPC de Estados Unidos requieren una solicitud de asignación, típicamente a través de NSF ACCESS o TACC. ACCESS tiene un nivel de entrada adecuado para proyectos de curso e investigación exploratoria.
Típicamente uno 1) elige el recurso HPC y luego 2) mueve los datos ahí para el flujo de cómputo.
Nube¶
El cómputo en la nube se refiere a un sistema de nodos débilmente conectados. Hay muchos proveedores de nube, con tres a la cabeza: Amazon Web Services (AWS), Google Cloud Platform (GCP) y Microsoft Azure.
Los centros de nube están distribuidos por el mundo para permitir acceso global rápido; los centros se llaman regions.
Almacenar y mover datos suele ser la parte más cara de la geociencia en la nube. Típicamente uno 1) averigua dónde están archivados los datos y luego 2) elige el proveedor de nube y la region donde viven esos datos, para que el cómputo corra junto a los datos.
Vea un tutorial de eScience para empezar en AWS (en inglés): Getting started on AWS (video).
Cuadernos gratuitos y de bajo costo¶
- Google Colab da a cualquiera con una cuenta de Google un cuaderno alojado, con un nivel gratuito que incluye tiempo limitado de GPU o TPU; los niveles de pago agregan hardware más rápido y sesiones más largas. Colab es la vía más rápida para probar una GPU en este curso. Cuaderno de ejemplo:
- GitHub Codespaces lanza un entorno VS Code en la nube directamente desde un repositorio, con una cuota mensual gratuita para cuentas personales. Como arranca desde su repositorio y sus archivos de entorno, es una buena prueba de si su proyecto es realmente reproducible.
Datos abiertos en las nubes¶
Las grandes nubes alojan archivos abiertos de geociencias de gran tamaño, y vale la pena saber dónde viven los datos aunque usted compute en otra parte:
- El AWS Open Data registry aloja muchos archivos de geociencias en S3, de acceso gratuito. Ejemplos usables en este libro:
- El Microsoft Planetary Computer cataloga petabytes de datos ambientales en Azure (catálogo, por ejemplo Landsat). Los datos y la API STAC son de acceso abierto; el cómputo junto a ellos corre en recursos propios de Azure.
- Source Cooperative es un repositorio de datos geoespaciales abiertos alojados en la nube, operado por la organización sin fines de lucro Radiant Earth (sucede al retirado Radiant MLHub).
- Hugging Face datasets aloja un número creciente de conjuntos de datos de ciencias de la Tierra listos para ML y colecciones de referencia, descargables con la biblioteca
datasets.
Los modelos de acceso cambian; revise los términos vigentes de cada proveedor en lugar de asumir que hay un nivel gratuito.