Uruchomienie pierwszych obliczeń na komputerach ICM

Większość zadań, które będziemy wykonywali będzie miała ustawiony limit pamięci 1500 MB. Dla obliczeń metodą DFT dla średnich molekuł, ilości zdefiniowanej pamięci jest wystarczająca.

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:

MC_screen

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):

Qstat_screen

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.