Nakładające się kolejki w Sun Grid Engine?

5

Chcielibyśmy mieć klaster obliczeniowy oparty na SGE z kolejką, która zapewnia dostęp do wszystkich węzłów dla personelu obliczeniowego, oraz drugą kolejkę klastrową, która daje dostęp, powiedzmy, do połowy węzłów do sporadycznego (ale intensywnego) użycia przez inny personel .

Chcemy ograniczyć zasoby drugiej kolejki, aby personel obliczeniowy mógł nadal wykonywać pewną pracę, nawet w przypadku sporadycznego (ale intensywnego) użycia przez osoby nieposiadające komputera. personel.

Czy istnieje sposób skonfigurowania dwóch (lub więcej) kolejek SGE jednej kolekcji węzłów, tak aby jedna kolejka mogła zawierać wszystkie węzły, a druga kolejka zawiera podzbiór tych samych węzłów, a obie kolejki działały jednocześnie?

Jakie konkretne parametry konfiguracyjne SGE badałbym, aby skonfigurować coś takiego?

Alex Reynolds
źródło

Odpowiedzi:

5

Jasne, jest to całkowicie możliwe. Kolejki SGE są od siebie niezależne, więc możesz przypisać dowolne węzły do ​​każdej kolejki, pozwalając im na nakładanie się, jak chcesz.

Aby utworzyć kolejkę, wpisz qconf -aq: otworzy to domyślny edytor (zwykle vim). Wpisz nazwę kolejki jako qname, dodaj hosty, które chcesz przypisać hostlist, i slotsdodaj listę rozdzielaną przecinkami pozycji formatu [hostname=numslots]. Zazwyczaj liczba gniazd to liczba rdzeni w hoście, ale jeśli wolisz, możesz subskrybować lub nadmiernie subskrybować. Jeśli chcesz, aby kolejki się nakładały, po prostu dodaj te same hosty do wielu kolejek.

Należy jednak pamiętać, że domyślnie nakładające się kolejki nie są świadome wzajemnego wykorzystania. Obaj z radością przydzielą zadania do tego samego węzła i oczekują, że zostaną uruchomione.

Najczęstszym sposobem, aby temu zapobiec, jest uczynienie węzłów wyłącznymi dla zadań, dzięki czemu jednocześnie może działać tylko jedno zadanie. (Jest to ustawienie domyślne w innych programach planujących, takich jak PBS.) SGE sprawia, że ​​jest to trochę skomplikowane i obejmuje tworzenie wirtualnego „zasobu”, z którego można korzystać tylko raz na węzeł. Aby to zrobić, wpisz, qconf -mcaby zarządzać zasobami eksploatacyjnymi . Otworzy się edytor zawierający listę materiałów eksploatacyjnych: dodaj nowy o nazwie „wyłączny”, na przykład:

#name          shortcut     type         relop  requestable  consumable  default  urgency
#-----------------------------------------------------------------------------------------
exclusive      excl         BOOL         EXCL   YES          YES          1        1000

Aby uzyskać więcej informacji, zobacz wiki silnika grid .

Możesz także skonfigurować tak zwane kolejki podrzędne . W ten sposób ustawiasz jedną kolejkę tak, aby automatycznie zastępowała drugą, gdy przypisana zostanie pewna liczba gniazd na węzeł. Aby to skonfigurować, uruchom qconf -mq queue1i pod „podrzędny”, określ queue2=N. Następnie, ilekroć liczba miejsc używanych w węźle w kolejce 1 przekroczy N , zadanie w kolejce 2 zostanie zawieszone do czasu zakończenia zadania w kolejce 1.

ajdecon
źródło