Czy robisz blok qsub do zakończenia zadania?

Obecnie mam program sterownika, który uruchamia kilka tysięcy wystąpień programu „ładunek” i wykonuje pewne przetwarzanie końcowe danych wyjściowych. Sterownik obecnie wywołuje program ładunku bezpośrednio, używając funkcji shell(), z wielu wątków. Funkcja shell() wykonuje polecenie w bieżącym katalogu roboczym, blokuje do czasu zakończenia działania polecenia i zwraca dane wysłane na standardowe wyjście przez polecenie. Działa to dobrze na pojedynczej maszynie wielordzeniowej. Chcę zmodyfikować sterownik, aby zamiast tego przesyłać qsub zadania do dużego klastra obliczeniowego, aby uzyskać większą równoległość.

Czy istnieje sposób, aby polecenie qsub wypisywało wyniki na standardowe wyjście zamiast do pliku i blokowało je do czasu zakończenia zadania? Zasadniczo chcę, aby działało jak najbardziej jak „normalne” wykonywanie polecenia, aby móc działać równolegle z klastrem przy jak najmniejszej modyfikacji mojego programu sterownika.

Edycja: Myślałem, że wszystkie silniki sieciowe są prawie ustandaryzowane. Jeśli tak nie jest, a ma to znaczenie, używam Torque.


person dsimcha    schedule 12.05.2011    source źródło


Odpowiedzi (3)


Nie wspominasz, jakiego systemu kolejkowania używasz, ale SGE obsługuje opcję „-sync y” do qsub, która spowoduje zablokowanie go do czasu zakończenia lub zakończenia zadania.

person Steve Baker    schedule 12.05.2011

W TORQUE robi się to za pomocą opcji -x i -I. qsub -I określa, że ​​powinno być interaktywne, a -x mówi, że uruchamiaj tylko określone polecenie. Na przykład:

qsub -I -x myscript.sh

nie powróci, dopóki myscript.sh nie zakończy wykonywania.

person dbeer    schedule 13.03.2012
comment
Czy nie tracisz możliwości przechowywania wyników w plikach wyjściowych? - person static_rtti; 24.07.2012
comment
W ten sposób utraciłeś automatyczne zapisywanie danych wyjściowych, ale możesz zalogować sesję terminala i zapisać dane wyjściowe w ten sposób. - person dbeer; 24.07.2012

W PBS możesz użyć qsub -Wblock=true <command>

person naught101    schedule 16.09.2016