2.1.3.1 Uruchamianie obliczeń pod systemem Windows
Jeżeli mamy zainstalowany program Gaussian w systemie Windows, wówczas uruchomiamy obliczenia uruchamiając program. Z menu File wybieramy opcję Open i wskazujemy na plik z przygotowanymi obliczeniami. Po uruchomieniu obliczeń poprzez użycie przycisku RUN w oknie, które pojawi się po otwarciu pliku wsadowego, mamy możliwość podglądania wyników w trybie tekstowym na ekranie oraz łatwy sposób zatrzymania obliczeń przyciskiem Pause lub z menu Process opcję Pause. Wznowienie zatrzymanych obliczeń wykonujemy przez użycie przycisku, lub z menu Process opcję Resume.
2.1.3.2 Uruchamianie obliczeń pod systemami z rodziny Unix, Linux
Obliczenia długotrwałe wymagają stabilnych i wydajnych systemów, dlatego program Gaussian jest przeważnie zainstalowany na systemach z rodziny Unix, Linux. Pierwszym etapem naszych obliczeń na maszynie uniksowej jest przeniesienie pliku na ta maszynę poprzez skopiowanie go. Najbardziej popularne w tym celu jest używanie szyfrowanego połączenia. Jeśli pracujemy na systemie Linux możemy skopiować wydając polecenie scp:
scp plik.gjf
polecenie to składa się z części3:
co kopiujemy np.: plik.gjf
na jakie konto i komputer kopiujemy np.:
po dwukropku (:) do jakiego katalogu np.:4 /home/user/
Jeżeli pracujemy na systemie Windows wówczas przydatnym programem, który umożliwia w przyjazny sposób transfer plików jest darmowy program WinSCP. Program ten posiada interfejs zbliżony do klasycznych managerów plików. Kopiowanie, zmiana, utworzenie nowego folderu dokonuje się po wybraniu właściwej opcji na dolnym pasku narzędzi bądź poprzez wybranie odpowiedniego klawisza funkcyjnego.
Jest wiele sposobów przesyłania plików między komputerami, należy więc wspomnieć o częstym błędzie, jaki występuje podczas przesyłania pliku. Jest to ustawienie złego trybu podczas transferu na przykład binarnego zamiast tekstowego. Wówczas część znaków jest inaczej zapisanych w pliku, a co zatem idzie plik jest bezużyteczny dla programu Gaussian. Błąd ten zauważymy poprzez problemy z obliczeniami plik wsadowy zostanie przeczytany tylko do pierwszej linii przez program Gaussian potem zostanie przerwany w wykonywaniu. Zły tryb przesłania pliku możemy zobaczyć poprzez otwarcie pliku w edytorze tekstowym (na przykład pod systemem Linux edytorem mcedit), wówczas będziemy widzieli w pliku inne znaki końca linii(^M), których nie umieszczaliśmy. Problem ten występuje najczęściej podczas kopiowania plików z różnych systemów: Windows, Linux. Problem ten możemy rozwiązać poprzez skopiowanie jeszcze raz plików lub przed konwertowaniem za pomocą któregoś edytora format pliku binarnego na format tekstowy.
Po skopiowaniu pliku wsadowego na odpowiednią maszynę, uruchamiamy w zależności od wersji Gaussiana oraz ustawień administratora poleceniem w powłoce np.:
g03 nazwa_pliku.gjf &6
2.1.3.3 Uruchamianie obliczeń w Centrach Obliczeniowych i ustawianie zmiennych.
Obliczenia przy pomocy programu Gaussian można prowadzić w Centrach obliczeniowych takich jak Wrocławskie Centrum Sieciowo Superkomputerowe w skrócie WCSS czy inne PCSS, CI TASK, ICM. Daje to możliwości korzystania z dużych mocy obliczeniowych, prowadzenie obliczeń na kilku procesorach, oraz możliwości liczenia kilku zadań jednocześnie, a także długich obliczeń sięgających do kilkunastu dni.
Korzystając z centrów, korzystamy z systemu kolejkowania, w którym umieszczamy nasze obliczenia. Czasami musimy ustawić zmienne środowiska, jeśli korzystamy z innych ustawień niż standardowe. Dokładny opis ustawień zmiennych oraz sposobu kolejkowania jest dostępny na stronach właściwego centrum superkomputerowego. Dla WCSS będzie to strona www.wcss.wroc.pl/kdm/. Przykładowe ustawienia zmiennych dla klastra "uklad" w powłoce bash w WCSS jest podane poniżej:
export GAUSS_EXEDIR=/usr/local/gaussian-2003-D.01/g03
export LD_LIBRARY_PATH=/usr/local/gaussian-2003-D.01/g03
export GAUSS_SCRDIR=/scratch/${USER}/g03-${1}-$$
Dla powłoki csh, która jest domyślna dla systemu Irix na przykład na maszynach grom lub alfa w WCSS:
setenv GAUSS_EXEDIR /usr/local/g03_C/g03/
setenv LD_LIBRARY_PATH /usr/local/g03_C/g03/
setenv GAUSS_SCRDIR /scratch/${USER}/g03-${1}-$$
Pierwsze dwie linie dotyczą wyboru wersji Gaussiana, oraz definiują miejsca bibliotek wymaganych przez programu. Trzecia ustawia katalog tymczasowy scratch. Wszystkie katalogi do plików, do których są ustawiane ścieżki w zmiennych musza istnieć. Ustawienie takich zmiennych umożliwia korzystanie z narzędzi Gaussiana odpowiedniej rewizji.7 Korzystając z komputerów Centrów obliczeniowych administratorzy przeważnie zadbali o ustawienie tych zmiennych dla użytkownika standardowo, podczas korzystania z sytemu kolejkowania nie trzeba więc ich ustawiać.
Kolejkowanie jest sposobem zapewnienia jak największej wydajności oraz możliwości korzystania z komputerów wszystkim użytkownikom, którzy posiadają konta na danej maszynie. Zadanie wstawiamy w kolejkę na przykład poleceniem:
sub-gaussian nazwa_zadania.gjf nazwa_kolejki
Kolejka określa z jakim priorytetem będzie zadanie wykonywane oraz ile potrzeba zasobów systemowych (ilość procesorów i czas potrzebny na obliczenia). Czas na wykonywanie obliczeń szacuje na podstawie własnych doświadczeń użytkownik. We WCSS kolejki dostępne dla obliczeń przeprowadzonych na jednym procesorze to short48h, large, short6h, short7d, normal, oraz na wiele procesorów parallel. W kolejce zadanie czeka na wolny czas procesora, kiedy kolejka dojdzie do zadania, zostanie ono policzone, jeżeli przekroczy czas obliczeń zdeklarowany w kolejce, zadanie zostanie przerwane. Dla wymienionych kolejek zdeklarowany czas przeznaczony na obliczenia wynosi kolejno: 48 godzin, 416 dni, 6 godzin, 7 dni, 416 dni i 416 dni. Bliższe informacje o specyfikacji kolejki możemy uzyskać wydając polecenie qstat ?fQ nazwa_kolejki. Standardowo można używać kolejki short7d, jest to wystarczający czas aby większość prostych obliczeń. Listę zadań w kolejce sprawdzamy poleceniem: qstat. Usuwanie zadania z kolejki możemy przez qdel z parametrem, którym jest numer zadania. W Poznańskim Centrum Sieciowo-Superkomputerowym do wstawania w kolejkę używamy jedynie polecenia G03 nazwa_pliku.gjf.
2.1.4 Wznowienie obliczeń lub nowe obliczenia na bazie starych obliczeń
Program Gaussian podczas przeprowadzenia obliczeń zapisuje swoje wyniki w pliku z rozszerzeniem .log lub .out -dla ?użytkownika?, oraz w pliku z rozszerzeniem .chk, z którego program korzysta. Czasami zdarza się, że obliczenia uległy przerwaniu lub chcemy przeprowadzić następny etap obliczeń. Wówczas możemy wznowić nasze obliczenia lub rozpocząć nowe, korzystając z pliku binarnego (.chk), pobierając na przykład geometrię cząsteczki. Nazwa pliku binarnego naszych obliczeń odpowiada nazwie ustawionej w pliku wsadowym w linijce zawierającej: %chk=nazwa.chk. Korzystając z tego pliku budujemy następny plik wsadowy, który zawiera następujące linie:
%chk=nazwa.chk
#P opt HF/6-311G guess=read geom=checkpoint
komentarz
0 1
Gdzie wyrażenia guess=read odpowiada za przeczytanie funkcji falowej oraz geom=checkpoint odpowiada za pobranie geometrii cząsteczki z pliku nazwa.chk. Po ładunku i multipletowości (np.: 0 1) nie definiujemy już geometrii cząsteczki zostawiamy jedna pustą linie (!) gdyż geometria została pobrana z pliku nazwa.chk. Dla pewnych zadań, jeśli obliczenia uległy przerwaniu możliwe jest wznowienie ich. Wówczas zapisujemy plik z zadaniem podobnie jak wyżej, lecz z odpowiednimi parametrami do słów definiujących poszczególne obliczenia np.:
Opt=Restart - restart optymalizacji, jeżeli optymalizacja nie zostało poprzednio dokończona.
Freq=Restart - restart obliczeń częstości, jeśli były wykonywane w sposób analityczny
Scan=Restart - restart obliczeń skanowania, jeżeli obliczenia nie są kompletne
2.1.5 Kilka obliczeń w jednym pliku - Multi step Jobs
Dokonując obliczeń w kilku etapach (np.: optymalizując cząsteczkę a następnie obliczanie wartości parametrów NMR), możemy nasze obliczenia wykonać, przygotowując tylko jeden plik wsadowy: Plik nasz musi zawierać linie ze zwrotem --Link1 -- po którym umieszczone są kolejne zadania do obliczeń, np.:
--Link1-- pierwszy etap obliczeń
%Chk=ch2.chk parametry
#P OPT HF/6-31G definicja obliczeń
optymalizacja cząsteczki CH2 komentarz autora
0 1 ładunek, multipletowość
C
H 1 B1 definiowana geometria cząsteczki
H 1 B2 2 A1 w macierzy-Z albo w układzie kartezjańskim
B1 1.10165796
B2 1.10165796
A1 104.66488044
jedna linia wolna (!)
--Link1-- Drugi etap obliczeń
%Chk=Ch2.chk parametry
#P NMR HF/6-31G Geom=Check Guess=Read pobranie geometrii cząsteczki oraz
funkcji falowej z pliku: ch2.chk
następne obliczenia to NMR komentarz autora
0 1 ładunek, multipletowość
wolna linia
W podobny sposób możemy definiować także większa liczbę zadań w jednym pliku. Dla obliczeń optymalizacji i częstości możemy w linii definiującej obliczenia użyć obok siebie słowa opt i freq, które będą oznaczały dwa zadania: przeprowadź optymalizację oraz policz częstości. Zadania wieloetapowe w niektórych centrach komputerowych nie są wykonywane (takim wyjątkiem są zadania optymalizacja i obliczenia częstości: opt freq) wówczas takie zadania musimy rozłożyć na poszczególne etapy w osobnych plikach.
2.1.6 Przenoszenie obliczeń między różnymi systemami
Podczas wykonywania obliczeń czasami konieczne jest przeniesienie obliczenia na inną maszynę, system. Wówczas musimy przenieść plik binarny- checkpoint (.chk), który zależy od zainstalowanej wersji Gaussiana.9 Robimy to poprzez wygenerowania checkpointu w postaci tekstowej ?ASCII.10 Uzyskany formatowany checkpoint posiada rozszerzenie .fchk ? (Gaussian Formatted Checkpoint Files) i może być wykorzystywany, oprócz przenoszenia obliczeń przez niektóre programy na przykład do wizualizacji wyników. Formatowany checkpoint otrzymujemy poprzez polecenie formchk:
formchk nazwa.chk nazwa.fchk
Dla Unixa czasami potrzeba podać ścieżkę do pliku formchk. Jeśli występują problemy prawdopodobnie trzeba ustawić zmienne (patrz 2.1.3.3). Korzystając z wersji Gaussiana pod systemem Windows wybieramy z menu Utilities opcję FormChk i otwieramy checkpointa. Chcąc wygenerować na nowej maszynie z powrotem checkpointa z formatowanego checkpointa, korzystamy z polecenia unfchk w sposób analogiczny:
unfchk nazwa.fchk nazwa.chk
W wyniku tej operacji otrzymujemy checkpoint do odpowiedniej dystrybucji Gaussiana. Czasami wystarczy, aby przenieść checkpoint między dystrybucjami Gaussiana w tym samym systemie na tej samej maszynie (np.: Gaussian98 do Gaussian03) wydać polecenie:
c8603 nazwa.chk
W wyniku czego otrzymujemy już gotowy checkpoint do określonej dystrybucji. Więcej informacji na temat narzędzi dostępnych w programie Gaussiana można uzyskać w manualu Gaussiana.
2.1.7 Struktura pliku wynikowego Gaussiana (.log, .out)
Po skończonych obliczeniach uzyskujmy plik o takiej samej nazwie co plik wsadowy, lecz o innym rozszerzeniu .log bądź .out zależnie od ustawień programu zawierającego wyniki obliczeń. W pliku tym na samym początku jest zawarta informacja o programie, następnie informacja o zadaniu, geometria układu i wyniki obliczeń. W dalszej części książki zostaną przedstawione dokładniej fragmenty pliku zawierające poszczególne obliczenia. Jeśli obliczenia zakończyły się poprawnie na końcu pliku powinna znajdować się linia z frazą "Normal termination of Gaussian":
.287605,6.850369,-1.982971\H,0,2.118038,5.517093,-2.921918\\Version=x8
6-Linux-G03RevB.03\State=1-A\HF=-1029.9071401\RMSD=4.339e-06\Dipole=0.
9070995,0.4742314,-1.1045329\PG=C01 [X(C36H52N2O10P2)]\\@
CHINESE FORTUNE COOKIE OF JAN 1 1967 SAY....
ALL THINGS ARE DIFFICULT BEFORE THEY ARE EASY.
WE LEARN SO LITTLE AND FORGET SO MUCH.
YOU WILL OVERCOME OBSTACLES TO ACHIEVE SUCCESS.
AH SO.
Job cpu time: 1 days 2 hours 0 minutes 23.0 seconds.
File lengths (MBytes): RWF= 565 Int= 0 D2E= 0 Chk= 108 Scr= 1
Normal termination of Gaussian 03 at Sun Aug 30 2:45:22 2005.
Wpis ten powinien się znaleźć po każdym zadaniu (linku), jeśli dokonywaliśmy kilku obliczeń ? Multi Step Jobs. Jeśli podczas obliczeń przytrafiły się błędy, nie znajdziemy takiej linii, lecz informacje o błędach przydatne do poprawienia pliku wsadowego do Gaussiana.
Przed informacją o poprawnym zakończeniu obliczeń zawarta jest informacja o czasie użycia procesora - "Job cpu time:". Na końcu pliku znajduje się sentencja, która jest losowo dobierana i nic nie znaczy odnośnie obliczeń. Sentencje jedynie mają umilić czas podczas analizowania wyników.