Sistemas de archivos paralelos para las cargas de trabajo de HPC

Organízate con las colecciones Guarda y clasifica el contenido según tus preferencias.

En este documento, se presentan las opciones de almacenamiento en Google Cloud para cargas de trabajo de computación de alto rendimiento (HPC) y explica cuándo usar sistemas de archivos paralelos, como Lustre, para cargas de trabajo de HPC. En un sistema de archivos en paralelo, varios clientes usan rutas de E/S paralelas para acceder a datos compartidos que se almacenan en varios nodos de almacenamiento en red.

La información de este documento está dirigida a los arquitectos y administradores que diseñan, aprovisionan y administran el almacenamiento para las cargas de trabajo de HPC que consumen muchos datos. En el documento, se supone que tienes un conocimiento conceptual de los Sistemas de archivos de red (NFS), sistemas de archivos paralelos, POSIX y los requisitos de almacenamiento de las aplicaciones de HPC.

¿Qué es HPC?

Los sistemas HPC resuelven problemas grandes de procesamiento con rapidez mediante la agregación de varios recursos de procesamiento. La HPC impulsa la investigación y la innovación en sectores como la salud, las ciencias biológicas, los medios de comunicación, el entretenimiento, los servicios financieros y la energía. Los investigadores, científicos y analistas usan sistemas de HPC para realizar experimentos, ejecutar simulaciones y evaluar prototipos. Las cargas de trabajo de HPC, como el procesamiento sísmico, la secuenciación genómica, la renderización de contenido multimedia y el modelado del clima, generan y acceden a grandes volúmenes de datos a tasas de datos en constante aumento y latencias en permanente disminución. El almacenamiento de alto rendimiento y la administración de datos son componentes fundamentales de la infraestructura de HPC.

Opciones de almacenamiento para cargas de trabajo de HPC en Google Cloud

Configurar y operar la infraestructura de HPC de forma local es costoso y la infraestructura requiere un mantenimiento continuo. Además, la infraestructura local, por lo general, no se puede escalar rápidamente para que coincida con los cambios en la demanda. La planificación, la adquisición, la implementación y el retiro de hardware local requieren un tiempo considerable, lo que da como resultado una adición retrasada de recursos de HPC o una capacidad con poco uso. En la nube, puedes aprovisionar de manera eficiente una infraestructura de HPC que use la tecnología más reciente y escalar tu capacidad bajo demanda.

Google Cloud y nuestros socios de tecnología ofrecen opciones de almacenamiento rentables, flexibles y escalables para implementar infraestructura de HPC en la nube y aumentar tu infraestructura de HPC local. Los científicos, los investigadores y los analistas pueden acceder con rapidez a la capacidad adicional de HPC para sus proyectos cuando la necesitan.

Para implementar una carga de trabajo de HPC en Google Cloud, puedes elegir entre los siguientes servicios y productos de almacenamiento, según los requisitos de tu carga de trabajo:

Tipo de carga de trabajo Servicios y productos de almacenamiento recomendados
Cargas de trabajo que necesitan acceso de baja latencia a los datos, pero no requieren E/S extrema para conjuntos de datos compartidos y que tienen uso compartido de datos limitado entre clientes. Usa el almacenamiento NFS. Selecciona alguna de las siguientes opciones:
Cargas de trabajo que generan una E/S compleja, interdependiente y a gran escala, como aplicaciones de HPC con acoplamiento alto que usan la interfaz de envío de mensajes (MPI) para brindar una comunicación confiable entre procesos. Usa un sistema de archivos en paralelo. Selecciona alguna de las siguientes opciones:
Para obtener más información sobre los requisitos de las cargas de trabajo que admiten los sistemas de archivos paralelos, consulta Cuándo usar sistemas de archivos paralelos.

Cuándo usar sistemas de archivos en paralelo

