Přeskočit na obsah

FAQs

WIEN2k - FAQs

Problémy a řešení pro program Wien2k

(FAQs je také dostupné v pdf verzi.) logo Wien2k

Za toto FAQs patří velký dík panu Ing. Tomášovi Káňovi, který je jeho tvůrcem.

Problémy

Řešení

Q: Chci počítat v programu Wien2k na MetaCentru.
Mám na svém počítači systém MS Windows a nemám nainstalovaný X-server pro X-windows (např. X-Win32).

A: Jde to, ale nebudete schopni využít všech možností, které Vám MetaCentrum nabízí. Začněte tím, že si zařídíte účet na stroji skirit.ics.muni.cz. Ve svém domovském adresáři (například /home/manik/) si zřiďte adresář TiC a spusťte Wien2k.
Vaše příkazová řádka bude vypadat takto (místo manik si doplňte své uživatelské jméno):
$ pwd
/home/manik
$ mkdir TiC
$ cd TiC
$ module add wien2k
$ w2web

Postup při prvním spuštění w2web:
Počítač se Vás zeptá na přihlašovací jméno a heslo pro w2web (wien to web), které si zvolte netriviální. Ostatní údaje nechte takové, jaké jsou přednastavené. Jestliže počítač hlásí
w2web failed to bind port 7890 - port already in use!
You may want to try w2web -p portnumber
pak Vám nezbude než smazat profil .w2web zkusit to znovu takto:
$ rm -r ~/.w2web
$ w2web -p 7891

Můžete zadat i vyšší číslo portu, jestliže je port 7890 obsazen: w2web -p číslo_portu. Je-li port 7890 obsazený, tak je to nejspíš způsobeno jinými uživateli, kteří po sobě zapomněli proces w2web zabít. Neztěžujte prosím vy sami dalším uživatelům programu WIEN2k práci a vždy, když se po ukončení práce s w2web odhlásíte, zadejte ještě dva příkazy:
$ ps -u manik
PID TTY TIME CMD
19082 pts/0 00:00:00 bash
19141 ? 00:00:00 w2web
19142 pts/0 00:00:00 ps

$ kill 19141
Tím po sobě proces w2web zabijete.

Na svém vlastním počítači si pak spustíte internetový prohlížeč (Internet Explorer, Mozilla, Firefox, Opera...) a jako adresu zadáte http://skirit.ics.muni.cz:7890
popřípadě vyšší číslo portu (třeba 7894)
obrazek z w2web
Po zadání svého uživatelského jména a hesla pro w2web už budete postupovat podle manuálu k programu Wien2k, který si lze stáhnout na adrese www.wien2k.at/reg_user/textbooks/ a v případě problémů se podívat do FAQ nebo
zadat dotaz do mailing-listu (vše na stránkách www.wien2k.at).

Q: Chci počítat v programu Wien2k na MetaCentru.
Mám na svém počítači systém Linux (mohu zobrazit grafický výstup z MetaCentra).

A: Začněte tím, že si zařídíte účet na stroji skirit.ics.muni.cz. Na tento stroj (nebo na jiný vámi preferovaný) se pak můžete přihlásit pomocí
$ ssh -X mojeUzivatelskeJmeno@skirit.ics.muni.cz
Přepínač -X u ssh (secure shellu) automaticky zajistí, že budete moci zobrazovat grafiku bez jakýchkoliv dalších nastavení.

Ve svém domovském adresáři (například /home/manik/) si zřiďte adresář TiC a spusťte Wien2k.
Vaše příkazová řádka bude vypadat takto (místo manik si doplňte své uživatelské jméno):
$ pwd
/home/manik
$ mkdir TiC
$ cd TiC
$ module add wien2k
$ w2web

Postup při prvním spuštění w2web:
Počítač se Vás zeptá na přihlašovací jméno a heslo pro w2web (wien to web), které si zvolte netriviální. Ostatní údaje nechte takové, jaké jsou přednastavené. Jestliže počítač hlásí
w2web failed to bind port 7890 - port already in use!
You may want to try w2web -p portnumber
pak Vám nezbude než smazat profil .w2web zkusit to znovu takto:
$ rm -r ~/.w2web
$ w2web -p 7891

