pl:topics:fairshare
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
pl:topics:fairshare [2024/12/06 02:05] – removed - external edit (Unknown date) 127.0.0.1 | pl:topics:fairshare [2024/12/06 02:05] (current) – ↷ Page moved from topics:fairshare to pl:topics:fairshare mkadlof | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Algorytm Fairshare ====== | ||
+ | ===== Streszczenie ===== | ||
+ | |||
+ | Niniejszy artykuł objaśnia zasady ewidencjonowania zasobów i priorytetyzowania zadań w slurmie. Wiedza o tym jak slurm oblicza priorytet zadań nie jest niezbędna do używania klastra, ale brak może doprowadzić do nieefektywnego wykorzystania klastra i w konsekwencji obniżenia priorytetu kolejnych zadań. | ||
+ | |||
+ | ===== Dlaczego zadania są priorytetyzowane? | ||
+ | |||
+ | Ze względu na to, że zasoby są ograniczone, | ||
+ | |||
+ | ===== Czy wszyscy użytkownicy mają taki sam dostęp do zasobów? ===== | ||
+ | |||
+ | |||
+ | Nie. Niektóre grupy użytkowników mogą być uprzywilejowani względem innych. Wynika to ze sposobu finansowania komponentów klastra. Podzespoły klastra mogą być finansowane z konkretnych grantów i dedykowane dla konkretnych grup badawczych. Byłoby jednak marnotrawstwem rezerwowanie zasobów na wyłączność. Dlatego w sytuacji gdy grupa " | ||
+ | |||
+ | ===== Udziały - fairshare ===== | ||
+ | |||
+ | Udziały należy rozumieć podobnie do analogicznego pojęcia ze świata biznesu. Jest nie jako " | ||
+ | |||
+ | Do każdego konta jest przypisany jego udział, oraz jest na nim zapisana ilość zużytych zasobów. Użytkownicy są przypisani do kont. Większość użytkowników jest przypisana tylko do jednego konta, które jest dla nich kontem domyślnym. Niektóre osoby (działające w kilku projektach) mogą być przypisane do różnych kont. W takiej sytuacji użytkownik powinien pamiętać aby podczas uruchamiania zadania explicite wskazywać na które konto ma zostać zapisane zużycie. W przeciwnym razie będzie zawsze obciążać swoje konto domyślne (zazwyczaj pierwsze w kolejności jakie pojawiło się w systemie). Może to zrobić dodając flagę '' | ||
+ | |||
+ | Nazwa konta to najczęściej numer grantu obliczeniowego nadanego podczas zakładania konta. Można również sprawdzić do jakich kont jest się przypisanym przy pomocy polecenia: '' | ||
+ | |||
+ | Jeśli użytkownik nie jest przypisany do żadnego konta, to SLURM nie pozwoli na uruchomienie zadania. Jeśli uważasz, że brak przypisania stanowi błąd lub pomyłkę, to należy się skontaktować z nami mailowo: < | ||
+ | |||
+ | ===== TrackableResources - TRES ==== | ||
+ | |||
+ | <To be done> | ||
+ | |||
+ | ===== W jaki sposób udział ma wpływ na priorytet zadania? ===== | ||
+ | |||
+ | Każdy użytkownik jest przypisany do konta i na którym jest zapisane jakieś zużycie. Obie te wartości są normalizowane do wartości [0-1]. W listingu polecenia '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | Z tej funkcji płynie kilka wniosków: | ||
+ | * Wartość FS zawiera się w przedziale [1-0), | ||
+ | * Wartość FS spada wykładniczo do zera wraz z rosnącym zużyciem, | ||
+ | * Im większy udział tym wolniej spada, | ||
+ | * Wartość FS rośnie gdy rośnie zużycie innych osób (ponieważ '' | ||
+ | |||
+ | Możliwe są następujące interpretacje tego wskaźnika: | ||
+ | * FS = 1 - użytkownicy przypisani do tego konta nie żużyli żadnego z przydzielonych im zasobów. | ||
+ | * 0.5 < FS < 1 - użytkownicy wykorzystują mniej niż im się należy. | ||
+ | * FS = 0.5 - użytkownicy wykorzystują dokładnie tyle im się należy. | ||
+ | * 0 < FS < 0.5 - użytkownicy wykorzystują więcej niż im się należy. | ||
+ | |||
+ | ===== W jaki sposób Fairshare Factor wpływa na priorytet zadania? ===== | ||
+ | |||
+ | Po wysłaniu zadania do kolejki (o ile nie zostaje ono uruchomione natychmiast) SLURM oblicza priorytet zadania. Priorytet jest liczbą całkowitą, | ||
+ | * Fairshare Factor ('' | ||
+ | * Wiek zadania - task age ('' | ||
+ | |||
+ | A więc '' | ||
+ | |||
+ | Wiek zadania rośnie liniowo od 0 do jedynki w taki sposób, że maksymalna wartość jest osiągana po 7 dniach oczekiwania w kolejce. A więc im dłużej zadanie tkwi w kolejce tym większy otrzymuje priorytet. | ||
+ | Wagi mają następujące wartości: | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Liczby są tak duże, aby mieć dość " | ||
+ | |||
+ | Aby zbadań priorytet swoich zadań oraz poszczególne składowe należy użyć polecenia '' | ||
+ | |||
+ | ===== Kiedy FS rośnie ===== | ||
+ | |||
+ | FS rośnie na dwa sposoby: | ||
+ | - Po pierwsze FS rośnie, gdy spada nasz EffectiveUsage - czyli odsetek naszego wykorzystania klastra. Im więcej innych osób będzie używać klaster, tym większy będzie nasz FS. | ||
+ | - Po drugie FS będzie w czasie wracać do wartości 1.0000. Jego "czas półtrwania" | ||
+ | |||
+ | ===== Co się dzieje gdy klaster jest pusty, a mój FS jest niski? | ||
+ | |||
+ | Gdy na klastrze jest dość zasobów by uruchomić zadanie, to zostanie uruchomione bez względu na wysokość FS. Nadal jednak zostanie odnotowane ilość zużytych zasobów i wypłynie to na na wartość FS obliczaną dla kolejnych zadań. Jest to nie jako pożyczenie " | ||
+ | |||
+ | ===== Moje zadania są notorycznie spychane w w kolejce priorytetowej. Co mogę zrobić? ====== | ||
+ | |||
+ | Jeśli na klastrze jest tłok, a Twoje zadania notorycznie otrzymują niski priorytet, to należy zbadać przy pomocy '' | ||
+ | |||
+ | - Czekaj - Im więcej osób wykona obliczenia przed Tobą tym wyższy będzie Twój FS. Jeśli Twój projekt wymaga precyzyjnego przestrzegania deadline' | ||
+ | - Bądź cierpliwy - Ta porada jest tylko pozornie powiązana z powyższą. Odnosi się do drugiego czynnika obliczania priorytetu zadania - jego wieku. Zadanie otrzymuje dodatkowy priorytet im dłużej tkwi w kolejce. Maksymalny priorytet otrzyma po 7-miu dniach. | ||
+ | - Bądź miły dla SLURMA - praca SLURMA przypomina układanie wielowymairowego tetrisa, w którym wymiarami klocków są zapotrzebowanie na Czas, CPU, GPU i RAM. SLURM' | ||
+ | * W pierwszym cyklu SLURM alokuje zadania w kolejności wyznaczonej przez kolejkę priorytetową, | ||
+ | * W drugim cyku SLURM przeszukuje listę zadań szukając dostatecznie małych zadań, które zmieściłyby w " | ||
+ | - Rozbuduj klaster - jeśli dana grupa badawcza ma permanentnie potrzeby przewyższające obecne możliwości klastra, może to być sygnał, że warto rozważyć zakup dodatkowego sprzętu. W takiej sytuacji zakup dodatkowych serwerów obliczeniowych, | ||
+ | |||
+ | === Uwagi końcowe === | ||
+ | |||
+ | W chwili pisania tego artykułu: | ||
+ | - obecnie wyłącznie wykorzystanie CPU jest naliczane w billingu, ale trwają prace konfiguracyjne i testowe, które w przyszłości pozwolą w billingu uwzględniać składowe GPU i RAM. Procesory różnej wydajności będą miały odmienne wagi. | ||
+ | - aktualne proporcje udziałów drukowane przez polecenie '' |