|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Класи паралельних ОС в залежності від архітектуриВступ Висновок з попередньої лекції ясний – " паралелізм в архітектурі комп’ютерів – це не просто надовго, це назавжди ". Сучасні технології дозволяють об'єднувати тисячі процесорів в рамках однієї обчислювальної системи з терафлопною продуктивністю (1012 (тріліон) операцій з плаваючою крапкою). Але ситуація далека від ідеальної. На практиці майже завжди справедливе твердження: " підвищення ступеня паралелізму в архітектурі комп'ютера веде як до зростання його пікової продуктивності, так одночасно і до збільшення розриву між продуктивністю піковою і реальною". (Це і зрозуміло. Не можуть всі програми однаково ефективно використовувати всі 64 процесорні елементи комп'ютера ILLIAC IV). Іноді структура алгоритму не дозволяє у принципі одержати ефективну реалізацію, але така ситуація зустрічається не так часто. Найчастіше реальну продуктивність програми підняти можна, проте складність цього процесу сильно залежить від того, наскільки розвинена підтримка паралелізму в апаратно-програмному середовищі обчислювальної системи. Отже, перше, про що варто сказати, говорячи про підвищення ефективності роботи програм, — це розробка спецпроцесорів. Так, якщо процесор виключно ефективно обробляє байтові цілі числа, то абсолютно не очевидно, що так же ефективно він працюватиме з дійсними числами з плаваючою крапкою або з великими масивами однорозрядних даних. Алгоритми різні, а всього в архітектурі наперед передбачити неможливо, тому і доводиться розробникам шукати компроміс між універсальністю і специалізованістю. Через велику спеціалізованість спецпроцесорів потрібно дуже акуратно підходити до оцінки показників їх продуктивності.Не рідко проскакують повідомлення, які багато хто схильний розглядати як сенсаційні: "розроблений процесор, що виконує Х операцій у секунду, тоді як кращі сучасні зразки працюють з швидкістю в десятки і сотні раз меншою". Типова ситуація, в якій вдалося ефектно змішувати різні поняття і ніде не написати нічого неправильного. Просто "X операцій в секунду" сприймається як загальний критерій продуктивності універсальних процесорів, хоча, як правило, маються на увазі операції спеціального вигляду. І порівняння йде з "кращими сучасними зразками", що знову-таки асоціюється з універсальними компьютерами. Архітектура паралельних комп'ютерів за час існування комп'ютерної індустрії розвивалася неймовірними темпами і в різних напрямах. Проте, якщо відкинути деталі і виділити загальну ідею побудови більшості сучасних паралельних обчислювальних систем, то залишиться лише два класи.
Класи паралельних ОС в залежності від архітектури Розглянемо класи паралельних ОбчС в залежності від архітектури. Перший клас — це комп'ютери із загальною пам'яттю. Системи, побудовані за таким принципом, називають мультипроцесорними системами. В системі присутні декілька рівноправних процесорів, що мають однаковий доступ до єдиної пам'яті (мал.1). Всі процесори "розділяють" між собою загальну пам'ять, звідси ще одна назва комп'ютерів цього класу — комп'ютери з пам'яттю, що розділяється (рос. разделяемая). Всі процесори працюють з єдиним адресним простором: якщо один процесор записав значення 79 в слово за адресою 1024, то інший процесор, прочитавши слово, розташоване за адресою 1024, отримає значення 79.
Рис 1. Паралельні комптери із загальною пам‘яттю
Другий клас — це комп'ютери з розподіленою (рос. распределенной) пам'яттю, які по аналогії з попереднім класом іноді називатимемо мультикомп’ютерними системами (мал.2). Кожен обчислювальний вузол в такій системі є повноцінним комп'ютером з своїм процесором, пам'яттю, підсистемою вводу/виводу, операційною системою. У такій ситуації, якщо один процесор запише значення 79 за адресою 1024, то це ніяк не вплине на те,щоза тією ж адресою прочитає інший, оскільки кожний з них працює в своєму адресному просторі. Рис.2 Паралельні комп‘ютери з розподіленою пам‘яттю
До комп'ютерів із загальною пам'яттю відносяться всі системи класу Symmetric Multi Processors (SMP). У SMP все, окрім декількох процесорів, в одному екземплярі: одна пам'ять, одна операційна система, одна підсистема вводу/виводу. Слово "симетричний" в назві архітектури означає, що кожен процесор може робити все те, що і будь-який інший. До речі, в даний час SMP часто розглядають як альтернативну назву для комп'ютерів із загальною пам'яттю, чому додатково сприяють два можливі варіанти розшифровки даної абревіатури: Symmetric Multi Processors і Shared Memory Processors. Два класи паралельних ОС відображають дві основні задачі паралельних обчислень. 1. Перша задача полягає в побудові обчислювальних систем з максимальною продуктивністю. Це легко дозволяють зробити комп'ютери з розподіленою пам'яттю. Вже сьогодні існують установки, що об’єднують тисячі обчислювальних вузлів в рамках єдиної комунікаційної системи. Навіть Інтернет можна розглядати як найбільший паралельний комп'ютер з розподіленою пам'яттю, об'єднуючий мільйони обчислювальних вузлів. Але як такі системи ефективно використовувати? Як зменшити великі накладні витрати, що йдуть на взаємодію паралельно працюючих процесорів? Як спростити розробку паралельних програм? Практично єдиний спосіб програмування подібних систем — це використовування систем обміну повідомленнями, наприклад, PVM або MPI, що не завжди просте. 2. Звідси виникає друга задача — пошук методів розробки ефективного програмного забезпечення для паралельних обчислювальних систем. Дана задача небагато простіше розв'язується для комп'ютерів із загальною пам'яттю за рахунок того, що витрати на обмін даними між процесорами через загальну пам'ять мінімальні, а технології програмування таких систем, як правило, простіше. Проблема тут в іншому. З технологічних причин не вдається об'єднати велике число процесорів з єдиною оперативною пам'яттю, а тому дуже велику продуктивність на таких системах сьогодні одержати не можна. Помітимо, що в обох випадках багато проблем викликає із системою комутації, що зв'язує або процесори з модулями пам'яті, або процесори між собою. Легко сказати, що 32 процесори мають рівний доступ до єдиної оперативної пам'яті або що 1024 процесори можуть спілкуватися одним з одним, а як це реалізувати на практиці? Розглянемо деякі способи організації комунікаційних систем в комп'ютерах.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |