Biuletyn nr 12

Biuletyn KDM
1 | 2 | 3 | 4 | 5
6 | 7 | 8 | 9 | 10
11 | 12 | 13 | 14
15 | 16 | 17 | 18
19 | 20 | 21 | 22
23 | 24 | 25 | 26
27 | 28 | 29 | 30
31 | 32
Lista biuletynów

Biuletyn nr 12 (5 czerwca 2006).

Spis treści

Mój shell

Autor: Rafał Maszkowski

Od redakcji: Artykuł o powłokach bash i tcsh zamieszczony w poprzednim numerze skłonił kilku czytelników (m.in. Rafała) do przekazania nam interesujących uwag odnośnie tcsh. Poprosiliśmy Rafała o pokazanie zaawansowanego przykładu wykorzystania powłoki tcsh. Sądzimy, że nawet doświadczeni użytkownicy, analizując poniższe ustawienia, mają okazję odkryć pewne "sztuczki", które mogą wykorzystać w swoich plikach startowych.

Używam UNIXa od początku lat 90-tych. Zacząłem od shella csh, potem tcsh i trzymam się go do dzisiaj. Możliwości innych współczesnych powłok są podobne, ale chyba wyjątkową zaletą tcsh jest polecenie ESC P (naciśnięcie Escape, potem p), które pozwala przeglądać wszystkie polecenia z historii zaczynające się od podanych liter, Np. sl ESC P może pokazać ostatnio wydane polecenia slogin ... . Kolejne ESC P i ESC N pozwalają przewijać listę poleceń zaczynających się na "sl" do tyłu (P jak Previous) i do przodu (N jak Next). Odkąd używam tcsh tworzę moje własne skrypty startowe (do podejrzenia w ~rzm/skel). Poniżej niektóre linie z tych skryptów:

Plik .login

# domyślny edytor i pager
setenv	EDITOR	vim
setenv	PAGER	less

# konfiguracja less-a:
# -M	linia statusu
# -i	ignore case - traktowanie tak samo małych i wielkich liter przy
#	wyszukiwaniu (chyba że wzorzec zawiera wielkie litery)
# -s	wiele spacji wyświetlaj jako jedną
# -c	zamiast scrollowania less wypisuje cały ekran od początku; niekorzystne
#	przy pracy przez modem, korzystne przy używaniu trybu graficznego (i
#	np. xterma)
# -d	wyłączenie komunikatu o dump terminal
# -y0 -h0	bez scrollowania jeżeli wyświetlaną treść przesuwa się nawyżej
#	o N linii - tutaj 0, więc zawsze ponowne wypisanie zamiast przesuwania
setenv	LESS	"-Misc -d -y0 -h0"
# Kiedyś używałem iso8859, teraz UTF, co nie przeszkadza less-owi pracować
# prawidłowo na ekranie, który nie zna UTF.
setenv	LESSCHARSET	utf-8

# Domyślny transport dla CVS-a i rsynca.
setenv	CVS_RSH		ssh
setenv	RSYNC_RSH	ssh

# W miejscu, gdzie resolver.conf nie ma naszych ulubionych domen, możemy sobie
# je tu wpisać na własną rękę.
setenv	LOCALDOMAIN	"icm.edu.pl 6bone.pl"

# Na wszelki wypadek.
setenv	SCREENDIR	~/.screen

# Przykładowe uzupełnienie ścieżki ładowania bibliotek. Programy powinny
# wiedzieć dokąd mają sięgać, ale czasem nie wiedzą.
if ( ${?LD_LIBRARY_PATH} == 0 ) then
	setenv	LD_LIBRARY_PATH	/local/lib:/opt/gnu/lib:/usr/openwin/lib:/local/BerkeleyDB/lib
else
	setenv	LD_LIBRARY_PATH	${LD_LIBRARY_PATH}:/local/lib:/opt/gnu/lib:/usr/openwin/lib:/local/BerkeleyDB/lib
endif

Plik .cshrc

# Często w domyślnych ustawieniach brakuje np. /sbin albo /local/sbin .
# Ścieżki /local/... to ICM-owy zwyczaj, typowo są to /usr/local/... .
set path = (/local/bin /local/sbin ~/bin /opt/gnu/bin /usr/ucb /bin /usr/bin /usr/sbin /sbin /usr/ccs/bin /local/gnu/bin /usr/bsd )

