Zasady korzystania z klastra obliczeniowego

nebula.ftj.agh.edu.pl


  1. Przeznaczenie systemu:
    1. Obliczenia równoległe (wieloprocesorowe) realizowane za pomocą pakietów komunkacyjnych MPI i PVM.
    2. Obliczenia sekwencyjne w trybie rozproszonym (zadania wykonywane na dynamicznie przydzielanym węźle).
  2. Dostępne oprogramowanie:
    1. Narzędzia systemowe Linux RedHat 7.1.
    2. Kompilatory GNU C (gcc), C++ (g++), Fortran 77 ( g77).
    3. Kompilator Absoft 7.0 Pro: Fortran 77 ver. 3.0 (f77), Fortran 90/95 ver. 5.0 (f90 / f95).
    4. Kompilator*  Portland Group Inc. (PGI) ver. 5.0-2: C (pgcc), C++ (pgCC), Fortran 77 (pgf77),  Fortran 90 (pgf90), High Performance Fortran (pghpf), symbolic debbuger (pgdbg), profiler (pgprof).
    5. Biblioteki programowe IMSL.
    6. Pakiety do obliczeń równoległych:
  3. Budowa:
    1. System klasy Beowulf (system operacyjny Linux RedHat 7.1) składa się z:
      • 1 serwera (front-end) zarządzającego klastrem, przeznaczonego do przygotowywania i kontrolowania zadań obliczeniowych;
      • 12 węzłów roboczych (back-end), na których wykonywane są obliczenia.
    2. Wszystkie węzły to 2-procesorowe systemy Pentium III 800 MHz, połączone zwielokrotnioną siecią Fast Ethernet (Flat Neighborhood Network 3 x 100 Mbit/s).
    3. Na wszystkich węzłach rozpięty jest wirtualny system plików PVFS.
    4. Obsługę zadań użytkowników realizuje system kolejkowy PBS.
  4. Zasady użytkowania:
    1. Serwer front-end (nebula.ftj.agh.edu.pl) jest dotępny w sieci WFiTJ wyłącznie za pomocą protokołu Secure Shell:
      1. do obsługi sesji terminalowych należy stosować program ssh (linux/unix), Putty (MS Windows);
      2. do przesyłania plików należy stosować program scp (tylko binarne) lub sftp (także ASCII), WinSCP (MS Windows);
      3. wersje dla MS Windows w/w programów znajdują się na serwerze WFITJ Novell w katalogu L:\SOFT2\32BIT.
    2. Węzły obliczeniowe nie są dostępne z zewnątrz; ograniczony zestaw operacji na plikach lokalnych można wykonywać za pomocą poleń rsh z serwera nebula.
    3. W obrębie klastra obowiązuje nazewnictwo węzłów wg schematu:
      1. serwer front-end (nebula.ftj.agh.edu.pl):
        1. cube1-1.cube
      2. wezły robocze (4 grupy):
        1. cube1-2.cube, cube1-3.cube, cube1-4.cube;
        2. cube2-2.cube, cube2-3.cube, cube2-4.cube;
        3. cube3-2.cube, cube3-3.cube, cube3-4.cube;
        4. cube4-2.cube, cube4-3.cube, cube4-4.cube.
    4. Obliczenia na klastrze są wykonywanie wyłącznie za pośrednictwem systemu kolejkowego PBS:
      1. zadania są uruchamiane tylko na węzłach roboczych; serwer front-end służy do kompilacji, przygotowania zadania, przechowywania wyników;
      2. do uruchamiania zadań służą odpowiednie skrypty systemowe:
        1. skrypt qmpi służy do uruchamiana aplikacji równoległych współpracujących z pakietem MPI:
          qmpi <job_name> <number_of_processes> <mpi_program> <optional_parameters>
        2. skrypt qpvm służy do uruchamiana aplikacji równoległych współpracujących z pakietem PVM:
          qpvm <job_name> <number_of_nodes> <pvm_program> <optional_parameters>
        3. skrypt qseq służy do uruchamiania aplikacji sekwencyjnych:
          qseq <job_name> <program_name> <optional_parameters>
      3. wyniki zadań (tzw. standardowy strumień wyjściowy stdout i standardowy strumień błędów stderr) są zapisywane do pliku o nazwie <job_name>.oXXX w katalogu uruchomienia zadania (gdzie XXX - nr zadania w systemie kolejkowym);
      4. sprawdzenie statusu zadania w systemie kolejkowym - komenda:
        qstat -a
      5. usunięcie zadania z kolejki - komenda:
        qdel XXX.cube1-1.cube
        gdzie XXX - nr zadania w systemie kolejkowym.
      6. Zadania są kierowane do wykonania w momencie spadku obciążenia na zadeklarowanej przy uruchomieniu liczbie węzłów roboczych.
      7. Więcej o systemie kolejkowym PBS: man pbs.
    5. Jako obszar roboczy przeznaczony do uruchamiania zadań przewidzany jest katalog /scratch zamontowany na wirtualnym systemie plików PVFS:
      1. katalog ten jest dostępny w trybie zapisu i odczytu na jednakowo na wszystkich węzłach klastra;
      2. przy operacjach we/wy wykonywanych na tym katalogu przez programy równolegle lub pracujące jednocześnie nalezy unikać jednoczesnych odwołań do tego samego pliku;
      3. użytkownicy powinni założyć na nim swój katalog roboczy o nazwie identycznej z username np. komendą
        mkdir /scratch/$USER
      4. zadania należy uruchamiać z tak utworzonego katalogu roboczego;
      5. katalog /scratch nie nadaje się do przechowywania wyników obliczeń i cennych plików danych; ze względu na architekturę PVFS wyłączenie dowolnego węzła czyni ten katalog niedostępnym, awaria dysku dowolnego węzła niszczy cały katalog.
      6. Wiecej o systemie plików PVFS: man -k PVFS.
    6. Katalogi domowe użytkowników są dostępne do zapisu tylko na serwerze nebula; z węzłów roboczych dostęp jest możliwy tylko w trybie odczytu via NFS. Katalogi domowe są umieszczone fizycznie na serwerze front-end.
    7. Zapis danych lokalnych dla danego węzła może być realizowany za pomocą katalogów /tmp, które są indywidualne dla każdego węzła roboczego.
    8. Kontrola procesów wykonywanych na węzłach zdalnych:
      1. lista realizowanych procesów użytkownika - komenda bps.
      2. kopiowanie grupowe plików z katalogów /tmp do /scratch/$USER np.:
        brsh cp /tmp/filename /scratch/$USER/\$HOSTNAME.filename
      3. usuwanie plików z katalogów /tmp:
        brsh rm /tmp/filename
      4. zatrzymanie zawieszonego zadania na wszystkich węzłach (por. komenda bps):
        brsh killall -KILL program
  5. Uwagi:
    1. Skompilowane programy należy umieszczać w podkatalogu $HOME/bin; aplikacje uruchamiane na klastrze powinny być widoczne poprzez scieżkę dostępu (test:  which program ). Zadania MPI powinny być uruchamiane z pełną ścieżką lub z bieżącego katalogu.
    2. Zadania interakcyjne uruchamiane na zdalnych węzłach roboczych będą automatycznie przerywane.
    3. Serwer front-end nie jest przeznaczony do wykonywania obliczeń, za wyjątkiem krótkich testów.
    4. Zadania sekwencyjne mają niższy priorytet w stosunku do zadań równoległych.
    5. Użytkownicy aplikacji współpracujących z PVM powinni utworzyć podkatalog $HOME/pvm3/bin/LINUX , w którym należy umieszczać pliki wykonywalne lub linki do nich.
    6. W danym momencie na węźle roboczym może się wykonywać tylko 1 aplikacja danego użytkownika współpracująca z PVM; jej zakończenie kończy pracę demona pvmd na tym węźle.
    7. Do uruchamiania zadań MPI obsługujących także archtekturę SMP (lub takich, które wymagają explicite jeden węzeł na jeden proces) służy skrypt qmpi-smp.
* - Pakiet PGI został udostępniony dzięki uprzejmości Zakładu Problemów Energetycznych.