Zeus GPGPU:Podstawy: Różnice pomiędzy wersjami
L.kitowski (dyskusja | edycje) |
|||
(Nie pokazano 25 wersji utworzonych przez 4 użytkowników) | |||
Linia 1: | Linia 1: | ||
+ | '''!!! Ta sekcja dokumentacji jest nieaktualna, prosimy o kontakt via [https://helpdesk.plgrid.pl HelpDesk]!!! ''' | ||
+ | |||
+ | |||
__NOTITLE__ | __NOTITLE__ | ||
== Nazwa maszyny dostępowej == | == Nazwa maszyny dostępowej == | ||
− | + | Obowiązuje ta sama nazwa co dla reszty klastra Zeus: [[Zeus:Podstawy#Nazwa_maszyny_dostępowej|Nazwa maszyny dostępowej]] | |
== Zasoby dyskowe == | == Zasoby dyskowe == | ||
Linia 13: | Linia 16: | ||
Opis dostępnego oprogramowania znajduje się [[Oprogramowanie|tutaj]]. | Opis dostępnego oprogramowania znajduje się [[Oprogramowanie|tutaj]]. | ||
+ | == CUDA / OpenCL == | ||
+ | |||
+ | Uzyskanie dostępu do narzędzi, w szczególności odpowiednie ustawienie zmiennych <tt>$CUDADIR</tt>, <tt>$PATH</tt> i <tt>$LD_LIBRARY_PATH</tt>, | ||
+ | wymaga załadowania modułu CUDA poleceniem <tt>module add gpu/cuda</tt> | ||
== Uruchamianie zadań == | == Uruchamianie zadań == | ||
Linia 19: | Linia 26: | ||
Zarządca zasobów: Moab | Zarządca zasobów: Moab | ||
− | W celu uruchomienia zadania niezbędna jest wiedza na temat podstawowych komend systemu kolejkowego. | + | W celu uruchomienia zadania niezbędna jest wiedza na temat podstawowych komend [[Podstawy:PBS|systemu kolejkowego]]. |
+ | |||
+ | Poza ustawieniem w skrypcie typowych parametrów istotnych dla systemu kolejkowego, konieczna jest specyfikacja parametru <tt>'''gpus'''</tt> oznaczającego żądaną liczbę kart graficznych na pojedynczym węźle obliczeniowym. Często oprogramowanie wymaga, aby karta była jednocześnie dostępna dla wielu procesów. Należy wtedy dodatkowo ustawić jej tryb pracy na <tt>shared</tt>, specyfikując <tt>'''gpus=1:shared'''</tt> lub <tt>'''gpus=2:shared'''</tt>. Inne możliwe tryby pracy to <tt>exclusive_thread</tt> i <tt>exclusive_process</tt>. | ||
+ | |||
+ | W razie potrzeby identyfikatory przydzielonych przez system kolejkowy kart graficznych można sprawdzić wyświetlając zawartość pliku wskazywanego przez zmienną środowiskową <tt>$PBS_GPUFILE</tt>. | ||
== Opis kolejek == | == Opis kolejek == | ||
Linia 26: | Linia 37: | ||
! Nazwa kolejki !! Maksymalna liczba zadań użytkownika !! Maksymalny czas trwania zadania !! Dodatkowe informacje | ! Nazwa kolejki !! Maksymalna liczba zadań użytkownika !! Maksymalny czas trwania zadania !! Dodatkowe informacje | ||
|- | |- | ||
− | | gpgpu || | + | | gpgpu || 200 || 336:00:00 || na węźle są dwie lub osiem kart GPGPU |
|} | |} | ||
Linia 35: | Linia 46: | ||
! Opis | ! Opis | ||
|- | |- | ||
− | | mhz2933 || szybkość procesora | + | | E5645, X5670 || model procesora |
+ | |- | ||
+ | | mhz2400, mhz2933 || szybkość procesora | ||
|- | |- | ||
− | | mem74gb || ilość pamięci RAM w serwerze obliczeniowym | + | | mem96gb, mem74gb || ilość pamięci RAM w serwerze obliczeniowym |
|- | |- | ||
− | | | + | | gpgpu8, gpgpu2 || ilość kart GPGPU na węźle |
|- | |- | ||
| gpgpu || informacja, że to węzeł z kartą GPGPU | | gpgpu || informacja, że to węzeł z kartą GPGPU | ||
|- | |- | ||
+ | |- | ||
+ | |infiniband || serwer obliczeniowy z siecią Infiniband | ||
|} | |} | ||
− | == Zasady obowiązujące na | + | == Przykładowe skrypty dla systemu kolejkowego == |
+ | === TeraChem (zrównoleglenie na dwie karty graficzne) === | ||
+ | <nowiki> | ||
+ | #!/bin/sh | ||
+ | |||
+ | # TeraChem can run on a single node only | ||
+ | #PBS -l nodes=1:ppn=2:terachem:gpus=2:exclusive_process | ||
+ | |||
+ | #PBS -N sample_terachem | ||
+ | #PBS -q gpgpu | ||
+ | |||
+ | cd $PBS_O_WORKDIR | ||
+ | |||
+ | # initializing proper environment for TeraChem | ||
+ | module add gpu/terachem | ||
+ | |||
+ | # actual job | ||
+ | $TERACHEMRUN ch.inp > ch.log | ||
+ | </nowiki> | ||
+ | |||
+ | === TeraChem (zrównoleglenie na osiem kart graficznych) === | ||
+ | <nowiki> | ||
+ | #!/bin/sh | ||
+ | |||
+ | # TeraChem can run on a single node only | ||
+ | #PBS -l nodes=1:ppn=8:terachem:gpus=8:exclusive_process | ||
+ | |||
+ | #PBS -N sample_terachem | ||
+ | #PBS -q gpgpu | ||
+ | |||
+ | cd $PBS_O_WORKDIR | ||
+ | |||
+ | # initializing proper environment for TeraChem | ||
+ | module add gpu/terachem | ||
+ | |||
+ | # actual job | ||
+ | $TERACHEMRUN ch.inp > ch.log | ||
+ | </nowiki> | ||
+ | |||
+ | === NAMD === | ||
+ | <nowiki> | ||
+ | #!/bin/sh | ||
+ | |||
+ | #PBS -l nodes=3:ppn=12:gpus=2:shared | ||
+ | #PBS -N sample_namd | ||
+ | #PBS -q gpgpu | ||
+ | |||
+ | cd $PBS_O_WORKDIR | ||
+ | |||
+ | # initializing proper environment for NAMD with GPU support | ||
+ | module add gpu/namd | ||
+ | |||
+ | # actual job | ||
+ | runnamd stmv.namd > stmv2_2x2.log | ||
+ | </nowiki> | ||
+ | |||
+ | === GAMESS === | ||
+ | <nowiki> | ||
+ | #!/bin/sh | ||
+ | |||
+ | # the number of GPUs requested | ||
+ | # at the moment it must be set to 2 per node | ||
+ | #PBS -l nodes=2:ppn=4:gpus=2:exclusive_process | ||
+ | |||
+ | #PBS -N sample_gamess | ||
+ | #PBS -q gpgpu | ||
+ | |||
+ | # changing directory to the one from which the job is submitted | ||
+ | cd $PBS_O_WORKDIR | ||
+ | |||
+ | # initializing proper environment for GAMESS with GPU support | ||
+ | module add gpu/gamess | ||
+ | |||
+ | # actual job | ||
+ | rungms noq15 >& noq15.log | ||
+ | </nowiki> | ||
+ | |||
+ | |||
+ | === GAMESS (starsza wersja) === | ||
+ | <nowiki> | ||
+ | #!/bin/sh | ||
+ | |||
+ | # this version of GAMESS is single-node only | ||
+ | #PBS -l nodes=1:ppn=4:gpus=2:exclusive_process | ||
+ | |||
+ | #PBS -N sample_gamess | ||
+ | #PBS -q gpgpu | ||
+ | |||
+ | # changing directory to the one from which the job is submitted | ||
+ | cd $PBS_O_WORKDIR | ||
+ | |||
+ | # initializing proper environment for GAMESS 2010.R1 with GPU support | ||
+ | module add gpu/gamess/2010.R1 | ||
+ | |||
+ | # actual job | ||
+ | $GMSRUN noq15 >& noq15.log | ||
+ | </nowiki> | ||
+ | |||
+ | == Zasady obowiązujące na części GPGPU == | ||
+ | |||
+ | * Uruchamiane mogą być wyłącznie zadania wykorzystujące GPU | ||
* Obowiązuje całkowity zakaz używania maszyny dostępowej do wykonywania obliczeń. Administratorzy będą przerywać takie procesy bez ostrzeżenia. | * Obowiązuje całkowity zakaz używania maszyny dostępowej do wykonywania obliczeń. Administratorzy będą przerywać takie procesy bez ostrzeżenia. | ||
− | * W celu skompilowania programu proszę użyć polecenia: <code>qsub -I -q | + | * W celu skompilowania programu proszę użyć polecenia: <code>qsub -I -q gpgpu -l nodes=1:ppn=1:gpus=1</code><br/>Polecenie to spowoduje zalogowanie użytkownika na węzeł obliczeniowy, tam proszę uruchomić kompilację programu. |
− | * W celu wykonywania obliczeń niezbędne jest podanie identyfikatora grantu za pomocą parametru "-A". | + | * W celu wykonywania obliczeń niezbędne jest podanie identyfikatora grantu za pomocą parametru <tt>"-A"</tt>. |
Szczegółowy opis grantów znajduje się [[Granty|tutaj]]. | Szczegółowy opis grantów znajduje się [[Granty|tutaj]]. |
Aktualna wersja na dzień 12:01, 21 kwi 2021
!!! Ta sekcja dokumentacji jest nieaktualna, prosimy o kontakt via HelpDesk!!!
Spis treści
Nazwa maszyny dostępowej
Obowiązuje ta sama nazwa co dla reszty klastra Zeus: Nazwa maszyny dostępowej
Zasoby dyskowe
Obowiązują te same zasoby co dla reszty klastra Zeus: Zasoby dyskowe
Dostępne oprogramowanie
Opis dostępnego oprogramowania znajduje się tutaj.
CUDA / OpenCL
Uzyskanie dostępu do narzędzi, w szczególności odpowiednie ustawienie zmiennych $CUDADIR, $PATH i $LD_LIBRARY_PATH, wymaga załadowania modułu CUDA poleceniem module add gpu/cuda
Uruchamianie zadań
System kolejkowy: Torque
Zarządca zasobów: Moab
W celu uruchomienia zadania niezbędna jest wiedza na temat podstawowych komend systemu kolejkowego.
Poza ustawieniem w skrypcie typowych parametrów istotnych dla systemu kolejkowego, konieczna jest specyfikacja parametru gpus oznaczającego żądaną liczbę kart graficznych na pojedynczym węźle obliczeniowym. Często oprogramowanie wymaga, aby karta była jednocześnie dostępna dla wielu procesów. Należy wtedy dodatkowo ustawić jej tryb pracy na shared, specyfikując gpus=1:shared lub gpus=2:shared. Inne możliwe tryby pracy to exclusive_thread i exclusive_process.
W razie potrzeby identyfikatory przydzielonych przez system kolejkowy kart graficznych można sprawdzić wyświetlając zawartość pliku wskazywanego przez zmienną środowiskową $PBS_GPUFILE.
Opis kolejek
Nazwa kolejki | Maksymalna liczba zadań użytkownika | Maksymalny czas trwania zadania | Dodatkowe informacje |
---|---|---|---|
gpgpu | 200 | 336:00:00 | na węźle są dwie lub osiem kart GPGPU |
Opis właściwości węzłów obliczeniowych
Właściwość | Opis |
---|---|
E5645, X5670 | model procesora |
mhz2400, mhz2933 | szybkość procesora |
mem96gb, mem74gb | ilość pamięci RAM w serwerze obliczeniowym |
gpgpu8, gpgpu2 | ilość kart GPGPU na węźle |
gpgpu | informacja, że to węzeł z kartą GPGPU |
infiniband | serwer obliczeniowy z siecią Infiniband |
Przykładowe skrypty dla systemu kolejkowego
TeraChem (zrównoleglenie na dwie karty graficzne)
#!/bin/sh # TeraChem can run on a single node only #PBS -l nodes=1:ppn=2:terachem:gpus=2:exclusive_process #PBS -N sample_terachem #PBS -q gpgpu cd $PBS_O_WORKDIR # initializing proper environment for TeraChem module add gpu/terachem # actual job $TERACHEMRUN ch.inp > ch.log
TeraChem (zrównoleglenie na osiem kart graficznych)
#!/bin/sh # TeraChem can run on a single node only #PBS -l nodes=1:ppn=8:terachem:gpus=8:exclusive_process #PBS -N sample_terachem #PBS -q gpgpu cd $PBS_O_WORKDIR # initializing proper environment for TeraChem module add gpu/terachem # actual job $TERACHEMRUN ch.inp > ch.log
NAMD
#!/bin/sh #PBS -l nodes=3:ppn=12:gpus=2:shared #PBS -N sample_namd #PBS -q gpgpu cd $PBS_O_WORKDIR # initializing proper environment for NAMD with GPU support module add gpu/namd # actual job runnamd stmv.namd > stmv2_2x2.log
GAMESS
#!/bin/sh # the number of GPUs requested # at the moment it must be set to 2 per node #PBS -l nodes=2:ppn=4:gpus=2:exclusive_process #PBS -N sample_gamess #PBS -q gpgpu # changing directory to the one from which the job is submitted cd $PBS_O_WORKDIR # initializing proper environment for GAMESS with GPU support module add gpu/gamess # actual job rungms noq15 >& noq15.log
GAMESS (starsza wersja)
#!/bin/sh # this version of GAMESS is single-node only #PBS -l nodes=1:ppn=4:gpus=2:exclusive_process #PBS -N sample_gamess #PBS -q gpgpu # changing directory to the one from which the job is submitted cd $PBS_O_WORKDIR # initializing proper environment for GAMESS 2010.R1 with GPU support module add gpu/gamess/2010.R1 # actual job $GMSRUN noq15 >& noq15.log
Zasady obowiązujące na części GPGPU
- Uruchamiane mogą być wyłącznie zadania wykorzystujące GPU
- Obowiązuje całkowity zakaz używania maszyny dostępowej do wykonywania obliczeń. Administratorzy będą przerywać takie procesy bez ostrzeżenia.
- W celu skompilowania programu proszę użyć polecenia:
qsub -I -q gpgpu -l nodes=1:ppn=1:gpus=1
Polecenie to spowoduje zalogowanie użytkownika na węzeł obliczeniowy, tam proszę uruchomić kompilację programu.
- W celu wykonywania obliczeń niezbędne jest podanie identyfikatora grantu za pomocą parametru "-A".
Szczegółowy opis grantów znajduje się tutaj.