Page 18 - 4868
P. 18
Ошибка! Стиль не определен. 16
розглянемо декілька фрагментів обчислень у вигляді блок-схем, що показані
на рисунку 1.3, а, б, в.
Рисунок 1.3 – Приклади алгоритмів, що піддаються та не піддаються
векторизації
Оскільки в системі команд векторно-конвеєрних комп’ютерів зазвичай є
векторні команди, в яких аргументи можуть бути як скалярними, так і
векторними, векторизація фрагментів, показаних на рисунку 1.3, а і б, не
викличе проблем. В той же час фрагмент, показаний на рисунку 1.3 в, не
можливо векторизувати, оскільки обчислення і-ого елементу масиву a не
може розпочатися, доки не буде обчислений попередній елемент. В даному
прикладі має місце залежність між операціями, яка буде перешкоджати
векторизації. Це потрібно мати на увазі при виконанні програми на
комп’ютері векторно-конвеєрної архітектури.
Як приклад, припустимо, що половина деякої програми – це тільки
послідовні обчислення, які не можна векторизувати. Тоді, навіть у випадку
миттєвого виконання другої половини програми за рахунок ідеальної
векторизації, досягтипришвидшення роботи всієї програми більш ніж у два
рази буде неможливо.
2.2. Паралельні комп’ютери із спільною пам’яттю (мультипроцесори)
Всі робочі процеси в мультипроцесорних системах мають єдиний
віртуальний адресний простір, що відображається на спільну пам’ять. Будь-
який процес за допомогою команд LOADтаSTORE може зчитатидані з пам’яті
або записати їху пам’ять. Два процесиздатні легко обмінюватися
інформацією шляхом простого запису даних в спільну пам’ять та зчитування
їх із спільної пам’яті. Така модель поведінки зрозуміла програмістам і
дозволяє вирішувати широкийспектр задач.
Оскільки всі процесори в мультипроцесорі використовують спільний
адресний простір, тоіснує тільки одна копія операційної системи. Відповідно,
є тільки одна карта сторінок пам’яті і одна таблиця процесів. Коли процес
блокується, його процесор зберігає свій стан в таблицях операційної системи,