Паралелни системи

Циљ и исход предмета

Усвајање знања и практичних вештина за разумевање и развој паралелних рачунарских система.

Студент разуме кључне концепте и проблеме развоја паралелних алгоритама и упознат је са релевантним карактеристикама савремених паралелних рачунарских система.

Теоријска настава

Паралелни рачунарски системи и Флинова таксономија. Границе паралелизације, Амдалов и Густафсонов закон. Анализа проблeма како би се пронашле могућности за паралелизам. Упознавање са основним концептима паралелног програмирања. Паралелизација употребом већег броја нити и процеса. Синхронизација, баријере и семафори. Примери неких паралелних алгоритама: алгоритми са густим матрицама, сортирање, графовски алгоритми, динамичко програмирање, дискретна оптимизација, брза Фуријеова трансформација. Развој софтвера за рачунаре са великим бројем језгара и графичке процесоре. CUDA и pyCUDA оквири за развој софтвера. Перформансе паралелних алгоритама. Паралелизација података. Векторизација кроз проширени скуп инструкција Intel AVX-512. Програмирање на основу тока података.  

Практична настава

Прорачуни убрзања и ефикасности које је могуће остварити паралелизацијом. Практичан увод у развој софтвера у Jyputer Lab окружењу. Употреба већег броја нити у циљу паралелизације и ограничења Python интерпретера (GIL). Употреба већег броја процеса у циљу паралелизације. Синхронизација и комуникација између процеса. Рачунарски кластери и GPU хостови. Употреба библиотека OpenMP, OpenCL и OpenACC. Пример паралелних алгоритама из домена научног софтвера, пословних апликација и операција над графовима. Програмско окружење CUDA. Примери програма написаних у CUDA окружењу и извршавање кроз pyCUDA омотач, Jyputer Lab и Google Cloud.

sbobet88 slot agb99 situs slot slot777 AMANAHTOTO toto AMANAHTOTO AMANAHTOTO slot SLOT GACOR AMANAHTOTO toto slot88 ASIA200 ASIA200 ASIA200 bayijudy.com situs resmi bayitoto slot gacor popotogel login situs slot eropa99 hoki99 roma77 babe138 roma77 roma77 hoki99 abadicash