Pierwszym krokiem do uruchamiania programów jest przydzielenie zasobów obliczeniowych. Użytkownik z poziomu Trytona Plus 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-80gb --gres=gpu:a100_80gb:liczba_kart --nodes=<liczba-węzłów> --time=czas
- 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-80gb #SBATCH --gres=gpu:a100_80gb:1 #SBATCH --time=00:10:00 #SBATCH --nodes=1 <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.