Pierwszym krokiem do uruchamiania programów jest przydzielenie zasobów obliczeniowych. Użytkownik z poziomu Trytona może zadeklarować ilość i rodzaj zasobów jakie są potrzebne do wykonania zadania. Więcej na temat systemu kolejkowego można znaleźć w dokumentacji Aplikacji narzędziowych i systemowych. Należy mieć na uwadze, że dostępność i ilość zasobów na Trytonie jest ograniczona, więcej na ten temat w wątku Zasoby sprzętowe. W celu przydzielenia zasobów potrzebnych do wykonania uczenia maszynowego na klastrze obliczeniowym należy przydzielić zadanie do kolejki w SLURM. Można to zrobić na kilka sposobów.
- Alokacja interaktywnych węzłów i pracy bezpośrednio na nich.
salloc --partition=gpu-a100 --gres=gpu:a100:<liczba-kart> --nodes=<liczba-węzłów> --time=<czas-trwania>
- Skrypt powłoki przydzielający zasoby do zadania a następnie wykonanie operacji na węzłach obliczeniowych za pomocą komend z dalszej części skryptu.
#!/bin/bash
#SBATCH --partition=gpu-a100
#SBATCH --gres=gpu:a100:<liczba-kart>
#SBATCH --time=<czas-trwania>
#SBATCH --nodes=<liczba-węzłów>
<dalsza-część-skryptu>
Uwaga: W SLURM określamy tylko zasoby, które muszą być dostępne aby wykonać naszą pracę. Jeśli określimy dwie karty graficzne w zadaniu sbatch, nie oznacza to, że proces będzie działał na dwóch GPU, tylko są one dostępne dla użytku. Oznacza to między innymi, że wszelkie procesy rozpraszania i zrównoleglania obliczeń należy przygotować we własnym zakresie.
Uwaga: W skrypcie sbatch komendy w dalszej części programu są uruchamiane domyślnie tylko na jednym węźle obliczeniowym, tym z najmniejszą cyfrą przy nazwie akiv.