Transición de AWS ParallelCluster 2.x a 3.x - AWS ParallelCluster

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Transición de AWS ParallelCluster 2.x a 3.x

Acciones de arranque personalizadas

Con AWS ParallelCluster 3, puede especificar diferentes scripts de acciones de arranque personalizados para el nodo principal y los nodos de computación utilizando los parámetros OnNodeStart (pre_install en la versión 2 de AWS ParallelCluster) y OnNodeConfigured (post_install en la versión 2 de AWS ParallelCluster) en las secciones HeadNode y Scheduling/SlurmQueues. Para obtener más información, consulte Acciones de arranque personalizadas.

Los scripts de acciones de arranque personalizados que se han desarrollado para AWS ParallelCluster 2 deben adaptarse para su uso en AWS ParallelCluster 3:

  • No recomendamos usar /etc/parallelcluster/cfnconfig ni cfn_node_type para diferenciar entre nodos principales y de computación. En su lugar, le recomendamos que especifique dos scripts diferentes en HeadNode y Scheduling/SlurmQueues.

  • Si prefiere seguir cargando /etc/parallelcluster/cfnconfig para usarlo en su script de acciones de arranque, tenga en cuenta que el valor de cfn_node_type ha cambiado de “MasterServer” a “HeadNode” (consulte: Lenguaje inclusivo).

  • En AWS ParallelCluster 2, el primer argumento de entrada para los scripts de acciones de arranque era la URL S3 del script y estaba reservado. En AWS ParallelCluster 3, solo los argumentos configurados en la configuración se pasan a los scripts.

aviso

Oficialmente, no se admite el uso de variables internas proporcionadas a través del archivo /etc/parallelcluster/cfnconfig. Es posible que este archivo se elimine como parte de una versión futura.

AWS ParallelCluster 2.x y 3.x utilizan una sintaxis de archivo de configuración diferente

La configuración de AWS ParallelCluster 3.x usa la sintaxis YAML. La referencia completa se encuentra en Archivos de configuración.

Además de requerir un formato de archivo YAML, en AWS ParallelCluster 3.x se han actualizado varias secciones de configuración, ajustes y valores de parámetros. En esta sección, analizamos los cambios clave en la configuración de AWS ParallelCluster junto con ejemplos paralelos que ilustran estas diferencias en cada versión de AWS ParallelCluster.

Ejemplo de configuración de varias colas del programador con el hiperprocesamiento habilitado y deshabilitado

AWS ParallelCluster 2:

[cluster default] queue_settings = ht-enabled, ht-disabled ... [queue ht-enabled] compute_resource_settings = ht-enabled-i1 disable_hyperthreading = false [queue ht-disabled] compute_resource_settings = ht-disabled-i1 disable_hyperthreading = true [compute_resource ht-enabled-i1] instance_type = c5n.18xlarge [compute_resource ht-disabled-i1] instance_type = c5.xlarge

AWS ParallelCluster 3:

... Scheduling: Scheduler: slurm SlurmQueues: - Name: ht-enabled Networking: SubnetIds: - compute_subnet_id ComputeResources: - Name: ht-enabled-i1 DisableSimultaneousMultithreading: true InstanceType: c5n.18xlarge - Name: ht-disabled Networking: SubnetIds: - compute_subnet_id ComputeResources: - Name: ht-disabled-i1 DisableSimultaneousMultithreading: false InstanceType: c5.xlarge

Ejemplo de nueva configuración de sistema de archivos FSx for Lustre

AWS ParallelCluster 2:

[cluster default] fsx_settings = fsx ... [fsx fsx] shared_dir = /shared-fsx storage_capacity = 1200 imported_file_chunk_size = 1024 import_path = s3://bucket export_path = s3://bucket/export_dir weekly_maintenance_start_time = 3:02:30 deployment_type = PERSISTENT_1 data_compression_type = LZ4

AWS ParallelCluster 3:

... SharedStorage: - Name: fsx MountDir: /shared-fsx StorageType: FsxLustre FsxLustreSettings: StorageCapacity: 1200 ImportedFileChunkSize: 1024 ImportPath: s3://bucket ExportPath: s3://bucket/export_dir WeeklyMaintenanceStartTime: "3:02:30" DeploymentType: PERSISTENT_1 DataCompressionType: LZ4

Ejemplo de una configuración de clúster que monta un sistema de archivos FSx for Lustre existente

AWS ParallelCluster 2:

[cluster default] fsx_settings = fsx ... [fsx fsx] shared_dir = /shared-fsx fsx_fs_id = fsx_fs_id

AWS ParallelCluster 3:

... SharedStorage: - Name: fsx MountDir: /shared-fsx StorageType: FsxLustre FsxLustreSettings: FileSystemId: fsx_fs_id

