MyQueue: interfejs wiersza poleceń i Python do zarządzania zadaniami HPC
MyQueue przesyła i monitoruje zadania obliczeniowe za pomocą narzędzia wiersza poleceń i API Pythona, obsługując automatyczne ponowne uruchamianie w przypadku przekroczenia czasu i błędów z powodu braku pamięci. Stworzony przez J. J. Mortensena i zespół deweloperski MyQueue dla narzędzi-utility, narzędzie ujednolica interakcję z SLURM, PBS i LSF, śledzi zadania trwale za pomocą SQLite i wspiera przepływy pracy oparte na folderach oraz wirtualne środowiska Pythona. Jest skierowane do badaczy i inżynierów, którzy uruchamiają wiele zadań na klastrze lub lokalnie i potrzebują automatycznego ponownego przesyłania oraz prostego śledzenia.
Co w praktyce robi MyQueue?
MyQueue działa jako frontend dla harmonogramów HPC, akceptując zgłoszenia za pomocą polecenia mq submit lub interfejsu API Pythona, a następnie synchronizując lokalne śledzenie zadań z zdalnymi harmonogramami. Rejestruje zakończone, nieudane i działające zadania w folderowej bazie danych SQLite i może działać na lokalnych maszynach lub zdalnych klastrach, które używają SLURM, PBS lub LSF. Wejściem jest skrypt zadania lub zadanie Pythona; wyjściem jest stan kolejki widoczny za pomocą mq list.
Jak niezawodna jest automatyczna ponowna wysyłka dla nieudanych zadań?
Aplikacja automatycznie restartuje zadania, które nie powiodły się z powodu limitów czasowych lub wyczerpania pamięci, dostosowując zasoby przy ponownym uruchomieniu zgodnie z dostarczoną logiką. To zachowanie zmniejsza ręczne ponowne próby poprzez zwiększenie żądanych zasobów po określonych sygnaturach błędów. Trwałe śledzenie zachowuje wcześniejsze próby, dzięki czemu można sprawdzić historię błędów przed zaakceptowaniem ponownej wysyłki. Logika ponownej wysyłki koncentruje się na błędach związanych z zasobami, a nie na przypadkowych niepowodzeniach.
Czy używanie go na klastrach produkcyjnych jest bezpieczne?
MyQueue nie wymaga oddzielnej bazy danych ani uprawnień administratora i przechowuje stan lokalnie za pomocą SQLite i folderów, co utrzymuje operacje w przejrzystości. Interaguje z harmonogramami za pomocą ich natywnych poleceń, więc zależy od modelu uprawnień harmonogramu do zgłaszania i anulowania zadań. Projekt narzędzia unika pisania ukrytych usług systemowych; działa w środowisku użytkownika i zachowuje rekordy zadań w folderze roboczym.
Czy potrzebuję wiedzy technicznej, aby to uruchomić?
Instalacja wymaga środowiska Pythona (Python 3.9 lub nowszy) oraz instalacji pip, a działanie wykorzystuje polecenia wiersza poleceń lub dostarczone API. Użytkownicy okazjonalni, którzy nie są zaznajomieni ze skryptami zadań lub środowiskami wirtualnymi, napotkają krzywą uczenia się, ponieważ przepływ pracy oczekuje opisów zadań harmonogramu i aktywacji środowiska. Naukowcy i inżynierowie danych, którzy już przygotowują skrypty zadań i środowiska wirtualne, uznają, że jest to zgodne z istniejącymi praktykami.
Kto powinien przyjąć MyQueue i dlaczego
MyQueue jest odpowiedni dla badaczy i inżynierów, którzy przesyłają wiele zadań klastrowych lub lokalnych i chcą automatycznego ponownego przesyłania w przypadku awarii związanych z zasobami; zmniejsza to ręczną pracę przy ponownych próbach, jednocześnie zachowując historię zadań w lokalnym folderze opartym na SQLite. Oczekuj pracy w wierszu poleceń lub skryptów oraz pewnej początkowej konfiguracji Pythona i wirtualnych środowisk. Zalecane.





