Zeus GPGPU:Podstawy: Różnice pomiędzy wersjami

Z Komputery Dużej Mocy w ACK CYFRONET AGH
Skocz do:nawigacja, szukaj
 
(Nie pokazano 16 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__
  
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. [link]
+
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 '''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 wątków procesora. 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''.
+
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ą $PBS_GPUFILE.  
+
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 30: 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 || 16 || bez limitu || w każdym węźle są dwie karty GPGPU
+
| gpgpu || 200 || 336:00:00 || na węźle są dwie lub osiem kart GPGPU
 
|}
 
|}
  
Linia 39: Linia 46:
 
! Opis
 
! Opis
 
|-
 
|-
| mhz2933 || szybkość procesora
+
| E5645, X5670 || model procesora  
 
|-
 
|-
| mem74gb || ilość pamięci RAM w serwerze obliczeniowym
+
| mhz2400, mhz2933 || szybkość procesora
 
|-
 
|-
| n2-2 || lokalizacja, nie potrzebna do obliczeń
+
| 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
 
|}
 
|}
 +
 +
== 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 ==
 
== Zasady obowiązujące na części GPGPU ==
Linia 57: Linia 166:
 
* 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 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!!!



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.