Zeus:Gaussian: Różnice pomiędzy wersjami

Z Komputery Dużej Mocy w ACK CYFRONET AGH
Skocz do:nawigacja, szukaj
(dodano G09 rev C.01)
 
(Nie pokazano 17 wersji utworzonych przez 2 użytkowników)
Linia 1: Linia 1:
 
{{DISPLAYTITLE:Gaussian}}
 
{{DISPLAYTITLE:Gaussian}}
Na klastrze [[Zeus]] zainstalowano pakiet Gaussian09 w wersji A.02 i C.01 oraz Gaussian03 w wersji E.01.
+
Na klastrze [[Zeus]] zainstalowano pakiet [[Gaussian|Gaussian09]] w wersji [[#G09.A.02|A.02]], [[#G09.B.01|B.01]], [[#G09.C.01|C.01]] i [[#G09.D.01|D.01]] oraz [[Gaussian|Gaussian03]] w wersji [[#G09.E.01|E.01]].
  
 
= Informacje ogólne =
 
= Informacje ogólne =
  
Do ustawiania środowiska uruchomieniowego oprogramowania na klastrze [[Zeus]] służy narzędzie [[Modules]]. Pliki tymczasowe należy tworzyć używająć zasobu dyskowego [[Zeus:Lustre|Lustre]].
+
Do ustawiania środowiska uruchomieniowego oprogramowania na klastrze [[Zeus]] służy narzędzie [[Modules]]. Dla oprogramowania [[Gaussian]] przygotowano moduły <tt>apps/gaussian/<nazwa-wersji></tt>, przy czym moduł <tt>apps/gaussian</tt> jest odnośnikiem dla wersji domyślnej. Do załadowania domyślnej wersji pakietu służy komenda:
  
'''Uwaga:''' Liczbę procesorów specyfikujemy podając ''%NProcShared=y'' w wejściowym pliku definującym obliczenia oraz podając flagę <tt>-l  nodes=1:ppn=y</tt> dla systemu kolejkowego (<tt>y</tt> - liczba rdzeni obliczeniowych).
+
  <code>module add apps/gaussian</code>
  
=G09.C.01=
+
Domyślna wersja to '''D.01'''.
Zmienne środowiskowe ustawiamy ładując moduł <tt>gaussian/g09.C.01</tt>
+
 
 +
Program uruchamiamy poleceniem <tt>g09</tt>
 +
 
 +
*'''Uwaga:''' Liczbę procesorów specyfikujemy podając ''%NProcShared=y'' w wejściowym pliku definującym obliczenia oraz podając flagę <tt>-l  nodes=1:ppn=y</tt> dla systemu kolejkowego (<tt>y</tt> - liczba rdzeni obliczeniowych).
 +
 
 +
*'''Uwaga:''' Moduły [[Gaussian]] ustawiają katalog na pliki tymczasowe poprzez odpowiednie ustawienie zmiennej <tt>GAUSS_SCRDIR</tt>. W przypadku gdy obliczenia wymagają dużej przestrzeni dyskowej (większej niż 5GB na rdzen obliczeniowy) zaleca się używanie modułu <tt>scratch</tt> by ustawić katalog na pliki tymczasowe na szybkim systemie plików [[Zeus:Lustre|Lustre]]. Można to zrobić dodając linijkę "<tt>module add scratch</tt>" do poniższych skryptów. Gdy moduł ten nie zostanie załadowany zmienna <tt>GAUSS_SCRDIR</tt> będzie wskazywała na tymczasowy katalog na lokalnym dysku węzła obliczeniowego utworzony dla zadania. Wielkość plików tymczasowych dla zakończonego zadania znajduje się w przedostatniej linijce pliku z logami (np. "File lengths (MBytes):  RWF=    14 Int=      0 D2E=      0 Chk=      3 Scr=      1"). 
 +
 
 +
*'''Uwaga:''' Nie należy specyfikować w pliku wejściowym plików RWF poprzez dyrektywę <tt>%rwf</tt>:
 +
<code>%rwf=read_write_file.rwf</code>
 +
Powoduje to, że plik tymczasowy, w którym Gaussian zapisuje bardzo często dane częściowe potrzebne do obliczeń, zostaje utworzony w katalogu, w którym uruchomiono skrypt PBS. Katalog ten znajduje się zwykle na wolnym zasobie dyskowym, który przez to może być nadmiernie obciążony, a obliczenia będą przeprowadzane o wiele wolniej. Gdy nazwa tego pliku nie zostanie wyspecyfikowana jest on tworzony w katalogu wyspecyfikowanym w zmiennej <tt>GAUSS_SCRDIR</tt>. Dzieki temu wzrasta wydajność obliczeń. To samo dotyczy ustawiania plików tymczasowych dyrektywami <tt>%int=</tt>, <tt>%d2e</tt>. Aby uzyskać dane potrzebne do restartów wystarcza w większości przypadków wyspecyfikowanie pliku "checkpoint" dyrektywą <tt>%chk</tt>. Więcej informacji o restartach zadań mozna znaleźć w [http://gaussian.com/g_tech/g_ur/k_restart.htm dokumentacji producenta].
 +
 
 +
*'''Uwaga:''' Użytkownicy spoza infrastruktury PL-Grid by korzystać z oprogramowania Gaussian muszą zostać dodani do odpowiedniej grupy użytkowników. W tym celu należy skontaktować się z administratorami klastra [[Zeus]].
 +
 
 +
=G09.D.01=
 +
Zmienne środowiskowe ustawiamy ładując moduł <tt>apps/gaussian/g09.D.01</tt>
  
   <code>module add gaussian/g09.C.01</code>
+
   <code>module add apps/gaussian/g09.D.01</code>
  
 
Program uruchamiamy poleceniem <tt>g09</tt>
 
Program uruchamiamy poleceniem <tt>g09</tt>
Linia 21: Linia 35:
 
#!/bin/env bash
 
#!/bin/env bash
 
##### Maksymalna pamiec przydzielona dla zadania
 
##### Maksymalna pamiec przydzielona dla zadania
#PBS -l vmem=1gb
+
#PBS -l mem=1gb
 
##### Maksymalnie 1 rdzen na wezle
 
##### Maksymalnie 1 rdzen na wezle
 
#PBS -l nodes=1:ppn=1
 
#PBS -l nodes=1:ppn=1
Linia 30: Linia 44:
 
##### Nazwa zadania widoczna w systemie kolejkowym
 
##### Nazwa zadania widoczna w systemie kolejkowym
 
#PBS -N nazwa_obliczen
 
#PBS -N nazwa_obliczen
 +
##### Nazwa grantu uzytego do obliczen
 +
#PBS -A nazwa_grantu
 +
 +
# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 rev D.01 przy uzyciu Modules
 +
module add apps/gaussian/g09.D.01
 +
 +
# informacja gdzie beda przechowywane pliki tymczasowe
 +
echo "Temporary files stored in" $GAUSS_SCRDIR
 +
 +
# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
 +
cd $PBS_O_WORKDIR
 +
 +
# uruchomienie zadania
 +
g09 job.com
 +
 +
#usuniecie plikow tymczasowych
 +
rm -rf $GAUSS_SCRDIR
 +
</syntaxhighlight>
 +
 +
===== Wersja równoległa ze współdzieloną pamięcią=====
 +
<syntaxhighlight lang="bash">
 +
#!/bin/env bash
 +
##### Maksymalna pamiec przydzielona dla zadania
 +
#PBS -l mem=12gb
 +
##### Maksymalnie 12 rdzeni na wezle
 +
#PBS -l nodes=1:ppn=12
 +
##### Maksymalny czas obliczen 1 godzina
 +
#PBS -l walltime=1:00:00
 +
##### Nazwa kolejki
 +
#PBS -q l_short
 +
##### Nazwa zadania widoczna w systemie kolejkowym
 +
#PBS -N nazwa_obliczen
 +
##### Nazwa grantu uzytego do obliczen
 +
#PBS -A nazwa_grantu
 +
 +
# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 rev D.01 przy uzyciu Modules
 +
module add apps/gaussian/g09.D.01
 +
 +
# informacja gdzie beda przechowywane pliki tymczasowe
 +
echo "Temporary files stored in" $GAUSS_SCRDIR
 +
 +
# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
 +
cd $PBS_O_WORKDIR
 +
 +
# uruchomienie zadania
 +
g09 job.com
 +
 +
#usuniecie plikow tymczasowych
 +
rm -rf $GAUSS_SCRDIR
 +
</syntaxhighlight>
 +
 +
=G09.C.01=
 +
Zmienne środowiskowe ustawiamy ładując moduł <tt>apps/gaussian/g09.C.01</tt>
 +
 +
  <code>module add apps/gaussian/g09.C.01</code>
  
# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 rev C.01 przy uzyciu Modules
+
Program uruchamiamy poleceniem <tt>g09</tt>
module add gaussian/g09.C.01
 
  
# Ustawienie szybkiego dysku do obliczen
+
==== Przykładowy skrypt ====
module add scratch
+
===== Wersja szeregowa =====
  
# sprawdzenie czy dostepny jest dysk do obliczen
+
<syntaxhighlight lang="bash">
if [ -d $SCRATCH ]; then
+
#!/bin/env bash
  export TMPDIR=$SCRATCH/${PBS_JOBID%%.*}
+
##### Maksymalna pamiec przydzielona dla zadania
else
+
#PBS -l mem=1gb
  echo "Obliczenia nie moga byc wykonane z powodu braku dostepu do zasobow dyskowych!"
+
##### Maksymalnie 1 rdzen na wezle
  exit
+
#PBS -l nodes=1:ppn=1
fi
+
##### Maksymalny czas obliczen 1 godzina
 +
#PBS -l walltime=1:00:00
 +
##### Nazwa kolejki
 +
#PBS -q l_short
 +
##### Nazwa zadania widoczna w systemie kolejkowym
 +
#PBS -N nazwa_obliczen
 +
##### Nazwa grantu uzytego do obliczen
 +
#PBS -A nazwa_grantu
  
# utworzenie katalogu na pliku tymczasowe
+
# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 rev C.01 przy uzyciu Modules
mkdir -p $TMPDIR
+
module add apps/gaussian/g09.C.01
  
# ustawienie zmiennej okreslajacej katalog na pliki tymczasowe dla Gaussiana
+
# informacja gdzie beda przechowywane pliki tymczasowe
export GAUSS_SCRDIR=$TMPDIR
+
echo "Temporary files stored in" $GAUSS_SCRDIR
  
 
# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
 
# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
Linia 58: Linia 133:
  
 
#usuniecie plikow tymczasowych
 
#usuniecie plikow tymczasowych
rm -rf $TMPDIR
+
rm -rf $GAUSS_SCRDIR
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Linia 64: Linia 139:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
#!/bin/env bash
 
#!/bin/env bash
##### Maksymalna pamiec przydzielona na jeden rdzen! Czyli sumarycznie 1GB*1*12=12GB na zadanie!
+
##### Maksymalna pamiec przydzielona dla zadania
#PBS -l pvmem=1gb
+
#PBS -l mem=12gb
 
##### Maksymalnie 12 rdzeni na wezle
 
##### Maksymalnie 12 rdzeni na wezle
 
#PBS -l nodes=1:ppn=12
 
#PBS -l nodes=1:ppn=12
Linia 74: Linia 149:
 
##### Nazwa zadania widoczna w systemie kolejkowym
 
##### Nazwa zadania widoczna w systemie kolejkowym
 
#PBS -N nazwa_obliczen
 
#PBS -N nazwa_obliczen
 +
##### Nazwa grantu uzytego do obliczen
 +
#PBS -A nazwa_grantu
  
# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 rev. C.01 przy uzyciu Modules
+
# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 rev C.01 przy uzyciu Modules
module add gaussian/g09.C.01
+
module add apps/gaussian/g09.C.01
  
# Ustawienie szybkiego dysku do obliczen
+
# informacja gdzie beda przechowywane pliki tymczasowe
module add scratch
+
echo "Temporary files stored in" $GAUSS_SCRDIR
  
# sprawdzenie czy dostepny jest dysk do obliczen
+
# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
if [ -d $SCRATCH ]; then
+
cd $PBS_O_WORKDIR
  export TMPDIR=$SCRATCH/${PBS_JOBID%%.*}
+
 
else
+
# uruchomienie zadania
   echo "Obliczenia nie moga byc wykonane z powodu braku dostepu do zasobow dyskowych!"
+
g09 job.com
  exit
+
 
fi
+
#usuniecie plikow tymczasowych
 +
rm -rf $GAUSS_SCRDIR
 +
</syntaxhighlight>
 +
 
 +
=G09.B.01=
 +
Zmienne środowiskowe ustawiamy ładując moduł <tt>apps/gaussian/g09.V.01</tt>
 +
 
 +
   <code>module add apps/gaussian/g09.B.01</code>
 +
 
 +
Program uruchamiamy poleceniem <tt>g09</tt>
 +
 
 +
==== Przykładowy skrypt ====
 +
===== Wersja szeregowa =====
 +
 
 +
<syntaxhighlight lang="bash">
 +
#!/bin/env bash
 +
##### Maksymalna pamiec przydzielona dla zadania
 +
#PBS -l mem=1gb
 +
##### Maksymalnie 1 rdzen na wezle
 +
#PBS -l nodes=1:ppn=1
 +
##### Maksymalny czas obliczen 1 godzina
 +
#PBS -l walltime=1:00:00
 +
##### Nazwa kolejki
 +
#PBS -q l_short
 +
##### Nazwa zadania widoczna w systemie kolejkowym
 +
#PBS -N nazwa_obliczen
 +
##### Nazwa grantu uzytego do obliczen
 +
#PBS -A nazwa_grantu
  
# utworzenie katalogu na pliku tymczasowe
+
# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 rev B.01 przy uzyciu Modules
mkdir -p $TMPDIR
+
module add apps/gaussian/g09.B.01
  
# ustawienie zmiennej okreslajacej katalog na pliki tymczasowe dla Gaussiana
+
# informacja gdzie beda przechowywane pliki tymczasowe
export GAUSS_SCRDIR=$TMPDIR
+
echo "Temporary files stored in" $GAUSS_SCRDIR
  
 
# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
 
# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
Linia 102: Linia 206:
  
 
#usuniecie plikow tymczasowych
 
#usuniecie plikow tymczasowych
rm -rf $TMPDIR
+
rm -rf $GAUSS_SCRDIR
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 +
===== Wersja równoległa ze współdzieloną pamięcią=====
 +
<syntaxhighlight lang="bash">
 +
#!/bin/env bash
 +
##### Maksymalna pamiec przydzielona dla zadania
 +
#PBS -l mem=12gb
 +
##### Maksymalnie 12 rdzeni na wezle
 +
#PBS -l nodes=1:ppn=12
 +
##### Maksymalny czas obliczen 1 godzina
 +
#PBS -l walltime=1:00:00
 +
##### Nazwa kolejki
 +
#PBS -q l_short
 +
##### Nazwa zadania widoczna w systemie kolejkowym
 +
#PBS -N nazwa_obliczen
 +
##### Nazwa grantu uzytego do obliczen
 +
#PBS -A nazwa_grantu
 +
 +
# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 rev B.01 przy uzyciu Modules
 +
module add apps/gaussian/g09.B.01
 +
 +
# informacja gdzie beda przechowywane pliki tymczasowe
 +
echo "Temporary files stored in" $GAUSS_SCRDIR
 +
 +
# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
 +
cd $PBS_O_WORKDIR
  
 +
# uruchomienie zadania
 +
g09 job.com
 +
 +
#usuniecie plikow tymczasowych
 +
rm -rf $GAUSS_SCRDIR
 +
</syntaxhighlight>
  
 
=G09.A.02=
 
=G09.A.02=
Zmienne środowiskowe ustawiamy ładując moduł <tt>gaussian/g09.A.02</tt>
+
Zmienne środowiskowe ustawiamy ładując moduł <tt>apps/gaussian/g09.A.02</tt>
  
   <code>module add gaussian/g09.A.02</code>
+
   <code>module add apps/gaussian/g09.A.02</code>
  
 
Program uruchamiamy poleceniem <tt>g09</tt>
 
Program uruchamiamy poleceniem <tt>g09</tt>
Linia 120: Linia 254:
 
#!/bin/env bash
 
#!/bin/env bash
 
##### Maksymalna pamiec przydzielona dla zadania
 
##### Maksymalna pamiec przydzielona dla zadania
#PBS -l vmem=1gb
+
#PBS -l mem=1gb
 
##### Maksymalnie 1 rdzen na wezle
 
##### Maksymalnie 1 rdzen na wezle
 
#PBS -l nodes=1:ppn=1
 
#PBS -l nodes=1:ppn=1
Linia 129: Linia 263:
 
##### Nazwa zadania widoczna w systemie kolejkowym
 
##### Nazwa zadania widoczna w systemie kolejkowym
 
#PBS -N nazwa_obliczen
 
#PBS -N nazwa_obliczen
 +
##### Nazwa grantu uzytego do obliczen
 +
#PBS -A nazwa_grantu
  
 
# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 i A02 przy uzyciu Modules
 
# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 i A02 przy uzyciu Modules
module add gaussian/g09.A.02
+
module add apps/gaussian/g09.A.02
 
 
# Ustawienie szybkiego dysku do obliczen
 
module add scratch
 
 
 
# sprawdzenie czy dostepny jest dysk do obliczen
 
if [ -d $SCRATCH ]; then
 
  export TMPDIR=$SCRATCH/${PBS_JOBID%%.*}
 
else
 
  echo "Obliczenia nie moga byc wykonane z powodu braku dostepu do zasobow dyskowych!"
 
  exit
 
fi
 
 
 
# utworzenie katalogu na pliku tymczasowe
 
mkdir -p $JOB_TMPDIR
 
  
# ustawienie zmiennej okreslajacej katalog na pliki tymczasowe dla Gaussiana
+
# informacja gdzie beda przechowywane pliki tymczasowe
export GAUSS_SCRDIR=$TMPDIR
+
echo "Temporary files stored in" $GAUSS_SCRDIR
  
 
# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
 
# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
Linia 157: Linia 279:
  
 
#usuniecie plikow tymczasowych
 
#usuniecie plikow tymczasowych
rm -rf $TMPDIR
+
rm -rf $GAUSS_SCRDIR
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Linia 163: Linia 285:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
#!/bin/env bash
 
#!/bin/env bash
##### Maksymalna pamiec przydzielona na jeden rdzen! Czyli sumarycznie 1GB*1*12=12GB na zadanie!
+
##### Maksymalna pamiec przydzielona dla zadania
#PBS -l pvmem=1gb
+
#PBS -l mem=12gb
 
##### Maksymalnie 12 rdzeni na wezle
 
##### Maksymalnie 12 rdzeni na wezle
 
#PBS -l nodes=1:ppn=12
 
#PBS -l nodes=1:ppn=12
Linia 173: Linia 295:
 
##### Nazwa zadania widoczna w systemie kolejkowym
 
##### Nazwa zadania widoczna w systemie kolejkowym
 
#PBS -N nazwa_obliczen
 
#PBS -N nazwa_obliczen
 +
##### Nazwa grantu uzytego do obliczen
 +
#PBS -A nazwa_grantu
  
 
# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 i A02 przy uzyciu Modules
 
# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 i A02 przy uzyciu Modules
module add gaussian/g09.A.02
+
module add apps/gaussian/g09.A.02
 
 
# Ustawienie szybkiego dysku do obliczen
 
module add scratch
 
 
 
# sprawdzenie czy dostepny jest dysk do obliczen
 
if [ -d $SCRATCH ]; then
 
  export TMPDIR=$SCRATCH/${PBS_JOBID%%.*}
 
else
 
  echo "Obliczenia nie moga byc wykonane z powodu braku dostepu do zasobow dyskowych!"
 
  exit
 
fi
 
  
# utworzenie katalogu na pliku tymczasowe
+
# informacja gdzie beda przechowywane pliki tymczasowe
mkdir -p $TMPDIR
+
echo "Temporary files stored in" $GAUSS_SCRDIR
 
 
# ustawienie zmiennej okreslajacej katalog na pliki tymczasowe dla Gaussiana
 
export GAUSS_SCRDIR=$TMPDIR
 
  
 
# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
 
# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
Linia 201: Linia 311:
  
 
#usuniecie plikow tymczasowych
 
#usuniecie plikow tymczasowych
rm -rf $TMPDIR
+
rm -rf $GAUSS_SCRDIR
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Linia 207: Linia 317:
  
 
= G03.E.01=
 
= G03.E.01=
Zmienne środowiskowe ustawiamy ładując moduł <tt>gaussian/g03.E.01</tt>
+
Zmienne środowiskowe ustawiamy ładując moduł <tt>apps/gaussian/g03.E.01</tt>
  
   <code>module add gaussian/g03.E.01</code>
+
   <code>module add apps/gaussian/g03.E.01</code>
  
 
Program uruchamiamy poleceniem <tt>g03</tt>
 
Program uruchamiamy poleceniem <tt>g03</tt>
Linia 219: Linia 329:
 
#!/bin/env bash
 
#!/bin/env bash
 
##### Maksymalna pamiec przydzielona dla zadania
 
##### Maksymalna pamiec przydzielona dla zadania
#PBS -l vmem=1gb
+
#PBS -l mem=1gb
 
##### Maksymalnie 1 rdzen na wezle
 
##### Maksymalnie 1 rdzen na wezle
 
#PBS -l nodes=1:ppn=1
 
#PBS -l nodes=1:ppn=1
Linia 228: Linia 338:
 
##### Nazwa zadania widoczna w systemie kolejkowym
 
##### Nazwa zadania widoczna w systemie kolejkowym
 
#PBS -N nazwa_obliczen
 
#PBS -N nazwa_obliczen
 +
##### Nazwa grantu uzytego do obliczen
 +
#PBS -A nazwa_grantu
  
 
# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian03 i E01 przy uzyciu Modules
 
# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian03 i E01 przy uzyciu Modules
module add gaussian/g03.E.01
+
module add apps/gaussian/g03.E.01
  
# Ustawienie szybkiego dysku do obliczen
+
# informacja gdzie beda przechowywane pliki tymczasowe
module add scratch
+
echo "Temporary files stored in" $GAUSS_SCRDIR
 
 
# sprawdzenie czy dostepny jest dysk do obliczen
 
if [ -d $SCRATCH ]; then
 
  export TMPDIR=$SCRATCH/${PBS_JOBID%%.*}
 
else
 
  echo "Obliczenia nie moga byc wykonane z powodu braku dostepu do zasobow dyskowych!"
 
  exit
 
fi
 
 
 
# utworzenie katalogu na pliku tymczasowe
 
mkdir -p $TMPDIR
 
 
 
# ustawienie zmiennej okreslajacej katalog na pliki tymczasowe dla Gaussiana
 
export GAUSS_SCRDIR=$TMPDIR
 
  
 
# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
 
# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
Linia 256: Linia 354:
  
 
#usuniecie plikow tymczasowych
 
#usuniecie plikow tymczasowych
rm -rf $TMPDIR
+
rm -rf $GAUSS_SCRDIR
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Linia 262: Linia 360:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
#!/bin/env bash
 
#!/bin/env bash
##### Maksymalna pamiec przydzielona na jeden rdzen! Czyli sumarycznie 1GB*1*12=12GB na zadanie!
+
##### Maksymalna pamiec przydzielona dla zadania
#PBS -l pvmem=1gb
+
#PBS -l mem=12gb
 
##### Maksymalnie 12 rdzeni na wezle
 
##### Maksymalnie 12 rdzeni na wezle
 
#PBS -l nodes=1:ppn=12
 
#PBS -l nodes=1:ppn=12
Linia 272: Linia 370:
 
##### Nazwa zadania widoczna w systemie kolejkowym
 
##### Nazwa zadania widoczna w systemie kolejkowym
 
#PBS -N nazwa_obliczen
 
#PBS -N nazwa_obliczen
 +
##### Nazwa grantu uzytego do obliczen
 +
#PBS -A nazwa_grantu
  
 
# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian03 i E01 przy uzyciu Modules
 
# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian03 i E01 przy uzyciu Modules
module add gaussian/g03.E.01
+
module add apps/gaussian/g03.E.01
 
 
# Ustawienie szybkiego dysku do obliczen
 
module add scratch
 
 
 
# sprawdzenie czy dostepny jest dysk do obliczen
 
if [ -d $SCRATCH ]; then
 
  export TMPDIR=$SCRATCH/${PBS_JOBID%%.*}
 
else
 
  echo "Obliczenia nie moga byc wykonane z powodu braku dostepu do zasobow dyskowych!"
 
  exit
 
fi
 
 
 
# utworzenie katalogu na pliku tymczasowe
 
mkdir -p $TMPDIR
 
  
# ustawienie zmiennej okreslajacej katalog na pliki tymczasowe dla Gaussiana
+
# informacja gdzie beda przechowywane pliki tymczasowe
export GAUSS_SCRDIR=$TMPDIR
+
echo "Temporary files stored in" $GAUSS_SCRDIR
  
 
# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
 
# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
Linia 300: Linia 386:
  
 
#usuniecie plikow tymczasowych
 
#usuniecie plikow tymczasowych
rm -rf $TMPDIR
+
rm -rf $GAUSS_SCRDIR
 
</syntaxhighlight>
 
</syntaxhighlight>

Aktualna wersja na dzień 10:47, 19 maj 2014

Na klastrze Zeus zainstalowano pakiet Gaussian09 w wersji A.02, B.01, C.01 i D.01 oraz Gaussian03 w wersji E.01.

Informacje ogólne

Do ustawiania środowiska uruchomieniowego oprogramowania na klastrze Zeus służy narzędzie Modules. Dla oprogramowania Gaussian przygotowano moduły apps/gaussian/<nazwa-wersji>, przy czym moduł apps/gaussian jest odnośnikiem dla wersji domyślnej. Do załadowania domyślnej wersji pakietu służy komenda:

 module add apps/gaussian

Domyślna wersja to D.01.

Program uruchamiamy poleceniem g09

  • Uwaga: Liczbę procesorów specyfikujemy podając %NProcShared=y w wejściowym pliku definującym obliczenia oraz podając flagę -l nodes=1:ppn=y dla systemu kolejkowego (y - liczba rdzeni obliczeniowych).
  • Uwaga: Moduły Gaussian ustawiają katalog na pliki tymczasowe poprzez odpowiednie ustawienie zmiennej GAUSS_SCRDIR. W przypadku gdy obliczenia wymagają dużej przestrzeni dyskowej (większej niż 5GB na rdzen obliczeniowy) zaleca się używanie modułu scratch by ustawić katalog na pliki tymczasowe na szybkim systemie plików Lustre. Można to zrobić dodając linijkę "module add scratch" do poniższych skryptów. Gdy moduł ten nie zostanie załadowany zmienna GAUSS_SCRDIR będzie wskazywała na tymczasowy katalog na lokalnym dysku węzła obliczeniowego utworzony dla zadania. Wielkość plików tymczasowych dla zakończonego zadania znajduje się w przedostatniej linijce pliku z logami (np. "File lengths (MBytes): RWF= 14 Int= 0 D2E= 0 Chk= 3 Scr= 1").
  • Uwaga: Nie należy specyfikować w pliku wejściowym plików RWF poprzez dyrektywę %rwf:
%rwf=read_write_file.rwf

Powoduje to, że plik tymczasowy, w którym Gaussian zapisuje bardzo często dane częściowe potrzebne do obliczeń, zostaje utworzony w katalogu, w którym uruchomiono skrypt PBS. Katalog ten znajduje się zwykle na wolnym zasobie dyskowym, który przez to może być nadmiernie obciążony, a obliczenia będą przeprowadzane o wiele wolniej. Gdy nazwa tego pliku nie zostanie wyspecyfikowana jest on tworzony w katalogu wyspecyfikowanym w zmiennej GAUSS_SCRDIR. Dzieki temu wzrasta wydajność obliczeń. To samo dotyczy ustawiania plików tymczasowych dyrektywami %int=, %d2e. Aby uzyskać dane potrzebne do restartów wystarcza w większości przypadków wyspecyfikowanie pliku "checkpoint" dyrektywą %chk. Więcej informacji o restartach zadań mozna znaleźć w dokumentacji producenta.

  • Uwaga: Użytkownicy spoza infrastruktury PL-Grid by korzystać z oprogramowania Gaussian muszą zostać dodani do odpowiedniej grupy użytkowników. W tym celu należy skontaktować się z administratorami klastra Zeus.

G09.D.01

Zmienne środowiskowe ustawiamy ładując moduł apps/gaussian/g09.D.01

 module add apps/gaussian/g09.D.01

Program uruchamiamy poleceniem g09

Przykładowy skrypt

Wersja szeregowa
#!/bin/env bash
##### Maksymalna pamiec przydzielona dla zadania
#PBS -l mem=1gb
##### Maksymalnie 1 rdzen na wezle
#PBS -l nodes=1:ppn=1
##### Maksymalny czas obliczen 1 godzina
#PBS -l walltime=1:00:00
##### Nazwa kolejki
#PBS -q l_short
##### Nazwa zadania widoczna w systemie kolejkowym
#PBS -N nazwa_obliczen
##### Nazwa grantu uzytego do obliczen
#PBS -A nazwa_grantu

# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 rev D.01 przy uzyciu Modules
module add apps/gaussian/g09.D.01

# informacja gdzie beda przechowywane pliki tymczasowe
echo "Temporary files stored in" $GAUSS_SCRDIR

# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
cd $PBS_O_WORKDIR

# uruchomienie zadania
g09 job.com

#usuniecie plikow tymczasowych
rm -rf $GAUSS_SCRDIR
Wersja równoległa ze współdzieloną pamięcią
#!/bin/env bash
##### Maksymalna pamiec przydzielona dla zadania
#PBS -l mem=12gb
##### Maksymalnie 12 rdzeni na wezle
#PBS -l nodes=1:ppn=12
##### Maksymalny czas obliczen 1 godzina
#PBS -l walltime=1:00:00
##### Nazwa kolejki
#PBS -q l_short
##### Nazwa zadania widoczna w systemie kolejkowym
#PBS -N nazwa_obliczen
##### Nazwa grantu uzytego do obliczen
#PBS -A nazwa_grantu

# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 rev D.01 przy uzyciu Modules
module add apps/gaussian/g09.D.01

# informacja gdzie beda przechowywane pliki tymczasowe
echo "Temporary files stored in" $GAUSS_SCRDIR

# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
cd $PBS_O_WORKDIR

# uruchomienie zadania
g09 job.com

#usuniecie plikow tymczasowych
rm -rf $GAUSS_SCRDIR

G09.C.01

Zmienne środowiskowe ustawiamy ładując moduł apps/gaussian/g09.C.01

 module add apps/gaussian/g09.C.01

Program uruchamiamy poleceniem g09

Przykładowy skrypt

Wersja szeregowa
#!/bin/env bash
##### Maksymalna pamiec przydzielona dla zadania
#PBS -l mem=1gb
##### Maksymalnie 1 rdzen na wezle
#PBS -l nodes=1:ppn=1
##### Maksymalny czas obliczen 1 godzina
#PBS -l walltime=1:00:00
##### Nazwa kolejki
#PBS -q l_short
##### Nazwa zadania widoczna w systemie kolejkowym
#PBS -N nazwa_obliczen
##### Nazwa grantu uzytego do obliczen
#PBS -A nazwa_grantu

# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 rev C.01 przy uzyciu Modules
module add apps/gaussian/g09.C.01

# informacja gdzie beda przechowywane pliki tymczasowe
echo "Temporary files stored in" $GAUSS_SCRDIR

# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
cd $PBS_O_WORKDIR

# uruchomienie zadania
g09 job.com

#usuniecie plikow tymczasowych
rm -rf $GAUSS_SCRDIR
Wersja równoległa ze współdzieloną pamięcią
#!/bin/env bash
##### Maksymalna pamiec przydzielona dla zadania
#PBS -l mem=12gb
##### Maksymalnie 12 rdzeni na wezle
#PBS -l nodes=1:ppn=12
##### Maksymalny czas obliczen 1 godzina
#PBS -l walltime=1:00:00
##### Nazwa kolejki
#PBS -q l_short
##### Nazwa zadania widoczna w systemie kolejkowym
#PBS -N nazwa_obliczen
##### Nazwa grantu uzytego do obliczen
#PBS -A nazwa_grantu

# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 rev C.01 przy uzyciu Modules
module add apps/gaussian/g09.C.01

# informacja gdzie beda przechowywane pliki tymczasowe
echo "Temporary files stored in" $GAUSS_SCRDIR

# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
cd $PBS_O_WORKDIR

# uruchomienie zadania
g09 job.com

#usuniecie plikow tymczasowych
rm -rf $GAUSS_SCRDIR

G09.B.01

Zmienne środowiskowe ustawiamy ładując moduł apps/gaussian/g09.V.01

 module add apps/gaussian/g09.B.01

Program uruchamiamy poleceniem g09

Przykładowy skrypt

Wersja szeregowa
#!/bin/env bash
##### Maksymalna pamiec przydzielona dla zadania
#PBS -l mem=1gb
##### Maksymalnie 1 rdzen na wezle
#PBS -l nodes=1:ppn=1
##### Maksymalny czas obliczen 1 godzina
#PBS -l walltime=1:00:00
##### Nazwa kolejki
#PBS -q l_short
##### Nazwa zadania widoczna w systemie kolejkowym
#PBS -N nazwa_obliczen
##### Nazwa grantu uzytego do obliczen
#PBS -A nazwa_grantu

# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 rev B.01 przy uzyciu Modules
module add apps/gaussian/g09.B.01

# informacja gdzie beda przechowywane pliki tymczasowe
echo "Temporary files stored in" $GAUSS_SCRDIR

# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
cd $PBS_O_WORKDIR

# uruchomienie zadania
g09 job.com

#usuniecie plikow tymczasowych
rm -rf $GAUSS_SCRDIR
Wersja równoległa ze współdzieloną pamięcią
#!/bin/env bash
##### Maksymalna pamiec przydzielona dla zadania
#PBS -l mem=12gb
##### Maksymalnie 12 rdzeni na wezle
#PBS -l nodes=1:ppn=12
##### Maksymalny czas obliczen 1 godzina
#PBS -l walltime=1:00:00
##### Nazwa kolejki
#PBS -q l_short
##### Nazwa zadania widoczna w systemie kolejkowym
#PBS -N nazwa_obliczen
##### Nazwa grantu uzytego do obliczen
#PBS -A nazwa_grantu

# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 rev B.01 przy uzyciu Modules
module add apps/gaussian/g09.B.01

# informacja gdzie beda przechowywane pliki tymczasowe
echo "Temporary files stored in" $GAUSS_SCRDIR

# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
cd $PBS_O_WORKDIR

# uruchomienie zadania
g09 job.com

#usuniecie plikow tymczasowych
rm -rf $GAUSS_SCRDIR

G09.A.02

Zmienne środowiskowe ustawiamy ładując moduł apps/gaussian/g09.A.02

 module add apps/gaussian/g09.A.02

Program uruchamiamy poleceniem g09

Przykładowy skrypt

Wersja szeregowa
#!/bin/env bash
##### Maksymalna pamiec przydzielona dla zadania
#PBS -l mem=1gb
##### Maksymalnie 1 rdzen na wezle
#PBS -l nodes=1:ppn=1
##### Maksymalny czas obliczen 1 godzina
#PBS -l walltime=1:00:00
##### Nazwa kolejki
#PBS -q l_short
##### Nazwa zadania widoczna w systemie kolejkowym
#PBS -N nazwa_obliczen
##### Nazwa grantu uzytego do obliczen
#PBS -A nazwa_grantu

# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 i A02 przy uzyciu Modules
module add apps/gaussian/g09.A.02

# informacja gdzie beda przechowywane pliki tymczasowe
echo "Temporary files stored in" $GAUSS_SCRDIR

# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
cd $PBS_O_WORKDIR

# uruchomienie zadania
g09 job.com

#usuniecie plikow tymczasowych
rm -rf $GAUSS_SCRDIR
Wersja równoległa ze współdzieloną pamięcią
#!/bin/env bash
##### Maksymalna pamiec przydzielona dla zadania
#PBS -l mem=12gb
##### Maksymalnie 12 rdzeni na wezle
#PBS -l nodes=1:ppn=12
##### Maksymalny czas obliczen 1 godzina
#PBS -l walltime=1:00:00
##### Nazwa kolejki
#PBS -q l_short
##### Nazwa zadania widoczna w systemie kolejkowym
#PBS -N nazwa_obliczen
##### Nazwa grantu uzytego do obliczen
#PBS -A nazwa_grantu

# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian09 i A02 przy uzyciu Modules
module add apps/gaussian/g09.A.02

# informacja gdzie beda przechowywane pliki tymczasowe
echo "Temporary files stored in" $GAUSS_SCRDIR

# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
cd $PBS_O_WORKDIR

# uruchomienie zadania
g09 job.com

#usuniecie plikow tymczasowych
rm -rf $GAUSS_SCRDIR


G03.E.01

Zmienne środowiskowe ustawiamy ładując moduł apps/gaussian/g03.E.01

 module add apps/gaussian/g03.E.01

Program uruchamiamy poleceniem g03

Przykładowy skrypt

Wersja szeregowa
#!/bin/env bash
##### Maksymalna pamiec przydzielona dla zadania
#PBS -l mem=1gb
##### Maksymalnie 1 rdzen na wezle
#PBS -l nodes=1:ppn=1
##### Maksymalny czas obliczen 1 godzina
#PBS -l walltime=1:00:00
##### Nazwa kolejki
#PBS -q l_short
##### Nazwa zadania widoczna w systemie kolejkowym
#PBS -N nazwa_obliczen
##### Nazwa grantu uzytego do obliczen
#PBS -A nazwa_grantu

# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian03 i E01 przy uzyciu Modules
module add apps/gaussian/g03.E.01

# informacja gdzie beda przechowywane pliki tymczasowe
echo "Temporary files stored in" $GAUSS_SCRDIR

# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
cd $PBS_O_WORKDIR

# uruchomienie zadania
g03 job.com

#usuniecie plikow tymczasowych
rm -rf $GAUSS_SCRDIR
Wersja równoległa ze współdzieloną pamięcią
#!/bin/env bash
##### Maksymalna pamiec przydzielona dla zadania
#PBS -l mem=12gb
##### Maksymalnie 12 rdzeni na wezle
#PBS -l nodes=1:ppn=12
##### Maksymalny czas obliczen 1 godzina
#PBS -l walltime=1:00:00
##### Nazwa kolejki
#PBS -q l_short
##### Nazwa zadania widoczna w systemie kolejkowym
#PBS -N nazwa_obliczen
##### Nazwa grantu uzytego do obliczen
#PBS -A nazwa_grantu

# Ustawianie zmiennych srodowiskowych dla pakietu Gaussian03 i E01 przy uzyciu Modules
module add apps/gaussian/g03.E.01

# informacja gdzie beda przechowywane pliki tymczasowe
echo "Temporary files stored in" $GAUSS_SCRDIR

# przejscie do sciezki, z ktorej wyslano zadanie do systemu kolejkowego
cd $PBS_O_WORKDIR

# uruchomienie zadania
g03 job.com

#usuniecie plikow tymczasowych
rm -rf $GAUSS_SCRDIR