Můžete zadat i vyšší číslo portu, jestliže je port 7890 obsazen: w2web -p číslo_portu. Je-li port 7890 obsazený, tak je to nejspíš způsobeno jinými uživateli, kteří po sobě zapomněli proces w2web zabít. Neztěžujte prosím vy sami dalším uživatelům programu WIEN2k práci a vždy, když se po ukončení práce s w2web odhlásíte, zadejte ještě dva příkazy:
$ ps -u manik
PID TTY TIME CMD
19082 pts/0 00:00:00 bash
19141 ? 00:00:00 w2web
19142 pts/0 00:00:00 ps

$ kill 19141
Tím po sobě proces w2web zabijete.

Dále spustíte na stroji skirit (nebo jiném vámi preferovaném stroji) prohlížeč Mozilla. Napište
$ module add mozilla
$ mozilla &

Spustí se prohlížeč Mozilla. Do pole adresy prohlížeče zadáte http://skirit.ics.muni.cz:7890
popřípadě vyšší číslo portu (třeba 7894).
obrazek z w2web
Po zadání svého uživatelského jména a hesla pro w2web už budete postupovat podle manuálu k programu Wien2k, který si lze stáhnout na adrese www.wien2k.at/reg_user/textbooks/ a v případě problémů se podívat do FAQ nebo
zadat dotaz do mailing-listu (vše na stránkách www.wien2k.at).

Máte ještě možnost využít skvělé možnosti programu XCrysDen pro vizualizaci vašich struktur a výsledků výpočtů. Zadejte
$ cd TiC
$ module add xcrysden
$ xcrysden &
a vyberte ze záložky File / Open WIEN2k / Open WIEN2k Struct File / TiC.struct. Pokud Vám běží w2web, můžete si strukturu v programu XCrysDen prohlédnout i kliknutím na view structure v záložce Utils.
obrazek z XcrysDenu
Podobný obrázek pro TiC.struct můžete získat, když po načtení struktury stisknete c (crystal cell) a s (atomic Symbols). Ve vyznačeném červeném kolečku jsou dva módy: Preset a Logic. Zvolte Logic a vypněte STICK. Nakonec můžete změnit barvu pokladu z černé na jinou kliknutím na rámeček úplně vlevo nahoře.

Q: Při inicializaci špatně funguje procedura sgroup

A: Problém je zřejmě v tom, že používáte starou verzi Wien2k-05. Přejděte na vyšší (podporovanou) verzi Wien2k-08 napsáním do příkazového řádku:
$ module rm wien2k
$ module rm wien2k-05
$ module add wien2k-08
Ve verzi 08 je již tento problém odstraněn.

Q: První cyklus skončil předčasně (většinou hned po lapw0) a
v souboru case.dayfile se objevila hláška Segmentation fault

A: Před spuštěním run_lapw nebo runsp_lapw zadejte do příkazového řádku (nebo dopište do skriptu)
$ ulimit -s unlimited
To pokud používáte bash shell. Pokud používáte shell csh nebo tcsh, použijte místo toho příkaz
limit stacksize unlimited
Pokud nevíte, jaký shell používáte, zjistíte to příkazem echo $SHELL

Q: Výpočet skončil chybovým hlášením L2main - QTL-B Error

A: V tomto případě nejde o chybu MetaCentra. Musíte upravit svůj inicializační soubor case.in1 (popřípadě case.in1c). Podívejte se na www.wien2k.at. V poslední záložce shora REG USERS najdete odkaz na Frequently Asked Questions (FAQ) . Pro tento případ můžete rovnou kliknout na otázku
LAPW-2 stops with QTL-B error or crashes with "invalid character"

Q: Používáte skutečně podporovanou verzi programu Wien2k-08? Pozor na kompatibilitu ...

Je třeba dbát na kompatibilitu výpočtů, která není zajištěna pro starší verzi Wien2k-05 na strojích s procesory AMD. Chcete-li si být jisti, kterou verzi Wien2k používáte, můžete to zjistit příkazem
$ which run_lapw
správná odpověď je
/software/wien2k-08/i386_linux26.p4/run_lapw
nebo
/software/wien2k-08/amd64_linux26/run_lapw

Pokud se místo toho vypíše
/software/wien2k-05/root/run_lapw
pak používáte verzi 05. Tato verze již není podporována. Přejděte prosím na verzi 08 napsáním
$ module rm wien2k
$ module add wien2k-08

Pokud používáte svoji vlastní binární verzi programu Wien2k, zadejte příkaz
$ module add wien2k
Můžete se pro jistotu i přesvědčit, zda se použije správná verze programu:
$ which run_lapw
/software/wien2k-08/i386_linux26.p4/run_lapw

Upozornění
Pokud používáte zároveň svoji vlastní binární verzi programu Wien2k i ústřední instalaci wien2k-08 na MetaCentru, nesmíte mít v souborech ve svém domovském adresáři ~/.bashrc   ~/.cshrc nebo ~/.tcshrc aliasy pro příkazy Wien2k:
alias run_lapw='/home/manik/wien2k/run_lapw
a podobně.

 

Q: Mám jiný problém

A: Téměř určitě už někdo před Vámi řešil stejný nebo aspoň podobný problém. Pokud odpověď nenajdete na FAQ , zkuste Váš problém vyhledat na Mailing listu . Pokud jde o problém MetaCentra, obracejte se e-mailem na
meta|zavinac|cesnet|tecka|cz.

Q: Chci jen rychle zkusit nějaký výpočet a nechce se mi čekat na frontu

A: Pro tento účel je připravena vás obsloužit interaktivní fronta.
Její použití je snadné. Například pro interativní výpočty na uzlech clusteru skirit stačí zadat:
$ qsub -q normal -l nodes=1:ppn=1:brno:xeon,mem=499mb -I
qsub: waiting for job 135447.skirit-f.ics.muni.cz to start
chvíli počkejte
qsub: job 135447.skirit-f.ics.muni.cz ready

a jste například na nodu skirit28.
$ hostname
skirit28.ics.muni.cz

$ pwd
/home/manik
$ cd TiC
$ module add wien2k
$ ulimit -s unlimited
$ run_lapw -cc 0.000001 -i 45 -in1new 3
počkejte než doběhne výpočet a pak skončete úlohu příkazem
$ exit
qsub: job 135452.skirit-f.ics.muni.cz completed

Nakonec nezapomeňte zadat

$ clean_lapw

Q: Jak spouštět výpočty pomocí fronty

A: Manuál MetaCentra o Spouštění aplikací i detailní dokumentace PBS Pro ukazují vzorové příklady spouštěcích skriptů, které se zadávají do fronty, ale počítá jen s tím, že potřebujete jen jeden nebo několik vstupních souborů pro Váš výpočet. Jenže vy potřebujete celý adresář. Nabízím Vám proto hotové řešení, jak napsat a spustit skript pro Váš výpočet. Je to soubor job.
#!/bin/bash
#PBS -N moje_uloha
hostname
source /packages/run/modules-2.0/init/bash
module add wien2k
ulimit -s unlimited

mv /home/manik/TiC /scratch/manik/
cd /scratch/manik/TiC
rm *.broyd*
rm *.error*
run_lapw -cc 0.000001 -i 98 -in1new 3
echo y | clean_lapw
mv /scratch/manik/TiC /home/manik/

#To je vsechno, konec skriptu job.

Skript si zasluhuje okomentovat. Spouští se příkazem
qsub -q long -l nodes=1:ppn=1:brno,cput=700:00:00 -V job
když úlohu spouštíte na brněnském clusteru skirit.ics.muni.cz, a to ve frontě long (další podrobnosti v detailní dokumentaci PBS Pro). Jestliže máte Váš adresář s inicializovaným výpočtem v domovském adresáři na stroji skurut.cesnet.cz, tak místo :brno zadejte :praha. Jestliže máte adresář s inicializovaným výpočtem na stroji nympha.zcu.cz (zkopírujte si jej i na minos.zcu.cz pro případ, že použijete úlohu normal nebo short), zadáte místo :brno   :plzen.

Místo moje_uloha v druhém řádku si zadejte vlastní název úlohy.
Asi už jste si všimli, že na clusteru skirit.ics.muni.cz a dalších není adresář /scratch/manik, který by odpovídal /home/manik. Tyto adresáře jsou však na jednotlivých nodech (skirit1, skirit2...). Když systém PBS Pro úlohu přijme, bude ji počítat právě na jednom z těchto nodů. Na kterém, to se můžete přesvědčit buď napsáním qstat -u manik -n anebo přímo na webu METACentra, když kliknete na záložky Stav zdrojů a zvolíte záložku Úlohy. Kliknutím na Vaše jméno budete vědět o všech Vašich úlohách i na kterém nodu se počítají.

Skript job napřed přesune adresář /home/manik/TiC (který je sdílený) do adresáře /scratch/manik/ na nodu, kde se úloha počítá. Pak se tam přesune (cd /scratch/manik/TiC) a počítá (run_lapw -cc 0.000001 -i 98 -in1new 3). Výpočet produkuje velmi velké soubory TiC.vector (popřípadě TiC.vectorup a TiC.vectordn při spin-polarizovaném výpočtu). Proto je po výpočtu zadáno echo y | clean_lapw. Procedura clean_lapw už tyto soubory smaže. Nakonec se adresář s výpočtem přesune zpátky do domovského adresáře.

Všimněte si ještě řádku před
source /packages/run/modules-2.0/init/bash
Tento příkaz vysvětluje nodu, na kterém Vaše úloha poběží, co vlastně znamená příkaz module add.

Tip:
Při výpočtech energy-volume křivky Vám procedura x optimize, (spustitelná i z w2web), nabídne skript optimize.job, který je psán v c shellu. Pak místo řádku
#!/bin/bash
napište
#!/bin/csh
a místo řádků
source /packages/run/modules-2.0/init/bash
ulimit -s unlimited
napište
source /packages/run/modules-2.0/init/csh
limit stacksize unlimited

 

Takto si můžete spouštět svoje úlohy. Po jejich doběhnutí třeba můžete procedurou x kgen zvýšit počet k-bodů a znovu úlohu spustit. Nesmíte už však zadávat znovu x dstart, tím byste vrátili výpočet zpět na začátek.

Pokud chcete sledovat váš výpočet při běhu, můžete se přihlásit na konkrétní node, na kterém výpočet běží (zde je to například node skirit28). Buď
$ module add ssh
$ ssh skirit28
nebo
$ telnet skirit28
a pak
$ cd /scratch/manik/TiC
$ ls
$ cat TiC.dayfile
$ exit

Q: Výsledky mých výpočtů zabírají příliš mnoho paměti

A: Pokud budete spouštět náročné výpočty s více atomy, můžete tím zabírat velkou část paměti v adresáři /home/vaseUzivatelskeJmeno. Nezapomeňte, že i po promazání procedurou clean_lapw mohou být vaše adresáře se soubory stále hodně velké. Uložte si je raději do úložiště MetaCentra /storage/home/vaseUzivatelskeJmeno/ jednoduchým příkazem
$ pwd
/home/manik/TiC
$ cd ..
$ mv TiC /storage/home/vaseUzivateskeJmeno/


Zjistit, kolik paměti Vaše výpočty v domovském adresáři zabírají lze příkazem
$ du -hs /home/vaseUzivatelskeJmeno
nebo
$ du -hs ~

Bude-li to více než 3.0G, je to příliš mnoho a systémoví administrátoři po Vás mohou chtít, abyste paměť uvolnili.

Poslední změna: Tue Dec 01 09:57:39 CET 2009