En muchas cargas de trabajo de HPC, lograr el mejor rendimiento en toda una aplicación o un flujo de trabajo depende de elegir la tecnología adecuada para alojar sus archivos durante el procesamiento o la configuración de la pila de red a fin de obtener un rendimiento óptimo para MPI u otros protocolos de comunicación. Este módulo abarca las opciones que ofrece AWS en estas áreas y ofrece una guía en cuanto a las consideraciones de precio/rendimiento que pueden ayudarlo a elegir las soluciones adecuadas para cada carga de trabajo.

Temas cubiertos:

  • Almacenamiento en AWS para HPC
  • Escalabilidad de red para cargas de trabajo de HPC

Información general de las opciones de almacenamiento en AWS: AWS ofrece numerosas opciones de almacenamiento, que van desde el almacenamiento de objetos de alto rendimiento a muchos tipos de sistemas de archivos que se pueden asociar a una instancia EC2. Además del rendimiento, varias dimensiones diferencian estos tipos de almacenamiento, incluido el costo y la escalabilidad. La siguiente tabla le servirá como orientación a fin de determinar el almacenamiento correcto para cada uno de sus datos de HPC:

Sistemas de archivos compartidos para HPC: El almacenamiento compartido se logra de muchas formas, por ejemplo, con un sencillo montaje NFS de un volumen de EBS, con Intel Lustre montado desde los volúmenes de EBS y con el servicio administrado de AWS llamado EFS. Al igual que con el tipo de instancia, resulta fácil probar opciones de almacenamiento a fin de encontrar el tipo de sistema de archivos de mayor rendimiento.

Almacenamiento conectado a la instancia: Los volúmenes de EBS también están disponibles en una amplia variedad de opciones que abarcan un alto volumen de IOPS, opciones de uso múltiple y opciones magnéticas. Muchas aplicaciones de HPC se ejecutan muy bien en los tipos de almacenamiento de EBS y de volumen magnético de bajo costo. Al igual que con la selección de instancias, la selección de volúmenes de EBS es fácil de probar, lo que permite una solución optimizada.

Configuración de almacenamiento en laboratorio: Las opciones de configuración de almacenamiento utilizadas en la automatización de EnginFrame predeterminada son las siguientes.

  • Los scripts de integración se montan en un volumen de EFS bajo /efs en los nodos maestro y de ejecución; este sistema de archivos contiene un directorio para aplicaciones y un directorio de gestión de colas que, de forma predeterminada, aloja un directorio de envío independiente para cada uno de sus trabajos.
  • AWS ParallelCluster también proporciona un volumen gp2 de EBS asociado al nodo maestro y montado en NFS para ejecutar los nodos como /shared.
  • El directorio /home de la instancia principal también está montado en NFS en los nodos de ejecución. Como está instalado en el mismo sistema de archivos que el sistema operativo, no se recomienda la utilización del almacenamiento persistente.

El rendimiento de estos sistemas de archivos compartidos puede variar considerablemente de una carga de trabajo a otra. Para entender cuál se adapta mejor a sus necesidades, el mejor enfoque es realizar un estudio comparativo del mismo caso en /efs (que se ha configurado como la ubicación predeterminada en EnginFrame) y /shared.


Redes actuales de AWS: AWS admite actualmente capacidades de redes mejoradas que utilizan SR-IOV (virtualización de E/S de raíz única). SR-IOV es un método de virtualización de dispositivos que mejora el rendimiento de E/S y reduce la utilización de la CPU en comparación con las implementaciones tradicionales. En instancias de Amazon EC2 compatibles, esta característica ofrece un rendimiento superior en paquetes por segundo (PPS), una reducción de la latencia entre instancias y muy poco ruido de red, y se ha demostrado que funciona bien tanto para la informática de alto rendimiento (HTC) y aplicaciones “lamentablemente paralelas” como para aplicaciones de HPC “muy estrechas” o basadas en MPI y en OpenMP. 

La velocidad de la red depende del tipo y el tamaño de la instancia, por ejemplo, r4.16xlarge proporciona 20 gigabits de conectividad entre las instancias cuando se utiliza el mismo grupo de ubicación (una agrupación lógica de instancias) y redes mejoradas.

Laboratorio de configuración de red: De forma predeterminada, el laboratorio crea un nuevo grupo de ubicación y exige que todos los nodos de ejecución del clúster se lancen en él. Esto ofrece la menor latencia y el mayor ancho de banda entre los nodos, lo que es especialmente importante si ejecuta aplicaciones MPI. Si tiene un problema en HTC que se escala de forma horizontal a decenas de miles de núcleos o más (lo que está fuera del ámbito de este laboratorio), debe evaluar la ejecución en varios grupos de ubicación para ofrecer a EC2 más flexibilidad sobre dónde asignar esta gran cantidad de nodos. Puede deshabilitar el uso de un grupo de ubicación fija mediante la configuración del siguiente parámetro en la configuración de AWS ParallelCluster:

placement_group = NONE

Consejo: Si necesita escalar el clúster a un gran número de nodos o tiene requisitos de almacenamiento de alto rendimiento, es una buena idea hablar con su director técnico de cuenta o con un arquitecto de soluciones de HPC, que pueden analizar la arquitectura de destino, ayudar a identificar posibles cuellos de botella y escoger las tecnologías correctas para sus objetivos específicos.