Pierwszym etapem jest skopiowanie plików na maszynę dostępową Delta (gw.icm.edu.pl). Założymy, że wkopiowaliśmy katalog razem z plikami do obliczeń i nazwaliśmy go MOLL.
Następnie musimy przekopiować ten katalog na maszynę Halo, na której doeclowo będziemy wyjonywać obliczenia. Wykonujemy zatem polecenie:
scp -vr MOLL halo:~
(Wytłumaczenie: scp – kopiuje, vr – opcje, wyświetla informację o kopiowaniu oraz kopiuje wszystkie pliki zawarte w katalogu wraz z katalogiem)
Po wykonaniu tego polecenia musimy podać hasło, takie samo jak przy logowaniu na maszynę dostępową Dleta (gw.icm.edu.pl). Następnie logujemy się na maszynę Halo, poleceniem:
ssh halo
Po podaniu hasła, możemy sprawdzić zawartość naszego katalogu domowego poleceniem:
ls
Następnie katalogu MOLL:
ls MOLL
Teraz przystępujemy do przygotowania skryptu, który później wstawimy w kolejkę. Na samym początku kopiujemy przykładowy plik do naszego katalogu z obliczeniami, wraz ze zmianą nazwy:
cp /opt/examples/pbs/gaussian/g03 ~/MOLL/skrypt1
Skrypt ten ma zawartość:
#!/bin/tcsh -f
#0 G03 na halo jest smp wiec moze liczyc sie tylko na jednym nodzie:
#PBS -l nodes=1:ppn=2
#1 WPISZ czas ZEGAROWY potrzebny na wykonanie zadania: format: HH:MM:SS
#PBS -l walltime=24:00:00
#2 WPISZ ile miejsca potrzebuje twoje zadanie na dysku lokalnym /tmp1 (wazne dla MPn, CI itp) - nie wiecej niz 75GB - warto tez uzyc dyrektywy Maxdisk w inpucie Gaussiana
#PBS -l file=32gb
#ustawienia srodowiska gaussian'a: lepiej nie zmieniac!
setenv g03root /opt/gaussian
source /opt/gaussian/g03/bsd/g03.login
setenv GAUSS_SCRDIR /tmp1
#sprawdz wezel na ktorym sie liczy i jego zasoby lokalne
uname -a
df -k /tmp1
# WPISZ katalog gdzie sa inputy i gdzie beda outputy (output z gaussian)
# or checkponit. Powinien to byc podkatalog w /home
cd ~/...
date
# WPISZ zamiast test.inp i test.out nazwe swojego inputu i outputu
# Tu uruchamia sie gaussian
g03 < test.inp > test.out
date
# zakomentuj ponizsze 4 linie, jesli chcesz zachowac pliki tymczasowe
if ( `/bin/ps -ef|grep $USER|egrep "g98|g03" |grep -v "grep"|wc -l` == 0 ) then
/bin/rm -f /tmp1/Gau-*
/bin/rm -f /tmp1/*.rwf
endif
# info o zadaniu z PBSa
qstat -f $PBS_JOBID
To, co musimy zmienić, to miejsca zaznaczone kolorem czerwonym, w dalszej kolejności jak rozkręcimy się w liczeniu będziemy modyfikować bardziej skrypt. Zmieniamy:
cd ~/...
na:
cd ~/MOLL
oraz:
g03 < test.inp > test.out
na:
g03 < nazwaplikudoobliczen.inp > nazwaplikuzwynikami.out
Możemy to wykonać w edytorze vi, dla osób mało obeznanych z linuxem proponuję edytor mcedit. (edytor tekstowy programu Midnight Commander). Wykonujemy polecenie:
mcedit ~/MOLL/skrypt1
Ukazuje nam się okno programu, w którym zmieniamy w sposób intuicyjny linie w pliku, a następnie zapisujemy plik wciskając F2:
Następnie wstawiamy zadanie do kolejki poleceniem:
qsub ~/MOLL/skrypt1
W katalogu MOLL powinniśmy znaleźć pliki z obliczeniami. Dla sprawdzenia czy nasze obliczenia znajdują się w kolejce używamy polecenia qstat. W wyniku czego ukazuje się lista zadań zapisanych w kolejce (Q-zadanie czeka w kolejce, R-wykonuje się). Kasujemy zadanie z kolejki poleceniem qdel i numer zadania (np.: qdel 251887):
Dla każdego pliku, który chcemy obliczyć musimy przeprowadzić poniższą procedurę nadając za każdym razem inną nazwę dla pliku skrypt1, który będzie wykonywany. Możemy oczywiście uprościć nasze wstawianie do kolejki korzystając z własnych napisanych skryptów.
Uprzejmie proszę o przetestowanie tej procedury i policzenie jakiegoś zadania metodą AM1.
Wszelkie problemy prosimy zgłaszać w komentarzach pod tekstem.