======================================================================= Програмне забезпечення комп'ютерних систем. Програмування та компіляція ======================================================================= :Лектор: `Русанова Ольга Веніамінівна `_ .. contents:: :depth: 3 -------------- Лекція №1 ========= Характеристики архітектур систем: - Зернистість (є системи, які підтримують дрібно-, середньо-, крупно-зернистий паралелізм, причому управління такими системами здійснюється по-різному) - Спосіб управління (централізований/розподілений) - Синхронність (чи існує в **системі** єдиний синхросигнал, по якому починають роботу вузли системи). Переважна більшість потужних систем -- асинхронні. - Тип пам'яті (спільна/розділювана, локальна/розподілена, DSM-системи) - Масштабованість системи (обмежена/необмежена масштабованість) - Степінь зв'язності системи (слабко-зв'язні, сильно-зв'язні; *лектор виділяє ще і третю категорію: зв'язні -- щось середнє між слабко-зв'язними і сильно-зв'язними*) Лекція №2 ========= Класифікація комп'ютерних систем -------------------------------- .. note:: за основу взято рис. 1.1. із методички. - За ступенем зв'язності - Паралельні системи (сильно-зв'язні) - За типом керування - КС, що керується потоком даних (Data-Flow systems) - КС, що керуються потоком команд - За типом обробки - SIMD (Single Instruction Multiple Data) - Матричні - Асоціативні - Векторні - Конвеєрні системи (Pipeline) - Системи із наддовгим командним словом (VLIW) - MIMD (Multiple Instruction Multiple Data) - За типом пам'яті - SMP (системи з масовим паралелізмом) - HPP - DSM - Спеціалізовані ПКС - Гібридні ПКС - Кластерні системи (зв'язні) - Розподілені, GRID, та Cloud системи (слабко-зв'язні) Лекція №4 ========= Гіпотеза Мінського (?). -- Швидкодія і продуктивність систем зрозстають у логарифмічній залежності від кількості процесорів (обчислювальних вузлів). :: ^ P| e| r| f| o| xxxxxxxxxx r| lg(N) xxxxxxxx m| xxxxxx a| xxxx n| xx c| xx e| x | x |x +------------------------------------------> N Така залежність обумовлена тим, що в більшості програм необхідна синхронізація та обмін даними між обчислювальними вузлами. З іншої сторони, на швидкодію впливають також обрані алгоритми, засоби синхронізації, тощо. Засоби, які застосовуютсья для паралельної обробки в різних системах: +--------------------+-----------------------+-------------------------------+ | | Синхронні мови ПП | Асинхронні мови ПП | +--------------------+-----------------------+-------+---------+------+------+ | Тип КС | Операції над масивами | опис | ps init | res | msg | | | | проц. | ps fin | sync | sync | +====================+=======================+=======+=========+======+======+ | век і матричні КС | + | -- | -- | -- | -- | +--------------------+-----------------------+-------+---------+------+------+ | SMP | -+ | + | + | + | - | +--------------------+-----------------------+-------+---------+------+------+ | MPP | -+ | + | + | +- | + | +--------------------+-----------------------+-------+---------+------+------+ Задачі: - Обрання мови та засобів синхронізації - I/O параелельно до обчислень - Розбиття задачі на підзадачі у випадку, коли розмірність задачі перевищує розмірність системи. - Файли конфігурації розподілених систем - Співвідношення розмірностей системи та задачі - Оцінка розробленої паралельної програми (масштабованість, прискорення, ефективність)