|
Paralelne architektury a programovanie
Praktikum: Streda 08:10-09:50 M218
Prednaska: streda 09:50-11:20 F232
Terminy pisomno-ustnych skusok
- 10.1.2011 v akvariu II
- 13.1.2011 v M262
- 19.1.2011 v akvariu II
- 24.1.2011 v akvariu II
- 3.2.2011 v akvariu II (posledny termin)
- Do konca vyukovej casti semestra (t.j. do 17.12.2010) sa treba
rozhodnut, ci chcete odovzdat softwarovy projekt, alebo ci
date prednost standardnej ustnej/pisomnej skuske
- Dolezite pravidlo (spolocne pre softwarove projekty ako aj pre
ustne/pisomne 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.2011. 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.
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).
- Zdielana pamat a synchronizacia threadov (concurrent programming): tutorial, moje poznamky k prednaske. Treba
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, farming, work-stealing):
Clanok,
Slides,
Este slides (rigoroznejsie riesenie problemu)
- Transakcie a transakcne systemy:
prednaska
- 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)
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/MPS20101124.zip 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 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
Header files ~plachetk/pub/MPS/include/*h su komentovane. Zaujimavy je
najma subor frame.h, ktory definuje rozne makra potrebne k programovaniu.
Na pocitaci cvika sa programy spustaju prikazom mpsrun. Subor
~/.profile musi obsahovat nasledujuce riadky:
export MPS_HOME=~plachetk/pub/MPS
export PATH=$PATH:$MPS_HOME/bin/Linux
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
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,
Jan/26/2011
|