En un sistema de archivos en paralelo, varios clientes almacenan y comparten datos en varios nodos de almacenamiento conectados en red mediante rutas de E/S paralelas. Los sistemas de archivos en paralelos son ideales para cargas de trabajo de HPC con acoplamiento alto, como las cargas de trabajo de inteligencia artificial (IA) con uso intensivo de datos y las cargas de trabajo de análisis que usan aplicaciones SAS. Considera usar un sistema de archivos en paralelo, como Lustre, para cargas de trabajo de HPC sensibles a la latencia que tengan cualquiera de los siguientes requisitos:

  • Procesamiento de datos con acoplamiento alto: Las cargas de trabajo de HPC, como el modelado del clima y la exploración sísmica, deben procesar datos de forma repetitiva mediante muchos trabajos interdependientes que se ejecutan de manera simultánea en varios servidores. Estos procesos suelen usar la MPI para intercambiar datos a intervalos regulares y usan puntos de control a fin de recuperarse con rapidez de las fallas. Los sistemas de archivos en paralelo permiten que los clientes independientes almacenen y accedan a grandes volúmenes de datos compartidos de forma simultánea a través de una red de latencia baja.
  • Compatibilidad con la API de E/S de POSIX y la semántica: Los sistemas de archivos en paralelo, como Lustre, son ideales para cargas de trabajo que necesitan la semántica y la API de POSIX. La API de un sistema de archivos y su semántica son capacidades independientes. Por ejemplo, NFS es compatible con la API de POSIX, que es la forma en que las aplicaciones leen y escriben datos mediante funciones como open(), read() y write(). Pero la forma en que NFS coordina el acceso a los datos entre diferentes clientes no es lo mismo que la semántica de POSIX para coordinar el acceso a los datos entre diferentes subprocesos en una máquina. Por ejemplo, NFS no admite coherencia de caché de lectura después de la escritura de POSIX entre clientes; se basa en la coherencia débil en NFSv3 y la coherencia entre cierre y apertura en NFSv4.
  • Petabytes de capacidad: Los sistemas de archivos en paralelo se pueden escalar a varios petabytes de capacidad en un solo espacio de nombres del sistema de archivos. NetApp Cloud Volumes Service y Filestore de escala masiva admiten hasta 100 TiB por conjunto de datos. Cloud Storage ofrece capacidad confiable y de bajo costo que se escala de forma automática, pero puede que no cumpla con los requisitos de la semántica de uso compartido de datos y de baja latencia de las cargas de trabajo de HPC.
  • Latencia baja y ancho de banda alto: Para las cargas de trabajo de HPC que necesitan acceso de alta velocidad a archivos muy grandes o a millones de archivos pequeños, los sistemas de archivos en paralelo pueden superar el almacenamiento de objetos y NFS. La latencia que ofrecen los sistemas de archivos en paralelo (de 0.5 ms a 10 ms) es significativamente menor que el almacenamiento de objetos, lo que puede afectar las IOPS máximas. Además, el ancho de banda máximo compatible con los sistemas de archivos en paralelo puede ser mucho mayor que en los sistemas basados en NFS. Por ejemplo, DDN EXAScaler en Google Cloud demostró un ancho de banda de lectura de más de 10 Tbps, más de 700 GBps de ancho de banda de escritura y 1.9 millones de llamadas stat() a archivos por segundo mediante la comparativa IO500.
  • Escalamiento extremo del cliente: Si bien el almacenamiento NFS puede admitir miles de clientes, los sistemas de archivos paralelos pueden escalar para admitir el acceso simultáneo a datos compartidos de más de 10,000 clientes.

Ejemplos de aplicaciones de HPC con acoplamiento alto

En esta sección, se describen ejemplos de aplicaciones de HPC con acoplamiento alto que necesitan el almacenamiento de baja latencia y alta capacidad de procesamiento que proporcionan los sistemas de archivos paralelos.

Modelado molecular habilitado para IA

La investigación farmacéutica es un proceso costoso y con un uso intensivo de datos. Las organizaciones modernas de investigación sobre medicamentos usan la IA para reducir los costos de la investigación y el desarrollo, escalar las operaciones de manera eficiente y acelerar la investigación científica. Por ejemplo, los investigadores usan aplicaciones habilitadas para la IA a fin de simular las interacciones entre las moléculas de un fármaco y predecir el efecto de los cambios en los compuestos de este. Estas aplicaciones se ejecutan en procesadores de GPU potentes en paralelo, que transfieren, organizan y analizan una cantidad extrema de datos para completar las simulaciones con rapidez. Los sistemas de archivos en paralelo proporcionan las IOPS de almacenamiento y la capacidad de procesamiento necesarias para maximizar el rendimiento de las aplicaciones de IA.

Análisis de riesgos de crédito con aplicaciones de SAS

Las instituciones de servicios financieros, como los prestamistas hipotecarios y los bancos de inversiones, deben analizar y supervisar de forma constante la solvencia crediticia de sus clientes y de sus carteras de inversión. Por ejemplo, los grandes prestamistas hipotecarios recopilan datos relacionados con el riesgo sobre miles de posibles clientes todos los días. Los equipos de analistas crediticios usan aplicaciones de análisis para revisar de forma colaborativa diferentes partes de los datos de cada cliente, como los ingresos, el historial crediticio y los patrones de gasto. Las estadísticas de este análisis ayudan a los analistas crediticios a realizar recomendaciones de préstamos precisas y oportunas.

