AWS Batch dzieli pojemność obliczeniową SageMaker Training na udziały przypisane do kolejki SAGEMAKER_TRAINING. W każdym udziale możesz zatrzymać niewykorzystane zasoby dla własnych zadań, udostępniać je innym udziałom albo połączyć udostępnianie z pożyczaniem. Zanim wybierzesz strategię, przygotuj zgodną politykę planowania, środowisko usług i kolejkę. AWS opisuje zasady zarządzania limitami.

Wybierz sposób wykorzystania bezczynnej pojemności

Strategia określa, co AWS Batch robi z zasobami, których dany udział chwilowo nie używa. Dokumentacja AWS Batch opisuje trzy tryby:

StrategiaCo dzieje się z bezczynną pojemnościąCzy inne udziały mogą ją pożyczyć?Skutek dla zespołu
RESERVEPozostaje zarezerwowana dla zadań tego udziału.Nie.Zasoby czekają na własne zadania zamiast trafiać do innych udziałów.
LENDMoże zostać udostępniona innym udziałom.Tak.Gdy udział ponownie potrzebuje zasobów, AWS Batch może odzyskać pożyczoną pojemność przez wywłaszczenie zadań.
LEND_AND_BORROWMoże zostać udostępniona innym udziałom.Tak; zadania tego udziału również mogą pożyczać zasoby w granicach skonfigurowanego limitu.Udział może korzystać z bezczynnych zasobów innych, ale pożyczona pojemność może zostać odzyskana.

Sprawdź limity i powiązania zasobów

Zarządzanie limitami działa tylko w kolejkach połączonych ze środowiskiem usług SAGEMAKER_TRAINING. Udziały są wirtualnymi kolejkami zagnieżdżonymi w jednej Job Queue. AWS podaje następujące ograniczenia:

ElementUdokumentowany limit lub wymógZnaczenie przy projektowaniu
Udziały w jednej Job QueueMaksymalnie 20Zaplanuj podział zespołów i projektów w ramach tego limitu.
Limity pojemności jednego udziałuOd 1 do 5, według typów instancji obsługiwanych przez SageMaker TrainingUstal, jakie typy instancji i limity będą potrzebne danemu udziałowi.
Środowisko usług z zarządzaniem limitamiMoże być połączone z jedną Job Queue z zarządzaniem limitamiNie przypisuj tego samego środowiska do kolejnej takiej kolejki.

Przygotuj politykę, środowisko i kolejkę

Konfiguracja wymaga uprawnień IAM do tworzenia i zarządzania kolejkami AWS Batch, politykami planowania oraz środowiskami usług. Przewodnik AWS dotyczący tworzenia zasobów opisuje następującą kolejność:

  1. Utwórz zgodną Scheduling Policy. Polityka musi zawierać quotaSharePolicy, aby kolejka mogła korzystać z zarządzania limitami.
  2. Utwórz Service Environment typu SAGEMAKER_TRAINING. Określ co najmniej jeden limit pojemności, używając typu instancji akceptowanego przez SageMaker Training. AWS Batch wymaga limitów wyrażonych typami instancji, a nie NUM_INSTANCES.
  3. Utwórz Job Queue typu SAGEMAKER_TRAINING. Połącz ją z przygotowaną polityką i środowiskiem usług. Środowisko nie może być już przypisane do innej kolejki z zarządzaniem limitami.
  4. Utwórz udziały i przypisz im limity. Dla każdego udziału określ co najmniej jeden limit pojemności, a następnie wybierz RESERVE, LEND albo LEND_AND_BORROW.

AWS przedstawia przykładową konfigurację z trzema udziałami, z których każdy ma limit jednej instancji ml.g5.xlarge; maksymalna pojemność środowiska usług wynosi w niej 3 dla tego typu. Pierwszy udział korzysta z LEND_AND_BORROW, drugi z LEND, a trzeci z RESERVE. To przykład podziału zasobów między projekty, nie uniwersalna wartość dla każdej kolejki.

Uwzględnij wywłaszczanie przy zmianie limitów

Gdy udział pożycza zasoby innym, AWS Batch może odzyskać je, kiedy pojawią się zadania potrzebujące tej pojemności. Przy wyborze zadań do wywłaszczenia system bierze pod uwagę liczbę i typ pożyczonych instancji, priorytety zadań oraz ich czas trwania, stosując własną heurystykę.

Obniżenie limitu pojemności może sprawić, że zadania w stanach SCHEDULED, STARTING lub RUNNING staną się kwalifikowane do wywłaszczenia, jeśli udział zużywa więcej zasobów, niż dopuszcza nowy limit. Może to dotyczyć również strategii LEND i RESERVE. W obrębie udziału można też skonfigurować wywłaszczanie zadań o niższym priorytecie na rzecz zadań o wyższym priorytecie.

Sprawdź stan utworzonej kolejki

Po utworzeniu kolejki sprawdź jej stan i status. AWS wskazuje ENABLED jako wymagany stan oraz VALID i JobQueue Healthy jako status i jego przyczynę. Dzięki temu weryfikujesz, czy kolejka osiągnęła wymagany stan przed skierowaniem do niej zadań.