|
Paralelne architektury a programovanie
Praktikum: Utorok 09:00-10:30 M218
Prednaska: Utorok 10:40-13:00 F109
- Dolezite pravidlo (spolocne pre softwarove projekty ako aj pre skusky):
pracovat samostatne. Porusenie tohto pravidla znamena neuspesne
absolvovanie kurzu (Fx). Samozrejme, pri programovani si mozete odovzdavat
rady a skusenosti, kodovat vsak musi kazdy sam, bez cudzej pomoci.
- Softwarove projekty treba odovzdat do 18.1.2009. Odovzdat treba ZIP,
ktory obsahuje minimalne
adresar so vsetkymi potrebnymi zdrojovymi kodmi a Makefiles (tak, aby po
rozbaleni na cvikach ci na caisse stacilo spustit make). Plus vysledky
merani na caisse (staci prilozit standardne statistiky z behu pre vstup
"workfile" pre 1, 2, 4, 8 a 16 procesov). Samozrejme, ocenim napriklad par
grafov a kratky text ktory hovori o highlightoch implementacie, resp.
experimentov.
- Ti, ktori neodovzdavaju softwarovy projekt, maju moznost absolvovat
skusku. Na terminy (nejake este pribudnu) sa treba
elektronicky prihlasit:
- Streda 7.1.2009, 14:00, F109
- Streda 14.1.2009, 14:00, F109
- Streda 21.1.2009, 14:00, F109
- Streda 28.1.2009, 14:00, F109 (posledny termin)
Prednaska
- OCCAM a Transputery. OCCAM je (archaicky) programovaci jazyk navrhnuty ako
"takmer-assembler" k procesoru, ktory sa volal Transputer (T414, T800, ...).
Transputery sa uz niekolko rokov nevyrabaju, preto ten minuly cas. Mnohe
myslienky su vsak dodnes aktualne a neprekonane. Ako doplnujuce citanie
k prednaske doporucujem velmi pekny
tutorial OCCAMu (Fred Barnes). Aj tento tutorial sa mi paci
(od Rasta Kralovica; obsahuje priklady, ktore skutocne bezia pod KROC).
- Zdielana pamat a synchronizacia threadov (concurrent programming): tutorial. Staci
ovladat semantiku nasledujucich funkcii pthreads: startup and termination
(pthread_start, pthread_join), mutexes (pthread_mutex_init,
pthread_mutex_lock, pthread_mutex_unlock,
pthread_mutex_destroy), condition variables (pthread_cond_init,
pthread_cond_wait, pthread_cond_signal, pthread_cond_destroy)
- Message passing:
Clanok,
Slides. Dalsi studijny material: diplomova praca
R.Pauer: Centralizovany system pre vymenu sprav medzi paralelnymi
procesmi, 2007, diplomova praca M.Strbka:
Distribuovany transakcny system, 2007
- Load balancing (chunking a farming):
Clanok,
Slides
- Transakcie a transakcne systemy:
prednaska 1,
prednaska 2
- Distribuovane databazy: prednaska 1
(architektura distribuovaneho DB systemu, miery efektivity distribuovaneho
DB systemu, dvoj- a trojfazovy atomicky commit protocol),
prednaska 2 (vyber koordinatora, distribuovane
zamykanie, replikacia dat, distribuovany deadlock, synchronizacia fyzickych a
logickych hodin)
- Vybrane aplikacie: paralelny ray tracing,
paralelny radiosity. Dalsi studijny material:
diplomova praca
P.Slamka: Parallelization of Radiosity Method, 2007.
Programovaci jazyk a systemy
Kod treba pisat v jazyku C (t.j. ANSI C, nie C++). Cielovou architekturou je
Parsytec Multicluster, ktory je pripojeny k pocitacu caissa (architektura
PARIXT8). Vyvoj sa da robit tiez na pocitaci cvika (architektura LINUX), s
pouzitim systemu MPS. Architektura PARIXT8 je obzvlast dolezita, lebo v
Parsytec Multicluster je 20 procesorov, ktore su vylucne k dispozicii jednej
beziacej aplikacii. Toto umoznuje hodnoverne experimentovanie, sotva
dosiahnutelne na Linuxovych systemoch.
Na pocitaci cvika v ~plachetk/pub/MPS20081106.tar.gz je aktualna verzia MPS,
ktora sa da instalovat na stand-alone pocitaci. (Prosim nepublikovat na
verejnych forach, ako je napriklad WWW.) Obsah tohto archivu je rozbaleny v
~plachetk/pub/MPS.
Po rozbaleni je v directory
MPS/examples/WS1N jeden demo program (N-tinovy work stealing), ktory je
napisany "cistym stylom" a demonstruje pouzitie relevantnych kniznic.
Program sa da zbuildovat prikazom
make -f Makefile.Linux
a spustit prikazom napr. s 2 procesmi
mpsrun 2 workfile.short
Casom pribudnu dalsie demo programy, tie su zatial v ~plachetk/pub/MPS.OLD.
Header files MPS/include/*h su komentovane. Zaujimavy je najma subor
frame.h, ktory definuje rozne makra potrebne k programovaniu.
Mala zmena: na pocitaci cvika sa programy spustaju prikazom mpsrun.
Na pocitaci caissa je adresar ~plachetk/pub/TPL s velmi podobnym obsahom ako
na pocitaci cvika. Programy sa spustaju prikazom tplrun.
Grafy
Na kreslenie efficiency grafov doporucujem program GNUPLOT (gnuplot). Tento
program predpoklada, ze vystup je vo formate, ktory pouziva template WS1N (v
examples). Na pocitaci caissa su v adresari WS1N .plt subory, ktore kreslia
relevantne grafy. (Ak nemate skusenosti s GNUPLOT, mozete pouzit napriklad
MS Excel alebo nejaky iny program ktory vie kreslit grafy.)
Linky
Paralelne architektury a programovanie, Zima 2003/2004 (Rastislav
Kralovic).
KROC: The Kent
Retargetable OCCAM Compiler
PVM: Parallel Virtual
Machine
Message Passing Interface (MPI) Forum
MPICH (Free Portable
Implementation of MPI)
Global Grid Forum
Updated by
Tomas Plachetka,
Dec/19/2008
|