# Jeżeli powłoka interakcyjna...
if ( ! $?0 ) then
	# Ponieważ nie używam konfiguracji ICM-owej, na Cray-u ją ładuję, żeby mieć zdefiniowane moduły.
	uname -m | grep -i cray > /dev/null
	if ( ! $? ) then
		source /etc/local-config/cshrc >& /dev/null
		# kilka drobiazgów
		unalias cd
		unalias pwd
		setenv TZ MET-1MET-2
	endif
	# Reszta poleceń jest wykonywana niezależnie od systemu.
	# Ładny prompt. Na końcu ma kod błędu zwrócony przez ostatnio wykonywany program.
	set	prompt="$user@%m:%~,%?%# "
	# Traktowanie podanych ścieżek jako alternatywnych bieżących ścieżek.
	set     cdpath=(~)
	# Informowanie o zakończeniu zadań wykonujących się w tle nie tylko przy
	# wypisaniu kolejnego znaku zachęty.
	set     notify
	# Długa historia poleceń.
	set     history=999
	# echo xxx > plik  się nie uda jeżeli plik istnieje. Jeżeli plik miał
	# być zamazany trzeba podać  echo xxx >! plik
	set     noclobber
	# Poprawianie literówek w nazach wydawanych poleceń. Możliwości
	# korygowania są większe, ale dla bezpieczeństwa używam tylko tyle.
	set	correct=cmd
	# Przypadkowy Ctrl-D nie zakończy działania powłoki.
	set	ignoreeof
	# Kasowanie duplikatów z historii. Jeżeli ktoś jest przywiązany do
	# swojej history, łagodniejszą wersją jest histdup=prev
	set	histdup=erase
	# Zapisywanie historii poleceń przy wyjściu. Przy takiej wartości na
	# i686 450 MHz wejście/wyjście do/z shella trochę trwa.
	set	savehist=(500 merge)
	# Moje aliasy.
	source ~/.alias
	# Praktycznie zawsze siedzę przy czymś podobnym do vt100. Mogłoby być pewnie też vt220.
	setenv TERM vt100
	# To straszne wylogowywanie po 60 minutach.
	unset	autologout
	# TAB rozwija nazwę polecenia, pliku albo zmiennej środowiskowej, a z
	# autolist przy wystąpieniu wieloznaczności pokazuje wszystkie
	# mozliwości.
	set	autolist
	# To pozwala używać polskie litery. W nazwach plików mimo wszystko
	# lepiej nie, bo może się to okazać nieprzenośne między różnymi
	# systemami.
	set	nokanji

	# poprawianie tego, co zepsuło gentoo i SuSE
	# Ograniczenie liczby pokazywanych możliwości przy automatycznym
	# rozwijaniu nazw. Niepotrzebne, bo pod screenem można zawsze zajrzeć
	# do bufora.
	unset	listmaxrows
	# Polecenie  complete  może byc bardzo przydatne, ale w ww.
	# dystrybucjach jest skonfigurowane w sposób poważnie utrudniający
	# używanie powłoki.
	uncomplete *
	unset	complete
	# tego, co psuje Fedora
	# Nie wiem czemu Fedora ustawia nietypowy i mylący znak na końcu prompta.
	unset	promptchars
endif

Plik .alias

# Barszo często używam - lista zadań w tle (czy po prostu zawieszonych).
alias   j       jobs -l
# Koniec historii.
alias   h       'history | tail'
# Szukanie w historii.
alias	hg	'history | grep \!*'
# Opcja -i w tych poleceniach oznacza pytanie przy zamazywaniu albo kasowaniu
# plikow. Można to obejść przez backslach, np.  \rm -rf *
alias   rm	'rm -i \!*'
alias	mv	'mv -i \!*'
alias   cp	'cp -i'
# Różne wersje ls-a:
# Listowanie również plików z kropką na początku
alias   la	'ls -la \!*'
# Pełne informacje o plikach
alias   ll	'ls -l \!*'
# Oznakowanie typu pliku/katalogu na końcach nazw
alias   lf	'ls -F \!*'
# Bez grupy
alias   lg	'ls -lg \!*'
# Posortowane po kolei wg czasu
alias   lt	'ls -ltr \!*'
# Vim to lepszy vi.
alias	vi	'vim \!*'
# cal pokazuje nie po kolei dni tygodnia.
alias	cal	cal -m

# Już nieporzebne. Jeżeli ma się niezbyt starego grep-a, można napisać:
# grep -r ... /usr/include
alias	figrep	'find /usr/include -follow -print -exec grep \!* {} \; | less'

# poprawianie tego co psuje gentoo
# Alias na polecenie cd, który psuje prompt-a.
unalias	cwdcmd


Wydarzenia: CUG 2006 - scaling to new heights

Autor: Maciek Cytowski

Wstęp

W tym roku konferencja użytkowników komputerów firmy Cray odbyła się w Lugano. Od 8 do 11 maja można było uczestniczyć w wielu ciekawych prezentacjach użytkowników, administratorów oraz przedstawicieli i pracowników firmy Cray. Wszystko odbywało się w pięknej alpejskiej scenerii włoskiej części Szwajcarii. Program konferencji zaplanowany był w trzech równoległych i niezależnych od siebie blokach. Postaram się zreferować co interesującego usłyszałem i zobaczyłem.

