Logo Uni Logo FMFI Comenius University > Faculty of Mathematics, Physics and Informatics > Department of Computer Science

Dr. Tomas Plachetka


Research
Teaching
Publications
Contact

Paralelne architektury a programovanie

Praktikum: Utorok 09:50-12:10 F109
Praktikum: Utorok 09:50-12:10 M218 (resp. M217), pokracovanie prednasky

  • Do konca vyukovej casti semestra (t.j. do 18.12.2009) sa treba rozhodnut, ci chcete odovzdat softwarovy projekt (load balancing), ale 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.2010. 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). 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
  • 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/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 ~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

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/7/2009