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