Ejemplo de un clúster con la pila de software de especificación de plataforma Intel HPC

AWS ParallelCluster 2:

[cluster default] enable_intel_hpc_platform = true ...

AWS ParallelCluster 3:

... AdditionalPackages: IntelSoftware: IntelHpcPlatform: true

Notas:

Ejemplo de configuraciones de IAM personalizadas, que incluyen: el perfil de la instancia, el rol de la instancia, las políticas adicionales para las instancias y el rol de las funciones de lambda asociadas al clúster

AWS ParallelCluster 2:

[cluster default] additional_iam_policies = arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess,arn:aws:iam::aws:policy/AmazonDynamoDBReadOnlyAccess ec2_iam_role = ec2_iam_role iam_lambda_role = lambda_iam_role ...

AWS ParallelCluster 3:

... Iam: Roles: CustomLambdaResources: lambda_iam_role HeadNode: ... Iam: InstanceRole: ec2_iam_role Scheduling: Scheduler: slurm SlurmQueues: - Name: queue1 ... Iam: InstanceProfile: iam_instance_profile - Name: queue2 ... Iam: AdditionalIamPolicies: - Policy: arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess - Policy: arn:aws:iam::aws:policy/AmazonDynamoDBReadOnlyAccess

Notas:

  • En el caso de AWS ParallelCluster 2, la configuración de IAM se aplica a todas las instancias de un clúster y no se puede usar additional_iam_policies junto con ec2_iam_role.

  • En el caso de AWS ParallelCluster 3, puede tener diferentes configuraciones de IAM para los nodos principales y de computación e incluso especificar diferentes configuraciones de IAM para cada cola de computación.

  • En el caso de AWS ParallelCluster 3, puede utilizar un perfil de instancia de IAM como alternativa a un rol de IAM. InstanceProfile, InstanceRole o AdditionalIamPolicies no se pueden configurar juntos.

Ejemplo de acciones de arranque personalizadas

AWS ParallelCluster 2:

[cluster default] s3_read_resource = arn:aws:s3:::bucket_name/* pre_install = s3://bucket_name/scripts/pre_install.sh pre_install_args = 'R curl wget' post_install = s3://bucket_name/scripts/post_install.sh post_install_args = "R curl wget" ...

AWS ParallelCluster 3:

... HeadNode: ... CustomActions: OnNodeStart: Script: s3://bucket_name/scripts/pre_install.sh Args: - R - curl - wget OnNodeConfigured: Script: s3://bucket_name/scripts/post_install.sh Args: ['R', 'curl', 'wget'] Iam: S3Access: - BucketName: bucket_name Scheduling: Scheduler: slurm SlurmQueues: - Name: queue1 ... CustomActions: OnNodeStart: Script: s3://bucket_name/scripts/pre_install.sh Args: ['R', 'curl', 'wget'] OnNodeConfigured: Script: s3://bucket_name/scripts/post_install.sh Args: ['R', 'curl', 'wget'] Iam: S3Access: - BucketName: bucket_name

Ejemplo de un clúster con acceso de lectura y escritura a los recursos del bucket de S3

AWS ParallelCluster 2:

[cluster default] s3_read_resource = arn:aws:s3:::bucket/read_only/* s3_read_write_resource = arn:aws:s3:::bucket/read_and_write/* ...

AWS ParallelCluster 3:

... HeadNode: ... Iam: S3Access: - BucketName: bucket_name KeyName: read_only/ EnableWriteAccess: False - BucketName: bucket_name KeyName: read_and_write/ EnableWriteAccess: True Scheduling: Scheduler: slurm SlurmQueues: - Name: queue1 ... Iam: S3Access: - BucketName: bucket_name KeyName: read_only/ EnableWriteAccess: False - BucketName: bucket_name KeyName: read_and_write/ EnableWriteAccess: True

Lenguaje inclusivo

AWS ParallelCluster 3 usa los términos “nodo principal” en los lugares donde se usó “maestro” en AWS ParallelCluster 2. Estas incluyen las siguientes:

  • La variable exportada en el entorno de trabajo de AWS Batch ha cambiado de MASTER_IP a PCLUSTER_HEAD_NODE_IP.

  • Todas las salidas de AWS CloudFormation han cambiado de Master* a HeadNode*.

  • Todos los NodeType y las etiquetas han cambiado de Master a HeadNode.

Compatibilidad con el programador

AWS ParallelCluster 3.x no es compatible con los programadores Son of Grid Engine (SGE) y Torque.

Los comandos de AWS Batch awsbhosts, awsbkill, awsbout, awsbqueues, awsbstat y awsbsub se distribuyen como un paquete PyPI aws-parallelcluster-awsbatch-cli independiente. Este paquete lo instala AWS ParallelCluster en el nodo principal. Puede seguir utilizando estos comandos de AWS Batch desde el nodo principal del clúster. Sin embargo, si desea utilizar los comandos AWS Batch desde una ubicación que no sea el nodo principal, primero debe instalar el paquete PyPI aws-parallelcluster-awsbatch-cli.

AWS ParallelCluster CLI

Se ha cambiado la interfaz de la línea de comandos (CLI) de AWS ParallelCluster. La nueva sintaxis se describe en Comandos de la CLI de AWS ParallelCluster. El formato de salida de la CLI es una cadena JSON.

Configuración de un clúster nuevo

El comando pcluster configure incluye parámetros diferentes en AWS ParallelCluster 3 en comparación con AWS ParallelCluster 2. Para obtener más información, consulte pcluster configure.

Tenga en cuenta también que la sintaxis del archivo de configuración ha cambiado desde AWS ParallelCluster 2. Para obtener una referencia completa de los ajustes de configuración del clúster, consulteConfiguración del clúster.

Creación de un clúster

El comando pcluster create de AWS ParallelCluster 2 se ha sustituido por el comando pcluster create-cluster.

Tenga en cuenta que el comportamiento predeterminado en AWS ParallelCluster 2.x, sin la opción -nw, es esperar a que se creen los clústeres, mientras que el comando de AWS ParallelCluster 3.x realiza una devolución inmediata. El progreso de la creación del clúster se puede monitorear mediante pcluster describe-cluster.

Un archivo de configuración de AWS ParallelCluster 3 contiene una única definición de clúster, por lo que el parámetro -t ya no es necesario.

A continuación, se muestra un ejemplo de archivo de configuración.

# AWS ParallelCluster v2 $ pcluster create \ -r REGION \ -c V2_CONFIG_FILE \ -nw \ -t CLUSTER_TEMPLATE \ CLUSTER_NAME # AWS ParallelCluster v3 $ pcluster create-cluster \ --region REGION \ --cluster-configuration V3_CONFIG_FILE \ --cluster-name CLUSTER_NAME

Mostrar clústeres

El comando AWS ParallelCluster de pcluster list 2.x debe sustituirse por el comando pcluster list-clusters.

Nota: Necesita la CLI de AWS ParallelCluster versión 2 para mostrar los clústeres creados con las versiones 2.x de AWS ParallelCluster. Consulte Instalar AWS ParallelCluster en un entorno virtual (recomendado) para descubrir cómo instalar varias versiones de AWS ParallelCluster usando entornos virtuales.

# AWS ParallelCluster v2 $ pcluster list -r REGION # AWS ParallelCluster v3 $ pcluster list-clusters --region REGION

Inicio y detención de un clúster

Los comandos pcluster stop y AWS ParallelCluster de pcluster start 2.x deben sustituirse por los comandos pcluster update-compute-fleet.

Inicio de una flota de computación:

# AWS ParallelCluster v2 $ pcluster start \ -r REGION \ CLUSTER_NAME # AWS ParallelCluster v3 - Slurm fleets $ pcluster update-compute-fleet \ --region REGION \ --cluster-name CLUSTER_NAME \ --status START_REQUESTED # AWS ParallelCluster v3 - AWS Batch fleets $ pcluster update-compute-fleet \ --region REGION \ --cluster-name CLUSTER_NAME \ --status ENABLED

Detención de una flota de computación:

# AWS ParallelCluster v2 $ pcluster stop \ -r REGION \ CLUSTER_NAME # AWS ParallelCluster v3 - Slurm fleets $ pcluster update-compute-fleet \ --region REGION \ --cluster-name CLUSTER_NAME \ --status STOP_REQUESTED # AWS ParallelCluster v3 - AWS Batch fleets $ pcluster update-compute-fleet \ --region REGION \ --cluster-name CLUSTER_NAME \ --status DISABLED

Conexión a un clúster

El comando AWS ParallelCluster de pcluster ssh 2.x tiene diferentes nombres de parámetros en AWS ParallelCluster 3.x. Consulte pcluster ssh.

Conexión a un clúster:

# AWS ParallelCluster v2 $ pcluster ssh \ -r REGION \ CLUSTER_NAME \ -i ~/.ssh/id_rsa # AWS ParallelCluster v3 $ pcluster ssh \ --region REGION \ --cluster-name CLUSTER_NAME \ -i ~/.ssh/id_rsa

Actualización de la configuración de IMDS

A partir de la versión 3.0.0, AWS ParallelCluster introdujo la compatibilidad para restringir el acceso al IMDS del nodo principal (y a las credenciales del perfil de la instancia) a un subconjunto de superusuarios, de forma predeterminada. Para obtener más información, consulte Propiedades de Imds.