Andrzej Marszałek Instalacja i konfiguracja pakietu do obliczeń

Transkrypt

Andrzej Marszałek Instalacja i konfiguracja pakietu do obliczeń
AKADEMIA PEDAGOGICZNA
IM. KOMISJI EDUKACJI NARODOWEJ
W KRAKOWIE
INSTYTUT FIZYKI
Kierunek: Fizyka komputerowa
Andrzej Marszałek
Instalacja i konfiguracja pakietu do
obliczeń struktur elektronowych
WIEN2k
Praca licencjacka napisana
w Zakładzie Spektroskopii Mössbauerowskiej
pod kierunkiem dr inż. Artura Błachowskiego
Kraków 2005
Spis treści
1. Instalacja systemu Linuks Gentoo . . . . . . . . . . . . . . . . .
1.1. Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Konfiguracja sprzętowa serwera elektron. . . . . . . . . . . . . .
1.3. Przygotowanie do instalacji . . . . . . . . . . . . . . . . . . . . .
1.4. Instalacja Gentoo na serwerze elektron . . . . . . . . . . . . . . .
1.4.1. Konfiguracja sieci . . . . . . . . . . . . . . . . . . . . . .
1.4.2. Partycjonowanie dysku . . . . . . . . . . . . . . . . . . .
1.4.3. System plików . . . . . . . . . . . . . . . . . . . . . . . .
1.4.4. Instalacja Stage’a . . . . . . . . . . . . . . . . . . . . . .
1.4.5. Instalacja Portage . . . . . . . . . . . . . . . . . . . . . .
1.4.6. Zmiana środowiska, pierwsze kroki w nowym środowisku
chroot, rsync . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.7. Parametry optymalizujące, flagi USE . . . . . . . . . . .
1.4.8. stage1 -> stage2 -> stage3 . . . . . . . . . . . . . . . . .
1.4.9. Konfigurowanie jądra . . . . . . . . . . . . . . . . . . . .
1.4.10. Konfigurowanie systemu . . . . . . . . . . . . . . . . . .
1.4.11. I... reboot . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
/
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
2
3
3
3
4
4
4
.
.
.
.
.
.
.
.
.
.
.
.
5
5
6
7
8
9
2. Instalacja, konfiguracja i użytkowanie pakietu WIEN2k
2.1. Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Krótki wstęp teoretyczny . . . . . . . . . . . . . . . . . .
2.3. Biblioteki numeryczne . . . . . . . . . . . . . . . . . . . .
2.4. Kompilatory . . . . . . . . . . . . . . . . . . . . . . . . .
2.5. Kompilacja oraz instalacja pakietu . . . . . . . . . . . . .
2.6. Użytkowanie pakietu WIEN2k . . . . . . . . . . . . . . .
2.7. Skrypt startowy WIEN2k . . . . . . . . . . . . . . . . . .
2.8. Opis dokumentacji . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
10
10
11
11
12
15
15
16
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
absorpcji
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
17
18
20
22
32
33
33
33
34
35
35
36
37
3. Przykładowe obliczenia dla TiC . . . . . . . . . . . . . .
3.1. Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Uruchomienie WIEN2k . . . . . . . . . . . . . . . . . .
3.3. Logowanie i utworzenie sesji obliczeniowej . . . . . . . .
3.4. Generowanie struktury kryształu . . . . . . . . . . . . .
3.5. Inicjalizacja obliczeń . . . . . . . . . . . . . . . . . . . .
3.6. Obliczenia samouzgodnione (SCF ) . . . . . . . . . . . .
3.7. Wykresy gęstości elektronowej . . . . . . . . . . . . . .
3.7.1. Wykres 3D . . . . . . . . . . . . . . . . . . . .
3.7.2. Wykres konturowy . . . . . . . . . . . . . . . .
3.8. Gęstość stanów elektronowych (DOS) . . . . . . . . . .
3.9. Obliczenia własności optycznych . . . . . . . . . . . . .
3.10. Widmo promieniowania rentgenowskiego . . . . . . . .
3.11. Obliczenia widm w oparciu o spektroskopię na krawędzi
3.12. Obliczenia struktury pasmowej . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Spis tablic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
Spis rysunków . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
Streszczenie
W pracy tej prezentuję pakiet do obliczeń struktur elektronowych WIEN2k.
Zwykle sytuacja przedstawia się tak, że Administrator systemu Linuks proszony
jest przez Fizyka o instalację pakietu. Fizyk może mieć problemy z przygotowaniem środowiska do instalacji, Administrator natomiast ze sprawdzeniem, czy
wszystko zainstalował poprawnie. Oczywiście w końcu dojdą do porozumienia,
ale zajmie im to trochę czasu. Mam nadzieję, że moja praca pomoże zarówno
Fizykowi jak i Administratorowi, skróci czas instalacji i konfiguracji WIEN2k,
umożliwiając Fizykowi komfortową pracę.
W rozdziale 1. przeprowadzam instalację zoptymalizowanego środowiska linuksowego na przykładzie dystrybucji Gentoo. Pokazuję zalety tej dystrybucji,
wskazuję najbardziej odpowiednie parametry optymalizacji zarówno systemu
jak i pakietu obliczeniowego. Rozdział 2. poświęciłem pakietowi WIEN2k, przeprowadzając użytkownika krok po kroku przez proces kompilacji i instalacji,
wyjaśniam powody ustawienia poszczególnych parametrów. W rozdziale 3. zaprezentowałem podręcznikowy przykład obliczeń dla związku TiC. Skoncentrowałem się głównie na prezentacji wygodnego i łatwego w obsłudze, graficznego
interfejsu użytkownika, dostępnego z poziomu dowolnej przeglądarki WWW.
Omawiając poszczególne etapy wprowadzania danych, obliczeń oraz otrzymanych danych, zobrazowałem je w obfity sposób zrzutami ekranów z prawdziwej
sesji obliczeniowej.
Pełną instalację Gentoo i WIEN2k przeprowadziłem na serwerze elektron,
udostępnionym mi przez Zakład Spektroskopii Mössbauerowskiej, jednostkę Akademii Pedagogicznej w Krakowie.
1. Instalacja systemu Linuks Gentoo
1.1. Wstęp
Jedną z charakterystycznych cech systemu Linuks Gentoo
[1] jest to, że w trakcie instalacji i użytkowania można w
prosty sposób optymalizować kompilację wszystkich pakietów, dzięki czemu otrzymujemy produkt stabilny, wydajny i
przystosowany do naszych potrzeb.
Praktycznie cały system może być przekompilowany w czasie instalowania,
dzięki czemu jest on bardzo dobrze dopasowany do posiadanej przez nas architektury sprzętowej, konfigurowalny zgodnie z naszymi preferencjami a przede
wszystkim jest szybki i stabilny. Oczywiście w celu przeprowadzenia instalacji
powinniśmy posiadać wydajny sprzęt oraz dostęp do sieci Internet (chociaż nie
jest to niezbędne).
W chwili obecnej, Gentoo można instalować na maszynach posiadających
procesory z rodziny x86, AMD64, PowerPC, UltraSparc, Alpha oraz MIPS.
Pakiety
Kolejną ważną zaletą systemu Gentoo jest system pakietów (Portage) [2].
Ich filozofia została oparta na implementacji portów (ports) z rodziny systemów
*BSD. Programy są grupowane w kategoriach (np. app-antivirus, sys-cluster,
sys-kernel ), natomiast w podkatalogach kategorii (noszących nazwy programów,
np. clamav, lam-mpi, vanilla-sources) znajdują się pliki z informacjami na temat
miejsca dostępu źródeł programu, sposobu konfiguracji, parametrów kompilacji a także miejsca docelowej instalacji. Często dostępne są równolegle kolejne
wersje programów, pozostawiając użytkownikowi wybór w kwestii instalacji
(wersja nowsza lub starsza, ale sprawdzona, stabilna, np. aktualnie, m.in., dostępne są wersje źródeł kernela vanilla-sources-2.6.12.5, vanilla-sources-2.6.13,
vanilla-sources-2.6.14 rc1 ).
Instalację pakietu wykonuje się poprzez wydanie polecenia
emerge nazwa-pakietu
Polecenie emerge automatycznie ściągnie, przekompiluje i zainstaluje pakiet
oraz, jeśli zaistniała taka potrzeba, pakiety pomocnicze.
Grupa ludzi odpowiedzialna za utrzymanie drzewa pakietów, cały czas aktualizuje, rozwija i dodaje nowe pakiety, w zależności od tego, jak często pojawiają
się nowe wersje oprogramowania. W każdej chwili, mając dostęp do Internetu,
można zaktualizować drzewo pakietów (polecenie emerge sync). We wrześniu
2005 roku liczba dostępnych w portach programów przekroczyła 10000 w 143
kategoriach.
Flagi USE
Inną z zalet Gentoo jest duża konfigurowalność tej dystrybucji. To, że bazuje
ona na źródłach programów, daje użytkownikowi pełną kontrolę nad zestawem
opcji wkompilowywanych w instalowane aplikacje. Sterowanie tym, co ma się
instalować a co nie w naszym systemie, kontroluje się poprzez zmienną USE z
pliku /etc/make.conf. Np. ustawienia
USE=”-X atlas bcmath mysql nls”
oznaczają, w kolejności
1
— nie instaluj bibliotek i programów związanych ze środowiskiem graficznym
X11
— użyj bibliotek atlas zamiast blas
— użyj libbcmath, jeśli aplikacja może jej potrzebować
— wkompiluj bibliotekę w programy, które mogą obsługiwać MySQLa
— dodaj obsługę języków narodowych w aplikacjach, które na to pozwalają
W chwili obecnej dostępnych jest ponad 350 standardowych flag [3].
1.2. Konfiguracja sprzętowa serwera elektron.
Konfiguracja sprzętowa serwera elektron przedstawia się następująco:
—
—
—
—
2 x Pentium Xeon 2.8 GHz
RAM 4 GiB RAM
HDD 160 GiB ATA
płyta główna posiada zintegrowaną kartę gigabitową, stumegabitową oraz
grafikę.
Rysunek 1.1: Serwer elektron
Serwer znajduje się w Zakładzie Spektroskopii Mössbauerowskiej Akademii
Pedagogicznej w Krakowie [4].
1.3. Przygotowanie do instalacji
Gentoo można zainstalować na wiele sposobów. Instalacji można dokonać
z płytki Gentoo LiveCD, płytek innych dystrybucji linuksa, z dowolnej, zainstalowanej już dystrybucji, z PXE, z dyskietki. Możliwości jest wiele, sposób
instalacji zależy od tego, jakie mamy możliwości techniczne lub... preferencje.
W tym przypadku, instalację przeprowadziłem standardowo [5], ściągając z
jednego z dostępnych serwerów
http://www.gentoo.org/main/en/mirrors.xml
obraz ISO dystrybucji, wypalając go na płytce CD i startując proces instalacji
z tej właśnie płytki.
Przy instalacji Gentoo można utworzyć system za pomocą jednego z trzech
tarballi, z użyciem tzw. stage’y. Każdy z nich, to skompresowane archiwum
zawierające minimalne środowisko pracy.
— stage1 - zawiera wyłącznie kompilator, Portage oraz programy, bez których
narzędzia te nie mogłyby pracować. Pozwala na pełną kontrolę nad konfiguracją i optymalizacją systemu, jest odpowiedni dla doświadczonych użytkowników.
2
— stage2 - zawiera spakowany system, w którym można przystąpić do budowy
innych niezbędnych narzędzi systemowych. Minusem jest to, że trzeba zaakceptować domyślne ustawienia optymalizacji dla podstawowego systemu.
— stage3 - zawiera prekompilowany system podstawowy, który jest niemal w
pełni przygotowany do pracy. Brakuje mu jedynie kilku programów, które
każdy użytkownik musi wybrać i zainstalować samodzielnie. Niestety, nie
można poprawiać systemu podstawowego - jest prekompilowany.
Z wyżej wymienionych powodów, instalację przeprowadzałem ze stage1.
1.4. Instalacja Gentoo na serwerze elektron
Domyślnym edytorem plików w gentoo jest program nano, np.
nano -w /etc/conf.d/net
Opis parametrów obsługi nano znajduje się w dwóch najniższych liniach po
wywołaniu programu.
1.4.1. Konfiguracja sieci
W pliku /etc/conf.d/net wpisałem parametry konfiguracyjne sieci dla serwera elektron:
iface eth0=”149.156.26.96 netmask 255.255.255.0”
gateway=”eth0/149.156.26.1”
oraz w pliku /etc/resolv.conf
nameserver 149.156.24.24
domain ap.krakow.pl
Uaktywnienie sieci wykonałem poleceniem
/etc/init.d/net.eth0 start
1.4.2. Partycjonowanie dysku
Partycje zostały podzielone w następujący sposób:
Partycja
/dev/hda1
/dev/hda2
/dev/hda3
Montowanie
swap
/
/home
System plików
swap
reiserfs
reiserfs
Rozmiar
4 GB
30 GB
120 GB
Opis
Partycja wymiany
Partycja główna
Katalogi domowe użytkowników
Tablica 1.1: Partycje dyskowe
Dane użytkowników będą zajmowały najwięcej miejsca, dlatego też partycja
katalogów domowych zajmuje 75% dostępnej przestrzeni dyskowej. Do partycjonowania dysku użyłem standardowego narzędzia fdisk:
fdisk /dev/hda
ustawiając wielkości partycji zgodnie z powyższą tabelą.
3
1.4.3. System plików
Jako główny system plików wybrałem ReiserFS [6]. Z moich doświadczeń
wynika, że sprawuje sie on świetnie zarówno na komputerach domowego przeznaczenia jak i serwerach wymagających krytycznego dostępu do danych. Przy
wielu małych plikach ReiserFS może być szybszy od ext3 nawet piętnastokrotnie. ReiserFS jest wysoce skalowalny i posiada księgowanie [7]. Charakteryzuje
go niezawodność oraz użyteczność zarówno na partycjach ogólnego przeznaczenia jak i w ekstremalnych przypadkach, takich jak ogromne, terabajtowe partycje. Poprawnie sprawuje się także przy operacjach na katalogach zawierających
dziesiątki i setki tysięcy plików, także operując na wielu bardzo małych lub
bardzo dużych plikach
W kolejnych krokach wykonałem następujące czynności:
— Utworzenie partycji:
mkswap /dev/hda1
mkreiserfs -q /dev/hda2
mkreiserfs -q /dev/hda3
— Aktywacja partycji wymiany:
swapon /dev/hda1
— Montowanie partycji:
mount /dev/hda2 /mnt/gentoo
mkdir /mnt/gentoo/home
mount /dev/hda3 /mnt/gentoo/home
1.4.4. Instalacja Stage’a
Stage dostępne są w katalogu /mnt/cdrom/stages na płytce instalacyjnej.
W celu poprawnej jego instalacji wykonałem kroki (w chwili pisania tej pracy,
najnowszym wydaniem był Gentoo 2005.1 ):
cd /mnt/gentoo
tar -xvjpf /mnt/cdrom/stages/stage1-x86-2005.1.tar.bz2
chmod 0755 /mnt/gentoo
W czasie kilkudziesięciu sekund nastąpiło rozpakowanie podstawy systemu, co
można było obserwować na bieżąco na konsoli.
Stage można także pobrać z mirrorów, np.
wget http://ftp.belnet.be/mirror/rsync.gentoo.org/ \
gentoo/releases/x86/current/stages/x86/stage1-x86-2005.1.tar.bz2
i postąpić jak wyżej.
1.4.5. Instalacja Portage
Porty dostępne są na każdym z mirrorów Gentoo (ja wybrałem BelNet), w
katalogu snapshots. W celu instalacji Portage postąpiłem następująco:
cd /mnt/gentoo
wget http://ftp.belnet.be/mirror/rsync.gentoo.org/ \
gentoo/snapshots/portage-latest.tar.bz2
tar -xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
4
1.4.6. Zmiana środowiska, pierwsze kroki w nowym środowisku /
chroot, rsync
Tuż przed wejściem do środowiska nowej instalacji, należało przekopiować
plik ustawień
cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
cp -L /etc/conf.d/net /mnt/gentoo/etc/net
oraz zamontować system plików /proc
mount -t proc none /mnt/gentoo/proc
Gdy wszystkie partycje zostały założone, a podstawowe środowisko (stage1 ) zainstalowane, nadszedł czas wejścia w nie, poprzez chroot. Oznacza to przejście
z systemu źródła instalacyjnego do systemu instalowanego.
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
Po zakończeniu operacji wejścia do nowego środowiska wykonałem polecenie
emerge sync
w celu zaktualizowania drzewa Portage.
1.4.7. Parametry optymalizujące, flagi USE
Dokonałem wyboru profilu systemu. Dostępne profile można podglądnąć
ls -lsa /usr/portage/profiles/default-linux/x86/
i wybrać najnowszy (u mnie był to profil 2005.1), poprzez utworzenie dowiązania
symbolicznego
ln -snf /usr/portage/profiles/default-linux/x86/2005.1 /etc/make.profile
Falgi USE możemy wylistować poleceniem
less /usr/portage/profiles/use.desc
a ustawiać je należy w pliku /etc/make.conf
nano -w /etc/make.conf
Serwer elektron, oprócz zadań obliczeniowych, miał także spełniać rolę terminala
graficznego, gdzie będzie można np. przeglądnąć dokumentację w formacie pdf,
wykonać backup na nośnikach DVD, czy wysłać plik na drukarkę. Wybranym
środowiskiem graficznym stał się Gnome, jako kompromis między szybkością
działania a prostotą obsługi.
Ustawienia flag USE [3]
USE=”gnome X gtk2 alsa ssl nptl nptlonly gtk gtk2 network mysql hal
howl -qt -kde”
W tym samym pliku poprawiłem lub dodałem wpisy:
CHOST=”i686-pc-linux-gnu”
CFLAGS=”-O2 -pipe -march=pentium4”
MAKEOPTS =”-j2”
PORTAGE NICENESS =”19”
Zmienna CFLAGS i CXXFLAGS definiują żądane flagi dla kompilacji kodu C
i C++, zmienna CHOST zawiera informację o hoście na którym budowany jest
program.
W zależności od architektury, na której instalujemy, ograniczając się do tych
najbardziej popularnych, mamy następujący wybór ustawień flagi CHOST oraz
parametru -march:
5
Host (flaga CHOST )
i386-pc-linux-gnu
i486-pc-linux-gnu
i586-pc-linux-gnu
i686-pc-linux-gnu
x86 64-pc-linux-gnu
Rodzina procesorów
Intel 80386DX
Intel 80486DX
Intel PI, AMD K5/K6/K6-II/K6-III, VIA C3 , IDT Winchip
Intel PII/III/IV, AMD Duron/Sempron/Athlon-XP
Intel EM64T, AMD Athlon64/Opteron
Tablica 1.2: Rodziny procesorów i flaga CHOST
Architektura (parametr -march)
i386
i486
i586, pentium
pentium-mmx
i686, pentiumpro
pentium2
pentium3, pentium3m
pentium-m
pentium4, pentium4m
prescott
nocona
k6
k6-2, k6-3
athlon, athlon-tbird
athlon-4, athlon-xp, athlon-mp
athlon64, athlon-fx, opteron
winchip-c6
winchip2
c3
c3-2
Procesor
Intel 80386DX+
Intel 80486DX+
Intel Pentium I (bez MMX) i AMD K5
Intel Pentium I (z MMX)
Intel Pentium Pro
Intel Pentium II, Celeron ’Mendocino’
Intel Pentium III, Mobile, Celeron ’Coppermine’
Intel Centrino
Intel Pentium IV, Celeron ’Willamette’
Intel Pentium IV, Celeron ’Prescott’
Intel Xeon ’Nocona’ i Pentium4 z EM64T
AMD K6
AMD K6-II, K6-III
AMD Athlon, Athlon ’Thunderbird’
AMD Athlon4, Sempron/AthlonXP, Athlon MP
AMD Athlon64, AthlonFX, Opteron
IDT Winchip ’C6’
IDT Winchip II
VIA C3
VIA C3 II
Tablica 1.4: Architektura serwera i parametr -march
Należy zwrócić uwagę, że w przypadku błędnych ustawień parametru -march,
kompilacja może zostać przerwana z powodu próby inicjalizacji poleceń z optymalizacjami rozkazów nie obsługiwanych przez procesor.
1.4.8. stage1 -> stage2 -> stage3
stage1->stage2
Kompilacja systemu od podstaw, pomimo istotnych zalet, ma jedną wadę: trwała
2-3 godziny. Na tym etapie będą budowane biblioteki GNU C, zestaw kompilatorów GNU i kilka innych niezbędnych do stworzenia systemu programów. W
celu wykonania tzw. bootstrapu systemu, wykonałem następujące polecenia:
cd /usr/portage
scripts/bootstrap.sh
Przykładowy początek procesu bootstrap można zobaczyć na poniższym obrazie:
6
Rysunek 1.2: Proces bootstrap
Po przerwaniu procesu bootstrap, np. przez użytkownika lub z powodu wystąpienia błędu, nie jesteśmy zmuszeni do rozpoczynania całego procesu kompilacji
od nowa. Ponowne uruchomienia skryptu spowoduje kontynuację budowania
systemu od miejsca, w którym została ona przerwana.
Po jego zakończeniu przeszedłem do kolejnego etapu.
stage2->stage3
Na tym etapie kompilują i instalują się programy, co do których nie mamy
możliwości wyboru a są one niezbędne do pełnego działania systemu. Niektóre
programy mają kilka alternatyw (np. programy logujące) i te programy musiałem zainstalować samodzielnie. Pozostałe (ponad 90 pakietów) zainstalowałem,
wydając polecenia:
emerge -u portage
emerge –emptytree system
Jest to najdłuższy etap kompilacji, trwał kilkanaście godzin. Po jego zakończeniu
należało ustawić strefę czasową. Do wyboru miałem:
ls /usr/share/zoneinfo
Serwer elektron instalowany jest w Polsce, w związku z tym ustawiłem strefę
czasową Poland, robiąc dowiązanie symboliczne
ln -sf /usr/share/zoneinfo/Poland /etc/localtime
1.4.9. Konfigurowanie jądra
Mając skompilowany i zainstalowany prawie cały system, należało jeszcze
zainstalować jego najważniejszą część: jądra systemu. Jądro Linuks jest sercem każdej dystrybucji i stanowi interfejs pomiędzy programami użytkownika,
a sprzętem. W Portach (/usr/portage/sys-kernel ) jest do wyboru kilkanaście
odmian jądra (kernela) dla architektury x86, ale dla mnie najważniejsze były
dwie: vanilla-sources oraz gentoo-sources. Pierwszy z nich jest tzw. “czystym”
jądrem, przygotowywanym przez deweloperów jądra [8] a pozbawionym poprawek z zewnątrz. Jest to jądro dla każdego systemu, stabilne i przetestowane.
Gentoo-sources, są to oryginalne źródła jądra z poprawkami zwiększającymi
wydajność. Przede wszystkim zawsze warto sprawdzić, jak działa system z tym
jądrem a w razie wystąpienia problemów, zainstalować vanilla.
Konfiguracja jądra nie jest prostą sprawą i niezaawansowanemu użytkownikowi może sprawić problemy. Na szczęście deweloperzy Gentoo przygotowali,
dla mniej biegłych użytkowników, skrypt dokonujący konfiguracji, kompilacji i
instalacji jądra. Skrypt o nazwie genkernel, należało najpierw zainstalować
7
emerge genkernel
Wreszcie źródła jądra - na serwerze elektron zainstalowałem wersję gentoo-sources
emerge gentoo-sources
Domyślnie źródła jądra instalują się w katalogu /usr/src a dowiązanie symboliczne /usr/src/linux wskazuje na te, których system ma używać do instalacji.
Przy braku dowiązania, genkernel przerwie pracę z informacją o wystąpieniu
błędu.
Źródła skompilowałem przy pomocy polecenia
genkernel –menuconfig –install all
Kompilacja zajęła kilkadziesiąt minut, ponieważ genkernel musiał przygotowć
niemal wszystkie sterowniki dostępne w jądrze. W trakcie działania skryptu genkernel należało ręcznie włączyć część opcji (jeśli nie były włączone domyślnie):
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
Processor type and features --->
Processor family (Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon)
[*] Symmetric multi-processing support
General setup --->
[*] Support for hot-pluggable devices
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[ ] /dev file system support (OBSOLETE)
[*] Virtual memory file system support (former shm fs)
<*> Reiserfs support
Po zakończeniu konfiguracji, genkernel kontynuował działanie, przez około 20
minut. Dodatkowo do pliku /etc/modules.autoload.d/kernel-2.6 dopisałem nazwy modułów jądra, które powinny się ładować przy starcie systemu (np. moduły kart sieciowych).
1.4.10. Konfigurowanie systemu
Na tym etapie instalowałem dodatkowe pakiety, niezbędne do pełnego działania systemu:
— wykrywanie urządzeń przy starcie systemu:
emerge sys-apps/coldplug
rc-update add coldplug boot
— program logujący:
emerge app-admin/syslog-ng
rc-update add syslog-ng default
— automatyczne uruchamianie poleceń w określonym czasie:
emerge sys-process/vixie-cron
rc-update add vixie-cron default
— indeksowanie plików w celu szybkiego wyszukiwania:
emerge sys-apps/slocate
— narzędzia do obsługi systemu plików:
emerge sys-fs/reiserfsprogs
8
— program rozruchowy (bootloader), odpowiedzialny za uruchomienie systemu
operacyjnego:
emerge sys-boot/grub
emerge app-admin/grubconfig
— serwer http, serwujący strony domowe użytkowników i stronę Zakładu Spektroskopii Mössbauerowskiej http://elektron.ap.krakow.pl/
emerge net-www/apache
rc-update add apache2 default
— serwer wydruku
emerge net-print/cups
rc-update add cupsd default
— serwer odpowiedzialny za synchronizację czasu
emerge net-misc/openntpd
rc-update add ntpd default
— serwer SMTP
emerge mail-mta/postfix
rc-update add postfix default
— serwer FTP
emerge net-ftp/pure-ftpd
rc-update add pure-ftpd default
— program monitorujący stan dysku
emerge sys-apps/smartmontools
rc-update add smartd default
— środowisko graficzne GNOME
emerge gnome-base/gnome
rc-update add xdm default
— programy wspomagające pakiet WIEN2k
emerge app-text/ghostscript
emerge media-gfx/gnuplot
Po instalacji gruba należało uruchomić program grubconfig oraz wskazać partycję rozruchową do zainstalowania bootloadera.
1.4.11. I... reboot
Instalacja została zakończona, należało jeszcze ustawić pozostałą część usług
tak, by uruchamiały się przy starcie serwera:
— aktywacja ustawień sieciowych
rc-update add net.eth0 default
— serwer SSH
rc-update add sshd default
Na koniec ustawiłem hasło
passwd root
oraz utworzyłem konta dla kilku użytkowników, np.
useradd andy
passwd andy
Po wykonaniu tych kroków przeprowadziłem restart serwera
reboot
2. Instalacja, konfiguracja i użytkowanie
pakietu WIEN2k
WIEN2k jest pakietem umożliwiającym wykonywanie obliczeń struktur elektronowych ciał stałych metodą ab initio. W
metodzie tej, jako dane wejściowe, wymagane są wyłącznie
liczby atomowe pierwiastków oraz podstawowe stałe fizyczne.
Dane wyjściowe pozwalają np. na określenie struktury elektronowej, gęstości,
własności sprężystych a nawet kolor pierwiastka lub związku chemicznego.
2.1. Wstęp
Pierwsza wersja programu o nazwie WIEN ukazała się roku 1990, jej autorami byli P. Blaha, K. Schwarz, P. Sorantin i S. B. Trickey [9]. W następnych latach pojawiały się kolejne, unixowe wersje pakietu: WIEN93, WIEN95
i WIEN97. Aktualna wersja, nosząca nazwę WIEN2k pozwala na instalację pakietu na wielu platformach unixowych oraz umożliwia dużą swobodę optymalizacji wydajnościowej. Posiada także wygodny interfejs użytkownika dostępny z
poziomu dowolnej przeglądarki WWW.
WIEN2k został napisany w języku FORTRAN 90, uruchomiono go z powodzeniem na wielu platformach z rodziny uniksowej, takich jak Pentium/AMD
pod Linuksem, IBM RS6000, HP, SGI, DEC Alpha oraz SUN. Prostota kompilacji i instalacji pozwala na zainstalowanie go na każdym nowoczesnym systemie
UNIX (LINUKS) [10].
Wymagania sprzętowe programu zależą od wielkości i skomplikowania obliczanych struktur - dla prostych, dziesięcioatomowych komórek elementarnych,
wystarczy komputer klasy PC ze 128 MiB pamięci RAM, działający pod kontrolą systemu Linuks. W praktyce, zalecane jest posiadanie 512 MiB, 1 GiB lub
więcej pamięci. Dla wersji równoległej działającej w klastrze, zaleca się minimum
100 Mbitową sieć.
2.2. Krótki wstęp teoretyczny
Jądra atomowe i elektrony w ciele stałym stanowią złożony układ kwantowy,
niemożliwy do rozwiązania bez pewnych przybliżeń. Np. można traktować jądra
jako punktowe ładunki dodatnie zamrożone w węzłach sieci krystalicznej. Dla
wielu problemów, jest to wystarczające przybliżenie, bowiem do wyznaczenia
własności stanu podstawowego układu nie potrzebne są wszystkie informacje o
układzie, które zawiera funkcja falowa.
Układ elektronów w ciele stałym można traktować jako oddziałujący gaz w
zewnętrznym potencjale (jąder). Stosując zasadę wariacyjną δEn = 0 można
otrzymać tzw. samouzgodnione równania Kohna-Shama.
Obliczenia ab initio bazują na teorii funkcjonału gęstości (DFT - Density
Functional Theory) sformułowanej w latach 60-tych dwudziestego wieku przez
Waltera Kohna, laureata Nagrody Nobla z 1998 roku w dziedzinie chemii. Obliczenia te polegają na rozwiązaniu równania Kohna-Shama. Równanie to pozwala zredukować oddziaływanie elektronów rdzenia do oddziaływania elektronów walencyjnych. Oddziaływanie elektronów walencyjnych z jądrem i elektro10
nami zamkniętych powłok przybliża się przez pseudopotencjał. Pseudopotencjały zależą wyłącznie od atomu i są niezależne od składu badanego układu.
Znajomość pseudopotencjałów daje w zasadzie możliwość wyznaczenia właściwości dowolnego układu krystalicznego. W obliczeniach układów krystalicznych
bazuje się na przedstawieniu układu w postaci superkomórki dla której oblicza się energię stanu podstawowego przez minimalizację potencjału oddziaływania ze względu na stany elektronowe i położenia jonów. Superkomórki są
wielokrotnością komórek elementarnych kryształu, na które nakłada się periodyczne warunki brzegowe. Potencjał oddziaływania składa się z kulombowskiego
oddziaływania rdzeni jonowych, oddziaływania jon-elektron wyrażonego pseudopotencjałem oraz oddziaływania wymiennego elektron-elektron opisywanego
różnymi przybliżeniami. Podstawowe przybliżenia to przybliżenie lokalnej gęstości LDA (Local Density Approximation) i przybliżenie uogólnionego gradientu
GGA (Gradient Generalized Approximation). W przybliżeniu LDA równania
Kohna-Shama przybierają postać analogiczną do równań Hartree’ego, które nie
są trudne do rozwiązania. Przybliżenie LDA także może być stosowane do układów niejednorodnych.
Jedną z metod rozwiązania równań Kohna-Shama jest rozwinięcie funkcji
falowych w zbiorze pewnych funkcji bazowych, którymi mogą być fale płaskie.
Jest to jednak mało efektywne ze względu na szybkie oscylacje funkcji falowych
w pobliżu jądra.
W metodzie APW (Aumented Plane Waves) dzielimy przestrzeń na dwa
obszary: sfery wokół jąder o zadanym promieniu i przestrzeń pomiędzy nimi.
Wewnątrz sfer zakłada się potencjał sferyczny, natomiast w obszarze między
nimi stały potencjał.
Metoda LAPW polega na tym, że dodaje się więcej swobody wariacyjnej dla
funkcji bazowych wewnątrz sfer. Metoda ta eliminuje wiele wad metody APW.
Metoda FLAPW (Full LAPW ) jest uogólnieniem metody LAPW dla przypadku ogólnego potencjału [12][13].
2.3. Biblioteki numeryczne
ATLAS - Automatically Tuned Linear Algebra Software. Automatyczne generowanie i optymalizacja oprogramowania numerycznego [11].
BLAS - Basic Linear Algebra Subprograms. BLAS to wysokiej jakości procedury wykonujące podstawowe operacje algebraiczne. Poziom pierwszy obejmuje operacje typu wektor - wektor, poziom drugi to operacje macierz wektor, zaś poziom trzeci dotyczy operacji typu macierz - macierz. Procedury z BLAS są wykorzystywane przez wiele innych pakietów, np. LAPACK
i LINPACK.
LAPACK - Linear Algebra PACKage. LAPACK jest zbiorem procedur numerycznych z zakresu algebry liniowej, napisanych w fortranie. Zawiera procedury służące do rozwiązywania układów równań liniowych, aproksymacji
liniowej, rozwiązywania zagadnień własnych i wyznaczania rozkładu macierzy według wartości szczególnych. Całość pakietu lub wybrane procedury są
dostępne publicznie.
2.4. Kompilatory
W celu optymalizacji wydajnościowej, źródła WIEN2k przekompilowałem
przy pomocy licencjonowanego pakietu Lahey/Fujitsu Fortran 95 Package for
Linux, zainstalowanego wraz z biblioteką IMSL(R) Fortran 90 MP Library Version 4.0. Biblioteka IMSL dostarcza ponad 900 funkcji F77 dla aplikacji matematycznych i statystycznych w różnych dziedzinach nauki. Biblioteka F90 MP
zawiera nową generację, opartych na F90, algorytmów przeznaczonych dla systemów o dużej wydajności.
Jako katalog docelowy instalacji fortrana wybrałem
11
/usr/local/lf9562
a dla biblioteki IMSL
/usr/local/imsl
W trakcie instalacji, Lahey Fortran dodał następujące wpisy do pliku /etc/profile
# Call LF95 shell setup script.
./usr/local/lf9562/bash setup
IMSL LF95="/usr/local/imsl"
VNI LF95 MSG=$IMSL LF95"/message/lf95"
FORT90L="-Wl,-i"
export IMSL LF95 VNI LF95 MSG FORT90L
Poprawne zainstalowanie Lahey’a można potwierdzić próbą uruchomienia kompilatora/linkera - wykonanie polecenia lf95 powinno nam dać w rezultacie
usage: lf95 [@RESPFILE] [FILENAMES] [SWITCHES]
@RESPFILE is a file containing switches, file names, or other response files
FILENAMES are the names of source or object files
SWITCHES are option switches
You may mix command line switches in any order. They will be evaluated
from left to right, with the rightmost value used.
Option switches:
--[n]ap ensure consistent arithmetic precision
--block <value> set default block size for open statements
-[n]c suppress linking --[n]chk checking
(...)
Oznacza to, ze Lahey jest widoczny w środowisku Linuksa i kompilacja przebiegła bez problemów.
2.5. Kompilacja oraz instalacja pakietu
Autorzy WIEN2k udostępniają zarówno pakiety binarne, gotowe do uruchomienia, jak również kody źródłowe, które można kompilować w danym środowisku, zostawiając nam wybór kompilatora.
Po pobraniu aktualnych źródeł pakietu (wersja WIEN2k 04.tar), utworzyłem katalog /opt/WIEN2k, w którym je umieściłem i rozpakowałem, wykonując
poniższe polecenia:
tar -xvf WIEN2k 04.tar
gunzip *.gz
chmod +x ./expand lapw
./expand lapw
W celu przeprowadzenia kompilacji, wykonałem polecenie
./siteconfig lapw
Pojawiło się menu, jak poniżej:
*********************************************************
*
W I E N
*
*
site configuration
*
*********************************************************
Last configuration: Fri Sep 10 15:08:36 CEST 2004
Wien Version: WIEN2k 04.8 (Release 20/08/2004)
System: linux2
S specify a system
C specify compiler
12
O
P
D
R
U
L
Q
specify compiler options, BLAS and LAPACK
configure Parallel execution
Dimension Parameters
Compile/Recompile
Update a package
Perl path (if not in /usr/bin/perl)
Quit
Selection:
Opis menu:
—
—
—
—
—
—
—
—
—
[S] - wybór systemu operacyjnego, na którym dokonujemy kompilacji
[C] - wybór kompilatora
[O] - opcje kompilacji, ustawienia bibliotek BLAS i LAPACK
[P] - konfiguracja do kompilacji dla obliczeń równoległych
[D] - ustawienia parametrów pracy WIEN2k w zależności o wielkości pamięci
[R] - kompilacja albo ponowna kompilacja całości lub części pakietu
[U] - uaktualnienia pakietów (ze źródeł)
[L] - ustawienie ścieżki do perl’a
[Q] - wyjście z menu
Przy pierwszym uruchomieniu, niezbędne jest skonfigurowanie parametrów systemu, kompilatora i kompilacji. Do wyboru miałem:
**********************
* Specify a system *
**********************
Current system is: linux2
A AIX
D DEC
G GENERIC (should work on any platform)
H HP I Linux (Intel ifc 7.1 compiler + mkl 6.0 )
L Linux (PGI compiler)
S SGI
U SUN
N NEC
L1 Linux (Lahey LF97 compiler)
M Mac (mac g4 + absoft compiler)
Q Quit
Selection:
W tym przypadku wybrałem opcję L1 oznaczającą kompilację pod systemem
Linuks z użyciem kompilatora Lahey Fortran.
***********************
* Specify compilers *
***********************
Recommended setting for f90 compiler: lf95
Current selection: lf95
Your compiler:
Wpisałem lf95, czyli kompilator i linker naszego fortrana. Po zatwierdzeniu wyboru, zostałem zapytany o kompilator języka C, w którym jest napisanych kilka
podprogramów WIEN2k. Wybrałem standardowy kompilator gcc.
******************************
* Specify compiler options *
13
******************************
PLEASE NOTE: Better performance can be obtained with processor specific
options (e.g. for a P4, which will, however, not run on a PIII)
Very important for speed-up is using a vendor optimized BLAS,
or the ATLAS-BLAS (www.netlib.org) instead of the simple "-lblas lapw"
For more info see http://www.wien2k.at/reg user/faq
Recommended options for system
Compiler options:
Linker Flags:
Preprocessor flags:
R LIB (LAPACK+BLAS):
linux2 are:
--nfix -O
-L../SRC lib
’-DParallel’
-llapack lapw -lblas lapw -llapack lapw -lblas lapw
Current settings:
O Compiler options:
L Linker Flags:
P Preprocessor flags
R R LIB (LAPACK+BLAS):
--nfix -O
-L../SRC lib
’-DParallel’
-llapack lapw -lblas lapw -llapack lapw -lblas lapw
S Save and Quit
Q Quit abandon changes
To change an item select option.
Selection:
W powyższym menu dokonałem konfiguracji związanych z wyborem zoptymalizowanych bibliotek podstawowych operacji algebraicznych (BLAS ) oraz zbioru
procedur numerycznych z zakresu algebry liniowej, napisanych w Fortranie (LAPACK ). W przypadku kompilacji przy użyciu Lahey’a, biblioteki te są dostępne
wraz z kompilatorem a także w pakiecie IMSL.
W związku z tym, że cały system działa na jednej maszynie, ustawienia opcji
dla trybu pracy równoległej pominąłem.
***********************************
*
(Re-)Dimension parameters
*
***********************************
Change parameters in:
A
B
C
R
all programs
all programs but not in lapw1c and lapw2c
lapw1c (e.g. NMATMAX, NUME)
lapw1 (e.g. NMATMAX, NUME)
Q
to quit
Selection:
W menu “rozmiaru tablic” ustawiamy maksymalne wartości parametrów, które
będą wykorzystywane w trakcie obliczeń. Wielkości te zależą od ilości dostępnej
pamięci RAM. Przykładowo, dla 256-500 MiB NMATMAX=5000, dla 1 GiB
NMATMAX=10000 (komórka w której przypada 80-150 atomów/komórkę elementarną). W przypadku ustawienia zbyt dużej wartości, może dojść do próby
użycia pliku wymiany (SWAP), co właściwie kończy działanie programu.
14
Nasz serwer posiada 4 GiB pamięci RAM, w związku z czym, wartość NMATMAX została przeze mnie ustawiona na 20000. Wartość tą ustawiłem dla wszystkich programów. Parametr NUME ustawiłem na 2000.
Po ustawieniu powyższych opcji, mogłem przejść do kompilacji źródeł WIEN2k.
W menu kompilacji/rekompilacji mamy do wyboru:
************************************
*
Compile/Recompile programs
*
************************************
A
S
Compile all programs
Select program
Q
Quit
Selection:
Wybrałem opcję kompilacji wszystkich programów [A] i po akceptacji mogłem
obserwować działanie kompilatora. Jeśli nasze ustawienia są poprawne, można
dostrzec szereg linii z wpisem “Encountered 0 errors, 0 warnings in file ****.f.”
oznaczającym poprawną kompilację danego programu lub podprogramu. Kompilacja na szybkim systemie trwa około 5-10 minut, po jej zakończeniu wyświetlają się jeszcze raz wszystkie komunikaty o błędach i ostrzeżeniach kompilatora,
np.
(...)
SRC
SRC
ilpw.f.
SRC
SRC
sld.f.
(...)
txspec/compile.msg:Encountered 0 errors, 4 warnings in file hfsd.f.
txspec/compile.msg:Encountered 0 errors, 4 warnings in file intxspec/compile.msg:Encountered 0 errors, 0 warnings in file inouh.f.
txspec/compile.msg:Encountered 0 errors, 1 warning in file in-
Poprawna kompilacja powinna się zakończyć zerową ilością błędów.
2.6. Użytkowanie pakietu WIEN2k
Do poprawnej pracy programu w2web, po stronie serwera niezbędne jest
posiadanie następującego oprogramowania:
—
—
—
—
perl w wersji 5 lub późniejszej
dowolny edytor tekstowy (np. vi, nano, emacs)
ghostscript (z obsługą jpg)
gnuplot (z obsługą png)
Po stronie klienta, wymagane są:
— dowolna przeglądarka WWW
— Acrobat Reader
2.7. Skrypt startowy WIEN2k
Na samym końcu instalacji utworzyłem skrypt startowy w2web: /etc/init.d/wien2k
#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
export EDITOR="nano"
export SCRATCH=./
15
export
export
export
export
export
WIENROOT=/opt/WIEN2k
PDFREADER=acroread
HOME=/home/wien2k
LFLIB=/usr/local/lf9562/lib
PATH=$PATH:$WIENROOT:$LFLIB:.
depend() {
use net
after sshd
}
start() {
ebegin "Starting WIEN2k"
start-stop-daemon \
--start \
--chdir /home/wien2k \
--chuid wien2k:wien2k \
--quiet \
--exec "/opt/WIEN2k/w2web"
eend $?
}
stop() {
ebegin "Stopping WIEN2k"
killall w2web
eend $?
}
2.8. Opis dokumentacji
Do pakiety WIEN2k dołączona jest bogata dokumentacja zawierająca obszerny wstęp teoretyczny, przykładowe obliczenia, objaśnienia parametrów pojawiających się w plikach wejściowych i wyjściowych oraz wiele innych użytecznych
informacji.
3. Przykładowe obliczenia dla TiC
3.1. Wstęp
Związek TiC posiada strukturę analogiczną jak NaCl, czyli
układ sieci FCC (struktura typu B1).
Parametry sieci:
Parametr
Układ sieci
a
b
c
α
β
γ
Pozycja atomu Ti
Pozycja atomu C
TiC
FCC
4.328 Ă
4.328 Ă
4.328 Ă
90o
90o
90o
0.0,0.0,0.0
0.5,0.5,0.5
Tablica 3.1: Parametry sieci TiC
3.2. Uruchomienie WIEN2k
Po wykonaniu wcześniej opisanej konfiguracji, WIEN2k wystartuje automatycznie przy starcie systemu. Ręcznie można tego dokonać, wykonując polecenie
/etc/init.d/wien2k start
Przy pierwszym uruchomieniu WIEN2k zostaniemy poproszeni o podanie nazwy
konta użytkowania, hasło, port tcp i nazwę serwera, na którym będziemy pracować. Poza hasłem, wszystkie parametry, które podpowiada instalator, można
pozostawić niezmienione.
* Caching service dependencies ...
* Starting WIEN2k ...
#######################################################################
# w2web starter ......................................................#
# Copyright (C) 2001 luitz.at.........................................#
#######################################################################
w2web installer on host elektron.ap.krakow.pl
#######################################################################
# w2web installer.....................................................#
# Copyright (C) 2001 luitz.at.........................................#
#######################################################################
Checking for Installation in /home/wien2k/.w2web/elektron.ap.krakow.pl
Creating /home/wien2k/.w2web
17
Creating /home/wien2k/.w2web/elektron.ap.krakow.pl
conf directory does not exist - creating it.
logs directory does not exist - creating it.
sessions directory does not exist - creating it.
tmp directory does not exist - creating it.
Installing w2web files ...
Please answer these questions for proper installaltion.
Just press enter for the default value of (in brackets).
Please enter the username: [admin]
Please enter the password: [password] wybranehaslo
admin:wybranehaslo
Remember these. You will need them when you log in.
Select the port to run on: [7890]
Running on port 7890
Please enter this system’s hostname: [elektron.ap.krakow.pl]
Using elektron.ap.krakow.pl
Is this your master node?: [y]
Installing... Attempting to start now...
Trying to start /opt/WIEN2k/SRC w2web/bin/w2web
w2web server started, now point your web browser to
http://elektron.ap.krakow.pl:7890
Sprawdzamy, czy znajdziemy odpowiedni proces:
ps ax | grep w2web
10165 ? Ss 0:00 /usr/bin/perl /opt/WIEN2k/SRC w2web/bin/w2web
Po wpisaniu w przeglądarce WWW adresu oraz portu
http://elektron.ap.krakow.pl:7890
pojawi się okienko z prośbą o podanie loginu i hasła, które wcześniej ustawiliśmy.
3.3. Logowanie i utworzenie sesji obliczeniowej
Rysunek 3.1: Autoryzacja sesji obliczeniowej
18
Po poprawnym zalogowaniu otrzymamy stronę, która pozwala na utworzenie, edycję lub kontynuację sesji obliczeniowej.
Rysunek 3.2: Tworzenie sesji obliczeniowej
Ponieważ jest to nasze pierwsze logowanie, tworzymy sesję o nazwie TiC.
Rysunek 3.3: Tworzenie sesji obliczeniowej TiC
Po wciśnięciu przycisku Create, otrzymujemy stronę, gdzie tworzymy katalog
także o nazwie TiC.
Rysunek 3.4: Tworzenie sesji obliczeniowej TiC
Po utworzeniu katalogu wskazujemy, że będą w nim przechowywane wszystkie pliki z danymi, generowane w trakcie obliczeń.
19
Rysunek 3.5: Tworzenie sesji obliczeniowej TiC
Przygotowaliśmy wszystko do wprowadzania właściwych danych i rozpoczęcia obliczeń. Na końcu podsumowanie tego, co do tej pory stworzyliśmy i wykonujemy restart sesji. Każdy z parametrów naszej sesji, można w dowolnym
momencie zmienić.
Rysunek 3.6: Potwierdzenie utworzenia sesji obliczeniowej
Na początku sesji możemy ustawić takie parametry, jak uwzględnienie w
obliczeniach polaryzacji spinów, właściwości antyferromagnetycznych, obliczeń
zespolonych (bez inwersji) oraz obliczeń równoległych.
Rysunek 3.7: Konfiguracja dodatkowych parametrów
3.4. Generowanie struktury kryształu
Generowanie struktury elektronowej wymaga podania ilości atomów komórki
20
Rysunek 3.8: Generowanie struktury kryształu - start
a następnie pełne jej zdefiniowanie. Uwzględniamy następujące parametry:
—
—
—
—
—
—
—
—
klasycznie lub relatywistyczne traktowanie elektronów rdzeniowych
typ sieci (także 230 grup przestrzennych)
stałe sieci
jednostkę sieci (angstrem, bohr)
położenie atomów
NPT
RMT - promień sfery atomu
R0 - promień potencjału miseczkowego (muffin-tin)
Rysunek 3.9: Generowanie struktury kryształu
Po zakończeniu edycji struktury zapisujemy ją, ewentualne możemy dokonać
dalszych modyfikacji albo porzucić dokonane właśnie zmiany.
Rysunek 3.10: Generowania struktury kryształu - zakończenie
21
3.5. Inicjalizacja obliczeń
Po przygotowaniu struktury kryształu dokonujemy inicjalizacji podstawowych obliczeń w ponad 20 fazach.
Rysunek 3.11: Obliczenia: faza 1.
Faza 1. polega na obliczeniu odległości do najbliższych sąsiadów
Rysunek 3.12: Ustawienie parametru odległości do najbliższych sąsiadów
Rysunek 3.13: Uruchomienie programu x nn
Rysunek 3.14: Obliczenia: faza 2.
22
Rysunek 3.15: Plik TiC.outputnn
Podgląd otrzymanych wyników.
Rysunek 3.16: Obliczenia: faza 3.
Podprogram “x sgroup” znajduje grupę przestrzenną dla podanej struktury.
Rysunek 3.17: Uruchomienie programu x sgroup
Rysunek 3.18: Obliczenia: faza 5.
23
Rysunek 3.19: Plik TiC.outputsgroup
Rysunek 3.20: Obliczenia: faza 6.
Rysunek 3.21: Obliczenia: faza 7.
“x symmetry” - generuje liczbę operacji symetrii dla znalezionej wcześniej
grupy przestrzennej.
Rysunek 3.22: Uruchomienie programu x symmetry
24
Rysunek 3.23: Obliczenia: faza 8.
Rysunek 3.24: Plik TiC.outputs
Rysunek 3.25: Obliczenia: faza 9.
“x lstart” oblicza gęstość atomową i określa w jaki sposób są traktowane
orbitale atomowe podczas obliczeń struktury pasmowej.
Rysunek 3.26: Ustawienie potencjału wymienno-korelacyjnego
Wybór typu potencjału wymienno-korelacyjnego oraz określenie energii separacji stanów rdzeniowych i walencyjnych.
25
Rysunek 3.27: Uruchomienie programu x lstart
Rysunek 3.28: Obliczenia: faza 11.
Rysunek 3.29: Plik TiC.outputst
Rysunek 3.30: Obliczenia: faza 12.
RKmax - parametr określający liczbę funkcji bazowych (rozmiar macierzy).
26
Rysunek 3.31: Plik TiC.in1 st
Rysunek 3.32: Obliczenia: faza 14
W tym miejscu możemy ograniczyć rozwinięcie funkcji falowych ze względu
na liczby kwantowe l,m gdzie l określa poboczną liczbę kwantową a m oznacza
magnetyczna liczba kwantową.
Rysunek 3.33: Plik TiC.in2 st
27
Rysunek 3.34: Obliczenia: faza 15.
W tej pozycji możemy zmienić wartość tzw. czynnika zmieszania (istotne
zwłaszcza dla atomów posiadających zlokalizowane stany d- lub f- oraz dla układów magnetycznych.
Rysunek 3.35: Plik TiC.inm st
Rysunek 3.36: Obliczenia: faza 16
Rysunek 3.38: Ustawienie liczby punktów k
28
Rysunek 3.37: Obliczenia: faza 17.
Rysunek 3.40: Obliczenia: faza 18.
Rysunek 3.39: Uruchomienie programu x kgen
Rysunek 3.41: Plik TiC.klist
Generowanie początkowej gęstości elektronów, potrzebnej do obliczeń samouzgodnionych.
29
Rysunek 3.42: Obliczenia: faza 19.
Rysunek 3.43: Uruchomienie programu x dstart
Rysunek 3.44: Obliczenia: faza 20.
Rysunek 3.45: Plik TiC.outputd
30
Rysunek 3.46: Obliczenia: faza 21
Ostatni parametr mówiący o tym, czy obliczenia mają być wykonywane z
uwzględnieniem polaryzacji spinów.
Rysunek 3.47: Obliczenia: faza 22
Zakończenie pierwszego etapu obliczeń, w dalszej części przejdziemy do obliczeń samouzgodnionych.
Rysunek 3.48: Lista plików wejściowych
W każdym momencie obliczeń istnieje możliwość podglądu plików wejściowych...
31
Rysunek 3.49: Pliki wyjściowe
... a także plików wyjściowych. Pliki te można edytować, kopiować lub usuwać.
3.6. Obliczenia samouzgodnione (SCF )
Obliczenia te obejmują następujące kroki:
—
—
—
—
—
LAPW0 - generowanie potencjału z gęstości
LAPW1 - obliczanie pasm walencyjnych
LAPW2
LCORE
MIXER
Możemy także wybrać jedno z trzech kryteriów zbieżności: energii, siły, ładunku.
Rysunek 3.50: Konfiguracja do obliczeń SCF
WIEN2k w trakcie obliczeń. W prawym górnym rogu można obserwować na
bieżąco zmianę stanu programu a także etap obliczeń.
32
Na terminalu można zaobserwować wywoływany podprogram, wielkość zajmowanej przez niego pamięci oraz procent użycia procesora.
3.7. Wykresy gęstości elektronowej
3.7.1. Wykres 3D
Rysunek 3.51: Wykres 3D gęstości elektronowej dla TiC
3.7.2. Wykres konturowy
Rysunek 3.52: Wykres konturowy gęstości elektronowej dla TiC
33
3.8. Gęstość stanów elektronowych (DOS)
/home/wien2k/TiC/TiC.dos1ev
/home/wien2k/TiC/TiC.dos1ev
4
1.2
d-DOS
3.5
1
3
0.8
Atom 1 d-DOS
total DOS
2.5
2
1.5
0.6
0.4
1
0.2
0.5
0
-12
-10
-8
-6
-4
-2
0
0
2
-12
-10
-8
-6
eV
-4
-2
0
2
eV
/home/wien2k/TiC/TiC.dos1ev
/home/wien2k/TiC/TiC.dos1ev
0.9
0.7
D-eg
0.8
D-t2g
0.6
0.7
0.5
Atom 1 D-t2g
Atom 1 D-eg
0.6
0.5
0.4
0.4
0.3
0.3
0.2
0.2
0.1
0.1
0
-12
-10
-8
-6
-4
-2
0
0
2
-12
-10
-8
-6
eV
-4
-2
0
2
eV
/home/wien2k/TiC/TiC.dos1ev
/home/wien2k/TiC/TiC.dos1ev
2
1.6
s-DOS
1.8
p-DOS
1.4
1.6
1.2
1.2
Atom 2 p-DOS
Atom 2 s-DOS
1.4
1
0.8
1
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0
-12
-10
-8
-6
-4
-2
0
2
0
-12
-10
-8
-6
eV
-4
eV
Rysunek 3.53: Wykresy gęstości stanów elektronowych dla TiC
34
-2
0
2
3.9. Obliczenia własności optycznych
/home/wien2k/TiC/TiC.joint column 2
120
100
Im_eps_xx
80
60
40
20
0
0
2
4
6
8
10
12
14
Energy [eV]
Rysunek 3.54: Przykładowy wykres własności optycznych TiC
3.10. Widmo promieniowania rentgenowskiego
/home/wien2k/TiC/TiC.xspec
/home/wien2k/TiC/TiC.txspec
0.014
0.1
(broadened)
(unbroadened) total
0.09
0.012
0.08
0.07
(unbroadened) total
(broadened)
0.01
0.008
0.006
0.06
0.05
0.04
0.03
0.004
0.02
0.002
0.01
0
-2
0
2
4
6
8
10
12
14
0
16
-2
0
2
4
6
eV
8
10
12
14
16
eV
/home/wien2k/TiC/TiC.m2
0.0034
/home/wien2k/TiC/TiC.corewfx
1.8
(matrix elements L-1)
(core wavefunction)
1.6
0.0033
1.4
(core wavefunction)
(matrix elements L-1)
0.0032
0.0031
0.003
1.2
1
0.8
0.6
0.0029
0.4
0.0028
0.0027
0.2
-2
0
2
4
6
8
10
12
14
eV
16
0
0
0.2
0.4
0.6
0.8
1
1.2
Radius (bohr)
Rysunek 3.55: Widma promieniowania rentgenowskiego dla TiC
35
1.4
1.6
1.8
2
3.11. Obliczenia widm w oparciu o spektroskopię na
krawędzi absorpcji
/home/wien2k/TiC/TiC.telnes
0.01
/home/wien2k/TiC/TiC.telnes
2.5e-07
ELNES (broadened)
ELNES (d)
0.009
0.008
2e-07
0.006
ELNES (d)
ELNES (broadened)
0.007
0.005
0.004
1.5e-07
1e-07
0.003
0.002
5e-08
0.001
0
-4
-2
0
2
4
6
8
10
12
14
16
0
18
-4
-2
0
2
4
6
eV
/home/wien2k/TiC/TiC.telnes
0.005
2e-17
0.004
ELNES (p)
ELNES (d)
2.5e-17
1.5e-17
0.002
5e-18
0.001
0
2
4
6
14
16
18
8
10
12
14
16
0
18
16
18
16
18
ELNES (p)
0.003
1e-17
-2
12
0.006
ELNES (d)
-4
10
/home/wien2k/TiC/TiC.telnes
3e-17
0
8
eV
-4
-2
0
2
4
6
eV
8
10
12
14
eV
/home/wien2k/TiC/TiC.telnes
/home/wien2k/TiC/TiC.telnes
0.025
0.018
ELNES (plain)
ELNES (s)
0.016
0.02
0.014
ELNES (s)
ELNES (plain)
0.012
0.015
0.01
0.008
0.01
0.006
0.004
0.005
0.002
0
-4
-2
0
2
4
6
8
10
12
14
16
eV
18
0
-4
-2
0
2
4
6
8
eV
Rysunek 3.56: Widma metodą spektroskopii na krawędzi absorpcji dla TiC
36
10
12
14
3.12. Obliczenia struktury pasmowej
Energy (eV)
TiC atom 1D-t2g size 0.20
8.0
7.0
6.0
5.0
4.0
3.0
2.0
1.0
0.0
-1.0
-2.0
-3.0
-4.0
-5.0
-6.0
-7.0
-8.0
-9.0
-10.0
-11.0
-12.0
-13.0
EF
W
L
Λ
Γ
∆
X Z W K
Rysunek 3.57: Wykres struktury pasmowej dla TiC
Spis tablic
1.1. Partycje dyskowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Rodziny procesorów i flaga CHOST . . . . . . . . . . . . . . . . . . . . .
1.4. Architektura serwera i parametr -march . . . . . . . . . . . . . . . . . . .
3
6
6
3.1. Parametry sieci TiC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
38
Spis rysunków
1.1. Serwer elektron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Proces bootstrap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.
3.2.
3.3.
3.4.
3.5.
3.6.
3.7.
3.8.
3.9.
3.10.
3.11.
3.12.
3.13.
3.14.
3.15.
3.16.
3.17.
3.18.
3.19.
3.20.
3.21.
3.22.
3.23.
3.24.
3.25.
3.26.
3.27.
3.28.
3.29.
3.30.
3.31.
3.32.
3.33.
3.34.
3.35.
3.36.
3.38.
3.37.
3.40.
3.39.
3.41.
3.42.
3.43.
3.44.
3.45.
3.46.
3.47.
3.48.
3.49.
3.50.
3.51.
3.52.
Autoryzacja sesji obliczeniowej . . . . . . . . . . . . . . .
Tworzenie sesji obliczeniowej . . . . . . . . . . . . . . . .
Tworzenie sesji obliczeniowej TiC . . . . . . . . . . . . .
Tworzenie sesji obliczeniowej TiC . . . . . . . . . . . . .
Tworzenie sesji obliczeniowej TiC . . . . . . . . . . . . .
Potwierdzenie utworzenia sesji obliczeniowej . . . . . . .
Konfiguracja dodatkowych parametrów . . . . . . . . . .
Generowanie struktury kryształu - start . . . . . . . . . .
Generowanie struktury kryształu . . . . . . . . . . . . .
Generowania struktury kryształu - zakończenie . . . . . .
Obliczenia: faza 1. . . . . . . . . . . . . . . . . . . . . . .
Ustawienie parametru odległości do najbliższych sąsiadów
Uruchomienie programu x nn . . . . . . . . . . . . . . .
Obliczenia: faza 2. . . . . . . . . . . . . . . . . . . . . . .
Plik TiC.outputnn . . . . . . . . . . . . . . . . . . . . . .
Obliczenia: faza 3. . . . . . . . . . . . . . . . . . . . . . .
Uruchomienie programu x sgroup . . . . . . . . . . . . .
Obliczenia: faza 5. . . . . . . . . . . . . . . . . . . . . . .
Plik TiC.outputsgroup . . . . . . . . . . . . . . . . . . . .
Obliczenia: faza 6. . . . . . . . . . . . . . . . . . . . . . .
Obliczenia: faza 7. . . . . . . . . . . . . . . . . . . . . . .
Uruchomienie programu x symmetry . . . . . . . . . . . .
Obliczenia: faza 8. . . . . . . . . . . . . . . . . . . . . . .
Plik TiC.outputs . . . . . . . . . . . . . . . . . . . . . . .
Obliczenia: faza 9. . . . . . . . . . . . . . . . . . . . . . .
Ustawienie potencjału wymienno-korelacyjnego . . . . . .
Uruchomienie programu x lstart . . . . . . . . . . . . . .
Obliczenia: faza 11. . . . . . . . . . . . . . . . . . . . . .
Plik TiC.outputst . . . . . . . . . . . . . . . . . . . . . .
Obliczenia: faza 12. . . . . . . . . . . . . . . . . . . . . .
Plik TiC.in1 st . . . . . . . . . . . . . . . . . . . . . . . .
Obliczenia: faza 14 . . . . . . . . . . . . . . . . . . . . . .
Plik TiC.in2 st . . . . . . . . . . . . . . . . . . . . . . . .
Obliczenia: faza 15. . . . . . . . . . . . . . . . . . . . . .
Plik TiC.inm st . . . . . . . . . . . . . . . . . . . . . . .
Obliczenia: faza 16 . . . . . . . . . . . . . . . . . . . . . .
Ustawienie liczby punktów k . . . . . . . . . . . . . . . .
Obliczenia: faza 17. . . . . . . . . . . . . . . . . . . . . .
Obliczenia: faza 18. . . . . . . . . . . . . . . . . . . . . .
Uruchomienie programu x kgen . . . . . . . . . . . . . . .
Plik TiC.klist . . . . . . . . . . . . . . . . . . . . . . . . .
Obliczenia: faza 19. . . . . . . . . . . . . . . . . . . . . .
Uruchomienie programu x dstart . . . . . . . . . . . . . .
Obliczenia: faza 20. . . . . . . . . . . . . . . . . . . . . .
Plik TiC.outputd . . . . . . . . . . . . . . . . . . . . . . .
Obliczenia: faza 21 . . . . . . . . . . . . . . . . . . . . . .
Obliczenia: faza 22 . . . . . . . . . . . . . . . . . . . . . .
Lista plików wejściowych . . . . . . . . . . . . . . . . . .
Pliki wyjściowe . . . . . . . . . . . . . . . . . . . . . . . .
Konfiguracja do obliczeń SCF . . . . . . . . . . . . . . .
Wykres 3D gęstości elektronowej dla TiC . . . . . . . . .
Wykres konturowy gęstości elektronowej dla TiC . . . . .
39
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
7
18
19
19
19
20
20
20
21
21
21
22
22
22
22
23
23
23
23
24
24
24
24
25
25
25
25
26
26
26
26
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
31
31
31
32
32
33
33
3.53.
3.54.
3.55.
3.56.
3.57.
Wykresy gęstości stanów elektronowych dla TiC . . . . . . .
Przykładowy wykres własności optycznych TiC . . . . . . .
Widma promieniowania rentgenowskiego dla TiC . . . . . .
Widma metodą spektroskopii na krawędzi absorpcji dla TiC
Wykres struktury pasmowej dla TiC . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
34
35
35
36
37
Bibliografia
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
http://www.gentoo.org; “G” Logo - Copyright Gentoo Foundation, Inc.
http://packages.gentoo.org
http://www.gentoo.org/dyn/use-index.xml
http://elektron.ap.krakow.pl
http://www.gentoo.org/doc/pl/handbook/handbook-x86.xml?full=1
http://pl.wikipedia.org/wiki/ReiserFS
http://en.wikipedia.org/wiki/Journaling_file_system
http://www.kernel.org
Blaha P., Schwarz K., Sorantin P.I. and Trickey S.B. 1990 Comp. Phys. Commun.
59, 399
http://www.wien2k.at
http://www.icm.edu.pl/numeryka/PAKIETY/algebra.php
Stopa T., Struktura elektronowa i powierzchnia Fermiego w nadprzewodniku
Sr2 RuO4 . Praca magisterska wykonana pod kierunkiem prof. S. Kaprzyka,
AGH Kraków, 2002
Wiendlocha B. Obliczenia własności elektronowo-fononowych związków o
strukturze M gB2 i M gCN i3 . Praca magisterska wykonana pod kierunkiem dr
hab. inż. J. Toboła, AGH Kraków, 2004

Podobne dokumenty