Para acelerar y escalar las estadísticas de grandes conjuntos de datos, las instituciones de servicios financieros usan plataformas de computación en red, como SAS Grid Manager. Los sistemas de archivos paralelos, como DDN EXAScaler en Google Cloud, admiten los requisitos de almacenamiento de alta capacidad de procesamiento y baja latencia de las aplicaciones de SAS con subprocesos múltiples.

Pronóstico del tiempo

Para predecir los patrones meteorológicos en una región geográfica determinada, los meteorólogos dividen la región en varias celdas e implementan dispositivos de supervisión, como radares terrestres y globo meteorológicos en cada celda. Estos dispositivos observan y miden las condiciones atmosféricas a intervalos regulares. Los dispositivos transmiten datos de forma continua a una aplicación de predicción meteorológica que se ejecuta en un clúster de HPC.

La aplicación de predicción del tiempo procesa los datos transmitidos mediante modelos matemáticos que se basan en relaciones físicas conocidas entre los parámetros del clima medido. Un trabajo independiente procesa los datos de cada celda de la región. A medida que la aplicación recibe mediciones nuevas, cada trabajo itera en los datos más recientes para su celda asignada y, además, intercambia el resultado con los trabajos de las otras celdas de la región. Para predecir patrones meteorológicos de manera confiable, la aplicación debe almacenar y compartir terabytes de datos que miles de trabajos que se ejecutan en paralelo generan y a los que acceden.

CFD para diseño de aeronáutico

La dinámica de fluidos computacional (CFD) implica el uso de modelos matemáticos, leyes físicas y lógica computacional para simular el comportamiento de un gas o fluido en torno a un objeto en movimiento. Cuando los ingenieros aeronáuticos diseñan el cuerpo de un avión, uno de los factores que consideran es la aerodinámica. CFD permite a los diseñadores simular con rapidez el efecto de los cambios de diseño en la aerodinámica antes de invertir tiempo y dinero en la construcción de prototipos costosos. Después de analizar los resultados de cada ejecución de simulación, los diseñadores optimizan los atributos, como el volumen y la forma de los componentes individuales del cuerpo del avión, y vuelven a simular la aerodinámica. CFD permite que los diseñadores de aerolíneas simulen de forma colaborativa el efecto de cientos de cambios de diseño con rapidez.

Para completar las simulaciones de diseño de manera eficiente, las aplicaciones de CFD necesitan acceso por debajo de milisegundos a los datos compartidos y la capacidad de almacenar grandes volúmenes de datos a velocidades de hasta 100 GBps.

Descripción general de Lustre y EXAScaler Cloud

Lustre es un sistema de archivos en paralelo de código abierto que proporciona almacenamiento de alta capacidad de procesamiento y de baja latencia para cargas de trabajo de HPC con acoplamiento alto. Además de los puntos de activación POSIX estándar en Linux, Lustre admite bibliotecas de E/S y datos, como NetCDF, HDF5 y MPI-IO, lo que permite una E/S paralela en una amplia gama de dominios de aplicaciones. Lustre potencia muchas de las implementaciones de HPC más grandes del mundo. Un sistema de archivos Lustre tiene una arquitectura escalable que contiene los siguientes componentes:

  • Un servidor de administración (MGS) almacena y administra la información de configuración sobre uno o más sistemas de archivos Lustre y proporciona esta información a los otros componentes.
  • Los servidores de metadatos (MDS) administran el acceso del cliente al espacio de nombres de un sistema de archivos Lustre mediante metadatos (por ejemplo, jerarquía de directorios, nombres de archivo y permisos de acceso).
  • Los servidores de almacenamiento de objetos (OSS) administran el acceso de los clientes a los archivos almacenados en un sistema de archivos Lustre.
  • El software del cliente Lustre permite que los clientes activen el sistema de archivos Lustre.

Puede haber varias instancias de MDS y OSS en un sistema de archivos. Puedes agregar nuevas instancias de MDS y OSS cuando sea necesario. Para obtener más información sobre el sistema de archivos Lustre y cómo funciona, consulta la documentación de Lustre.

EXAScaler Cloud es una versión empresarial de Lustre que ofrece DDN, un socio de Google. EXAScaler Cloud es una solución de archivos compartidos para el procesamiento de datos de alto rendimiento y la administración de grandes volúmenes de datos necesarios a fin de admitir cargas de trabajo de IA, HPC y análisis. EXAScaler Cloud es ideal para cargas de trabajo de IA de inferencia y de aprendizaje profundo en Google Cloud. Puedes implementarlo en una arquitectura de nube híbrida para aumentar tu capacidad de HPC local. EXAScaler Cloud también puede servir como un repositorio para almacenar recursos a largo plazo de una implementación local de EXAScaler.

¿Qué sigue?