Tehnologija izdelovanja polprevodnikov je trčila ob
fizikalne omejitve, ki trenutno preprečujejo večjo miniaturizacijo čipov in z
njo izdelovanje varčnejših in hitrejših procesorjev. V zadnjem času nas zato
mediji dnevno zasipavajo z novicami o novih in novih napravah z večjedrnimi
procesorji ter splošno namenskimi grafičnimi procesnimi enotami na eni strani
in najrazličnejšimi računalniškimi gručami ter storitvami v oblaku na drugi
strani.

To take
full advantage of these devices, it is necessary to know the architecture of
these systems and appropriate software interfaces. During the semester we will
learn how to make multithreaded programs, Open MP programs for multicore
processors, how to exploit general purpose graphics processing units with Open
CL library, MPI library for working with clusters, grid systems and computing
clouds.

We will
learn about the traps of parallel and distributed systems, try to understand them
and find the ways to avoid them. At the end of the course you will be able to select
the most appropriate hardware platform and write an efficient parallel program
for a problem at hand.

Homework
assignments for the course are required and are being assessed. Every week students
get a short assignment, which is linked to the lectures. To get a positive grade
from the homework assignments you need to successfully complete at least 80% of
short assignments. Short assignments represent one-third of the final grade. Second-third
is obtained from parallelization of more comprehensive algorithm on two
different parallel platforms. The last third of the grade is obtained on the
oral exam.