Políticas - Amazon SageMaker AI

Políticas

La gobernanza de tareas de Amazon SageMaker HyperPod simplifica la forma en que se asignan los recursos del clúster de Amazon EKS y la forma en que se priorizan las tareas. A continuación, se proporciona información sobre las políticas del clúster de HyperPod EKS. Para obtener más información acerca de cómo configurar la gobernanza de tareas, consulte Configuración de la gobernanza de tareas.

Las políticas se dividen en Priorización de recursos de computación y Asignación de recursos de computación. Los siguientes conceptos de política se organizarán en el contexto de estas políticas.

La Priorización de recursos de computación, o la política de clústeres, determina cómo se toma prestada la computación inactiva y cómo priorizan las tareas los equipos.

  • La Asignación de recursos de computación define cómo se asignan los recursos de computación inactivos entre los equipos. Es decir, cómo se pueden tomar prestados los recursos de computación inactivos de los equipos. Al elegir una Asignación de recursos de computación inactivos, puede escoger entre:

    • Se ejecutará por orden de llegada: cuando se aplica, los equipos no tienen prioridad entre sí y cada tarea entrante tiene la misma probabilidad de obtener recursos que superen la cuota. Las tareas se priorizan en función del orden de envío. Esto significa que un usuario puede utilizar el 100 % de los recursos de computación inactivos si lo solicita primero.

    • Reparto equitativo: cuando se aplica, los equipos toman prestada la computación inactiva en función de la Distribución equitativa del peso. Estas ponderaciones se definen en Asignación de recursos de computación. Para obtener más información sobre cómo se puede usar, consulte Ejemplos de uso compartido de recursos de computación inactivos.

  • Priorización de tareas define cómo se ponen en cola las tareas a medida que el cálculo está disponible. Al elegir Priorización de tareas, puede escoger entre:

    • Se ejecutará por orden de llegada: cuando se aplican, las tareas se ponen en cola en el orden en que se solicitan.

    • Clasificación de tareas: cuando se aplica, las tareas se ponen en cola en el orden definido según su prioridad. Si elige esta opción, debe agregar las clases de prioridad junto con las ponderaciones con las que se deberían priorizar. Las tareas de la misma clase de prioridad se ejecutarán por orden de llegada. Cuando la opción Asignación de recursos de computación está activada, las tareas del equipo de mayor prioridad se anteponen a las tareas de menor prioridad.

      Cuando los científicos de datos envían trabajos al clúster, utilizan el nombre de la clase de prioridad del archivo YAML. La clase de prioridad tiene el formato priority-class-name-priority. Para ver un ejemplo, consulta Envío de un trabajo a una cola y un espacio de nombres administrados por SageMaker AI.

    • Clases de prioridad: estas clases establecen una prioridad relativa para las tareas cuando toman prestada la capacidad. Cuando una tarea se ejecuta con una cuota prestada, puede anteponerse a otra tarea de mayor prioridad si no hay más capacidad disponible para la tarea entrante. Si Preferencia está activado en Asignación de recursos de computación, una tarea de mayor prioridad también puede tener prioridad sobre las tareas de su propio equipo.

Asignación de recursos de computación, o cuota de computación, define la asignación de recursos de computación de un equipo y el peso (o nivel de prioridad) que se le asigna a un equipo para repartir equitativamente los recursos de computación inactivos.

  • Nombre del equipo: es el nombre del equipo. Se creará un espacio de nombres correspondiente, del tipo hyperpod-ns-team-name.

  • Miembros: miembros del espacio de nombres del equipo. Tendrá que configurar un control de acceso basado en roles (RBAC) de Kubernetes para los usuarios científicos de datos que desee que formen parte de este equipo para ejecutar tareas en clústeres de HyperPod orquestados con Amazon EKS. Para configurar un RBAC de Kubernetes, siga las instrucciones de cómo crear un rol de equipo.

  • Distribución equitativa del peso: es el nivel de prioridad asignado al equipo cuando Reparto equitativo se aplica a Asignación de recursos de computación inactivos. La prioridad más alta tiene una ponderación de 100 y la prioridad más baja de 0. Una mayor ponderación permite al equipo acceder antes a los recursos no utilizados dentro de la capacidad compartida. Una ponderación cero es la prioridad más baja, lo que implica que este equipo siempre estará en desventaja en comparación con otros equipos.

    Una distribución equitativa del peso proporciona a este equipo ventaja comparativa a la hora de competir por los recursos disponibles contra los demás. La admisión da prioridad a la programación de las tareas de los equipos con mayor ponderación y menor préstamo. Por ejemplo, si el equipo A tiene una ponderación de 10 y el equipo B tiene una ponderación de 5, el equipo A tendría prioridad al acceder a los recursos no utilizados, ya que tendría trabajos programados antes que el equipo B.

  • Preferencia de tareas: sustituye a los recursos de computación de una tarea en función de la prioridad. De forma predeterminada, el equipo que presta los recursos de computación inactivos se antepone a las tareas de otros equipos.

  • Prestar y pedir prestado: cómo presta el equipo los recursos de computación inactivos y si el equipo puede pedir prestado a otros equipos.

    • Límite de préstamo: es el límite de recursos de computación inactivo que puede tomar prestado un equipo. Un equipo puede tomar prestado hasta un 500 % de los recursos de computación asignados. El valor que proporcione aquí se interpreta como porcentaje. Por ejemplo, un valor de 500 se interpreta como 500 %.

Para obtener más información sobre cómo se utilizan estos conceptos, como las clases de prioridad y los espacios de nombres, consulte Ejemplos de comandos de la AWS CLI de gobernanza de tareas de HyperPod.

Ejemplos de uso compartido de recursos de computación inactivos

La cuota total reservada no debe superar la capacidad disponible del clúster para ese recurso, a fin de garantizar una gestión adecuada de la cuota. Por ejemplo, si un clúster está compuesto por 20 instancias de ml.c5.2xlarge, la cuota acumulada asignada a los equipos debe permanecer por debajo de 20.

Si las políticas Asignación de recursos de computación para los equipos permiten Prestar y pedir prestado o Prestar, la capacidad inactiva se comparte entre esos equipos. Por ejemplo, los equipos A y B tienen habilitada la opción Prestar y pedir prestado. El equipo A tiene una cuota de 6, pero solo usa 2 para sus trabajos, mientras que el equipo B tiene una cuota de 5 y usa 4 para sus trabajos. Si se envía un trabajo al equipo B que requiere 4 recursos, tendrá que tomar prestados 3 del equipo A.

Si la política Asignación de recursos de computación se fija en No prestar, el equipo no podrá pedir prestada ninguna capacidad adicional aparte de sus propias asignaciones.

Para mantener un grupo o un conjunto de recursos que puedan tomar prestado todos los equipos, puede crear un equipo dedicado con recursos que cubran la brecha entre las asignaciones de otros equipos y la capacidad total del clúster. Asegúrese de que esta asignación acumulada de recursos incluya los tipos de instancia adecuados y no supere la capacidad total del clúster. Para garantizar que estos recursos se puedan compartir entre los equipos, permita que los equipos participantes tengan sus asignaciones de recursos de computación configuradas para Prestar y pedir prestado o Prestar para este grupo común de recursos. Cada vez que se introduzcan nuevos equipos, se modifiquen las asignaciones de cuotas o se produzca algún cambio en la capacidad del clúster, revise las asignaciones de cuotas de todos los equipos y asegúrese de que la cuota acumulada se mantenga igual o por debajo de la capacidad del clúster.