CILJ KOLEGIJA:
Cilj kolegija je upoznati studente sa osnovnim tehnikama razvoja efikasnih paralelnih algoritama. Na primjeru tipičnih algoritama na nizovima podataka, stablima, grafovima, i matričnim algoritmima, te na studijskim primjerima iz primjene, studenti trebaju naučiti razvijati paralelne verzije tih algoritama. Pri tome trebaju savladati osnovne tehnike reorganizacije podataka i operacija algoritma, u svrhu ubrzanja paralelne implementacije. To ubrzanje postiže se efikasnom podjelom posla među procesorima, detektiranjem ovisnosti ili neovisnosti među podacima i operacijama, minimizacijom komunikacije između procesora kao i između raznih nivoa hijerarhijske memorije, te optimalnom sinhronizacijom rada procesora. Na kraju studenti će biti osposobljeni da te tehnike primjene na jednom jednostavnom softverskom alatu ili biblioteci.
NASTAVNI SADRŽAJI:
1. Uvod: razvoj i klasifikacija paralelnih računala.
2. Paralelne arhitekture i modeli programiranja.
3. Mjere performance paralelnih algoritama (efikasnost).
4. Osnovne tehnike dizajniranja paralelnih algoritama.
5. Brzi algoritmi na stablima.
6. Brzi algoritmi za spajanje sortiranih nizova, pretraživanje i sortiranje nizova.
7. Matrično množenje na hijerarhijskoj memoriji.
8. Paralelni algoritmi za rješavanje linearnih sustava: iterativne metode, uz primjenu na rješavanja Poissonove jednadžbe.
9. Izrada projektnog zadatka.
|
-
Algorithms and Parallel Computing, F. Gebali, John Wiley & Sons, Inc., New Jersey, 2011.
-
Parallel Programming; For Multicore and Cluster Systems, T. Rauber, G. Rünger, Springer-Verlag Berlin Heidelberg, 2010.
-
An Introduction to Parallel Algorithms, J. Jájá, Addison-Wesley Publishing Company, Reading, Massachusetts, 1992.
-
Introduction to Parallel Computing, W. P. Petrsen, P. Arbenz, Oxford Univerity Press., Oxford, 2004.
|