Українська
Підсумки
Висновки
Паралелізм існує на рівнях бітів, інструкцій, даних, потоків, процесів і завдань; що дорожча взаємодія на рівні, то крупнішими мають бути паралельні частини. Моделі дозволяють оцінити алгоритм до програмування: граф залежностей і модель роботи й проміжку дають межу прискорення
Питання для самоперевірки
- Назвіть рівні паралелізму. Які з них неявні для програміста?
- Що таке зернистість? Як вона пов’язана з вартістю взаємодії на кожному рівні?
- Що таке граф залежностей і критичний шлях? Чому послідовний цикл суми не має паралелізму?
- Чим відрізняються моделі EREW, CREW і CRCW PRAM? Чому PRAM оптимістична?
- Що таке робота, проміжок і паралелізм алгоритму? Сформулюйте теорему Брента.
- З яких фаз складається суперкрок BSP? Як обчислити його вартість?
- Які параметри має модель LogP і чим вона відрізняється від BSP?
- Чим «обмін» на спільній пам’яті відрізняється від обміну на розподіленій?
- Що таке грід і віртуальна організація? Назвіть три ознаки гріду за Фостером.
- Яке проміжне ПЗ використовують у гріді? Для чого потрібен HTCondor?
- Що таке EGI, WLCG, BOINC і Український національний грід?
- Чим відрізняються кластер, грід і хмара? Які задачі підходять для гріду?
- Опишіть етапи методології PCAM.
- Чим статичне балансування навантаження відрізняється від динамічного? Що таке крадіжка роботи?
- Опишіть блочний, циклічний і блочно-циклічний розподіли вектора. Коли кожен вигідний?
- Чому паралельна сума дійсних чисел може бути недетермінованою? Як зробити її відтворюваною?
- Порівняйте схеми множення матриці на вектор за обчисленнями й обмінами.
- Як працюють алгоритми Фокса й Кеннона? Чим вони кращі за стрічковий алгоритм?
- Як розпаралелити обчислення інтеграла? Що таке правило Рунге?
- Чому адаптивне інтегрування потребує динамічного балансування? Навіщо поріг рекурсії?
- Як паралельно знайти всі корені рівняння на відрізку? Коли корені можна пропустити?
- Які операції ітерації методу спряжених градієнтів паралельні й що обмежує масштабованість?
- Які способи розпаралелювання мають системи ОДУ?
- Як скласти модель часу паралельної програми? Що таке функція ізоефективності?
Корисні посилання
- Паралельне програмування в .NET: https://learn.microsoft.com/dotnet/standard/parallel-programming/
- Клас
Barrier: https://learn.microsoft.com/dotnet/standard/threading/barrier - I. Foster. Designing and Building Parallel Programs: https://www.mcs.anl.gov/~itf/dbpp/
- EGI: https://www.egi.eu/
- WLCG: https://wlcg.web.cern.ch/
- Грід у ЦЕРН: https://home.cern/science/computing/grid
- BOINC: https://boinc.berkeley.edu/
- HTCondor: https://htcondor.org/
- NorduGrid ARC: https://www.nordugrid.org/arc/
- Український національний грід: http://ung.bitp.kiev.ua/ua/
- Налагодження багатопотокових програм у Rider: https://www.jetbrains.com/help/rider/Debugging_Multithreaded_Applications.html