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: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