Plan rozwoju firmy Cray

Przedstawiciele firmy Cray zaprezentowali nową wizję rozwoju. Wizja ta nazwana została mianem "Adaptive Supercomputing" i oficjalnie została ogłoszona 20 Marca tego roku w Seattle. Dostępne obecnie na rynku komputery dużej mocy zazwyczaj wyposażone są w jeden typ procesora. Można to zauważyć również w ICM, gdzie z jednej strony dostępne są niezastąpione, ale równocześnie bardzo drogie procesory wektorowe Cray'a X1E, a z drugiej strony 64 bitowe jedno- i dwu-rdzeniowe procesory AMD.

Centra komputerowe, które decydują się na zakup nowego superkomputera muszą wiedzieć, jakiego rodzaju aplikacje będą na nim uruchamiane. Jest to niestety problem rodzaju: czy najlepiej przyda mi się samochód terenowy, rodzinne kombi, luksusowa limuzyna, samochód miejski, czy super szybka wyścigówka. Problem pojawia się już wtedy, gdy zdecydujemy się na niewielki samochód miejski, a po 6 miesiącach w domu pojawi się spory pies (dobrze znam ten kłopot). Niestety, co mnie przeraża, może być dużo gorzej. Jeśli mam żonę i dwójkę dzieci, mieszkam i pracuję w mieście, weekendami uwielbiam jeździć po błotnistych bezdrożach, lubię luksus i jestem fanem Formuły 1 to mam już poważny kłopot. Ale takie właśnie będą przyszłe aplikacje superkomputerowe. Będą to mocno zmodularyzowane kody, które wymagać będą dostarczenia im odpowiedniej architektury różnego rodzaju. Niektóre ich części będą się mocno wektoryzować, inne wykorzystywać wielordzeniowość procesora (np. korzystając z OpenMP), a inne będą bardzo dobrze dostosowane do różnego rodzaju popularnych ostatnio akceleratorów hardware'owych (np. FPGA, kart graficznych czy PlayStation 3).

W tym świetle nakreślona na konferencji CUG 2006 wizja rozwoju superkomputerów firmy Cray wydaje się być niezwykle trafiona. Schemat "Adaptive supercomputing" ma dać nam możliwość korzystania z wielu architektur w obrębie jednego przyjaznego systemu operacyjnego.

Schemat "Adaptive Supercomputing" (zrodlo: http://www.cray.com/about_cray/vision.html)

Najnowsza generacja superkomputerów firmy Cray łączyć ma standardowe mikroprocesory skalarne, procesory wektorowe, pocesory wielordzeniowe oraz akceleratory sprzętowe w jednej wysoko wydajnej platformie zarządzanej przez system Linux. W wybiegającej daleko w przyszłość wizji przedstawiono pomysł stworzenia kompilatorów i oprogramowania, które automatycznie decyduje gdzie uruchamiać poszczególne moduły naszej aplikacji.

Odpowiedzią firmy Cray nie jest zatem super luksusowy mega multi van z podwyższonym zawieszeniem i silnikiem V6, tylko jeden duży garaż z najlepszymi w swoim rodzaju produktami. Pomysł ten jest rzeczywiście niezwykle atrakcyjny, jednak wiele osób zapewne zapytałoby od razu o cenę. W tej kwestii trzeba jednak przyznać, że użytkownicy superkomputerów są prawdziwymi gentelmanami i gentlewomankami. I chyba dobrze, bo ceny tych maszyn nie są interesujące. Interesujące są rzeczy jakie z nimi możemy zrobić.

Wróćmy jednak na ziemię. Najnowsze produkty firmy Cray będą nosiły nazwy "Black Widow" (następca komputera CrayX1E) i "Eldorado" (następca Cray XT3) i to chyba tyle co można o nich narazie publicznie powiedzieć.

Aplikacje i obliczenia na Cray X1E

Wiele prezentacji dotyczyło obliczeń i pracy na komputerze Cray X1E.

Niezwykle ciekawa wydała mi się głównie prezentacja Andrew Johnsona z Minnesoty, którego oprogramowanie symuluje lot kolibra. Skomplikowana aplikacja implementuje wiodące, w numerycznym obliczaniu cząstkowych równań różniczkowych, trendy takie jak: trójwymiarowość modelu, adaptacyjność siatki, dynamiczna modyfikacja siatki, dekompozycja siatki i obliczenia równoległe. Program korzysta z biblioteki UPC i wykazuje dobrą skalowalność.

Bardzo gorącym nadal tematem są obliczenia równoległe przy wykorzystaniu Unified Parallel C orac Co-Array Fortran. Autorzy prezentacji prześcigali się w przykładach jak przejście z MPI na UPC bądź CAF poprawiało skalowalność ich aplikacji. Ważnym głosem w tej kwestii wydało mi się wystąpienie Richarda Barreta z ORNL, który na przykładzie prostej aplikacji obliczającej rozwiązanie równania Poissona metoda różnic skończonych pokazał, że CAF nie zawsze jest szybszy, a stary dobry MPI nadal pozostaje standartem.

Cray zaprezentował nowe wersje narzędzi profilingu (nowe opcje programów Cray PAT) oraz ulepszony Cray Appentrice 2 i właściwie niestety nic więcej. I rzeczywiście podstawowym zarzutem do funkcjonowania obecnych systemów Cray, podniesionym na otwartej sesji, był brak narzędzi, na które użytkownicy czekają. Na szczęście włodarze Cray'a przyznali, że jest to jeden z zarzutów z ich TOP5 listy priorytetów.

Kompilatory i biblioteki

Co ciekawe na konferencji CUG można było usłyszeć trochę ciekawostek nie tylko o kompilatorach i bibliotekach Cray'a ale również na przykład o nowych rozwiązaniach w kompilatorach Portland Group oraz bibliotekach matematycznych AMD. Niewątpliwie informacji o kompilatorach PG jest sporo i nie pozostaje mi nic innego, jak obiecać szkolenie, na którym będziemy mogli przyjrzeć się nim z bliska (wiele ciekawych opcji i ich różnych konfiguracji).

Z uwagą śledziłem prezentację dotyczącą bibliotek matematycznych Cray'a. Nowe wersje dostosowane są składniowo do PETSc. Niestety otrzymałem informację, że nikt nie podjął się jeszcze optymalizacji bibliotek PETSc na komputer CrayX1E. W tym względzie zatem wszystko jeszcze przed nami.

FPGA - gorący temat

Wykorzystanie kart akceleracyjnych FPGA to ostatnimi czasy temat bardzo gorący na jakiejkolwiek konferencji dotyczącej Supercomputingu. Komputer Cray XD1 dostarcza możliwość korzystania z takich kart (Xilinx). Użytkownicy narzekają jednak na bardzo skomplikowaną komunikację i konieczność używania nisko poziomowego języka sprzętowego (np. VHDL). Istnieją wszakże biblioteki tłumaczące składnię języka C na VHDL, jednak wydaje się, iż nie spełniają one dobrze swojej roli, co pokazała jedna z prezentacji.

Bariera językowa odstrasza wielu, jednak istnieją również przykłady niezwykle korzystnego zastosowania tych kart. Grice Tsakam-Sotche z Lozanny, którego poznałem na konferencji, po studiach postanowił otworzyć własną firmę sprzedającą gotowe rozwiązania biomolekularne. Razem z grupą znajomych programują obliczenia zmiennoprzecinkowe (!) na kartach FPGA w języku VHDL.

Zainteresowanie kartami FPGA zaowocowało utworzeniem grupy OpenFPGA (www.openfpga.org). Warto zajrzeć na tę stronę.

Moda na antonówki

Większość z osób obecnych na konferencji posługiwało się laptopami w każdej możliwej chwili. Nie dało się nie odnieść wrażenia, że na większości z tych komputerów widniały emblematy lekko nadgryzionego (ale mimo to dosyć apetycznie wyglądającego) jabłka. Tak, powiedzmy sobie szczerze, że ostatnimi czasy jesteśmy ze wszystkich stron atakowani tymi emblematami. W wielu centrach handlowych możemy napotkać tzw. ISpot'y, czyli punkty sprzedaży produktów firmy Mac. W filmie "Plan doskonały" Jodie Foster korzysta z niespotykanie wielkiego ciekłokrystalicznego monitora Mac'a i nawiasem mówiąc to nadgryzione jabłko było chyba największym jakie dotąd widziałem. Coraz bardziej popularne stają się również odtwarzacze MP3 z jabłkiem, których podobno używa nawet Papież Benedykt XVI.

Na konferencji CUG, było więcej właścicieli laptopów firmy Mac niż tych z laptopami z systemem sławnego Billa. Pośród nich wszystkich czułem się jednak dosyć wyjątkowo, jako jedyny użytkownik (starego co prawda już) laptopa z niezastąpionym afrykańskim linuxem Ubuntu.

Pozdrowienia dla ARSC Newsletter

W imieniu redakcji Biuletynu KDM udało mi się przekazać pozdrowienia dla bliźniaczej grupy osób z Arctic Region Supercomputing Center (ARSC). Nasza praca wzorowana jest na ich doskonałym biuletynie. Oni też borykają się z podobnymi trudnościami i też szukają nowych autorów artykułów po korytarzach.

Pozdrawiamy!