Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Наявність послідовних частин коду. Закон амдаля і його наслідки. ⇐ ПредыдущаяСтр 5 из 5
Нехай f - це частка послідовних обчислень, 0< f <1. Максимальне прискорення S, досяжне на обчислювальній системі з P процесорів, можна оцінити за допомогою наступної формули, закона Амдала: S (7.1)
Закон Амдала має наступні наслідки: Завжди при будь-якому скільки завгодно великому числі процесорів, незалежно від якості реалізації паралельної частини коду. S < . (7.2) Таким чином, якщо наприклад половина коду виконаються послідовно, то більш ніж в 2 рази код прискорити в принципі неможливо ні на якій паралельній обчислювальній системі. Крім того із закону Амдала виходить, що f , (7.3) тобто якщо, наприклад, необхідно на 10 процесорах дістати прискорення в 9 разів, то необхідно, щоб 99 % коду виконувалося паралельно (f 1.2 %). Із закону Амдала виходить висновок про те, що наявність навіть невеликих послідовних частин коду істотно знижує паралельну ефективність програми. Наприклад, якщо, треба вірішити задачу, якого прискорення можна досягти при збільшенні швидкості виконання комунікаційних операцій в 10 разів, якщо в даний момент комунікації займають 20% часу, то згідно з законом Амдала, рішення буде: S=1/(0,2/10+0,8)=1,25
Хід роботи: Побудуйте графік прискорення роботи програми залежно від частки не паралельного коду. Дані для побудови графіку, в таблиці 7.1.
Таблиця 7.1 Варіанти для виконання лабораторної роботи
Контрольні запитання: 1. Закон Амдала. Ефективність використання процесорів, ступінь паралелізму. 2. У чому полягає суть закону Амдала? Що таке прискорення? 3. Сформулюйте слідство із закону Амдала. 4. Що показує графік залежності коефіцієнта прискорення від числа процесорів і ступеню паралелізму алгоритму. 5. У вас є програма і доступ, до 256-процесорного комп'ютера. Чи виконуватиметься програма в 256 разів швидше, ніж на одному процесорі? 6. У якому випадку не можливо отримати 50% прискорення роботи програми?
Лабораторна робота №8. Багатозадачний режим роботи комп’ютерної системи. Мета: Організація багатозадачного режиму комп’ютерних систем за допомогою матричного множення. Теоретичні відомості Завдання множення матриці на матрицю, обчислюється співвідношенням (8.1): (8.1) Для спрощення, будемо розглядати квадратні матриці А і В. Оцінка кількості виконуючих операцій має порядок n3. Основу можливості паралельних обчислень для матричного множення складає незалежність розрахунків для отримання елементів сij результуючої матриці С. Таким чином усі елементи матриці С, можуть бути обчисленні паралельно, при наявності процесорів, при цьому на кожному процесорі, буде по одному рядку матриці А, і одному стовбці матриці В. При меншої кількості процесорів, подібний підхід приводить до стрічкової схеми розбиття даних, коли на процесорах розташовуються по декілька рядків і стовпців початкових матриць. Інший широко використовуваний підхід для побудови паралельних способів виконання матричного множення, полягає у використанні блокового представлення матриць, при якому початкові матриці A і B і результуюча матриця С, розглядаються у вигляді наборів блоків, як правило квадратного виду деякого розміру m×n. Тоді операцію множення матриць А і В, у блочному виді можливо представити наступним чином(8.2): А11 А12 … А1к В11 В12 … В1к С11 С12 … С1к ... ×... =... (8.2) Ак1 Ак2 … Акк Вк1 Вк2 … Вкк Ск1 Ск2 … Скк
де кожен блок Сij, матриці С, визначається відповідно до виразу (8.3): (8.3) Отримані блоки Сij, також є незалежними, і як результат, можливий підхід для паралельного виконання обчислень може полягати у виділенні для розрахунків, пов'язаних з отриманням окремих блоків Сij, на різних процесорах. Застосування подібного підходу, дозволяє отримати багато ефективних паралельних методів множення блоковий-представлених матриць. У системі Paralab, реалізовані паралельний алгоритм множення матриць при стрічковій схемі розділення даних і два методи, алгоритм Фокса і Кеннона, для блоково-представлених матриць. При стрічковій схемі розділення даних, початкові матриці розбиваються на горизонтальні смуги, для матриці А і вертикальні для матриці В. Отримувані смуги, розподіляються по процесорах, при цьому на кожному з наявного набору процесорів, розташовується тільки по одній смузі матриць А і В. Перемножение смуг, а виконання процесорами цієї операції може бути виконане паралельно, приводить до отримання частини блоків результуючої матриці С. Для обчислення блоків матриці, що залишилися, С, поєднання смуг матриць А і В, на процесорах повинні бути змінені.
У найбільш простому вигляді, це може бути забезпечено, наприклад, при кільцевій топології обчислювальної мережі, при числі процесорів, рівному кількості смуг. В цьому випадку, необхідна для матричного множення зміна положення даних, може бути забезпечено циклічним зрушенням смуг матриці В по кільцю. Після багатократного виконання описаних дій, кількість необхідних повторень, є рівним числу процесорів, на кожному процесорі виходить набір блоків, створюючи горизонтальну смугу матриці С. Розглянута схема обчислень, дозволяє визначити паралельний алгоритм матричного множення при стрічковій схемі розділення даних як ітераційну процедуру, на кожному кроці якої відбувається паралельне виконання операції перемножування смуг і подальшого циклічного зрушення смуг однієї з матриць по кільцю.
Хід роботи: 1. Реалізуйте за допомогою системи Paralab, задачу матричного множення при стрічковій схемі, і пропускної здатністю мережі – 1Гбіт. 2. Проведіть декілька обчислювальних експериментів. Опишіть які стовбці і строки матриці використовувались кожним к вузлів, поясніть на цьому прикладі, принцип паралельного обчислювання. 3. До звіту внесіть графік залежності часу від розмірів масиву.
Таблиця 7.1 Варіанти для виконання лабораторної роботи
Контрольні запитання: 1. Поясніть яким чином проводиться паралельне обчислювання матриць. 2. Поясніть на що впливає латентність у обчислюванні множення матриць. 3. Які методи паралельного обчислювання матриць ви знаєте? У чому полягає їх суть. 4. Що таке стрічкова схема обчислювання матриць. 5. Опишіть алгоритми Фокса і Кеннона.
Рекомендована література. 1. Хорошевский В.Г. Архитектура вычислительных систем. 2. Столлінгс У. «Структурная организация и архитектура компьютерных систем.» М, СПб, Київ, «Вільямс», 2002. 3. Бройдо В.Л. «Вычислительные системы, сети и телекоммуникации.» - С-П: Пітер, 2002. 4. Столінгс В. «Компьютерные системы передачи данных». - С-П: Пітер, 2002. 5. Таненбаум Е. «Компьютерные сети». - С-П: Пітер, 2002. 6. Таненбаум Е. «Архитектура компьютеров». - С-П: Пітер, 2002.
Рибалов Б.О., Лозович О.М. КОМП’ЮТЕРНІ СИСТЕМИ
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-02-10; просмотров: 309; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.134.90.44 (0.02 с.) |