Перкін Павло Валерійович
Факультет комп’ютерних наук і технологій (ФКНТ)
Кафедра комп’ютерної інженерії (КІ)
Спеціальність: Комп’ютерні системи і мережі
(КС)
Тема роботи: Дослідження структур композиційних пристроїв
керування з використанням розподілених обчислень
Науковий керівник: доц. кафедри КІ Зеленьова Ірина Яківна
Дослідження структур композиційних пристроїв керування з використанням розподілених обчислень.
- Вступ
- Актуальність проблеми
- Цілі та задачі
- Особливості паралельних обчислень
- Види паралельних систем
- Сучасні паралельні системи
- Особливості синтезу цифрових пристроїв
- Базіс ПЛІС
- Типи ПЛІС
- Результати
- Список літератури
Вступ
Стрімкий розвиток засобів обчислювальної техніки в даний час висуває серйозні вимоги як до швидкодії цифрових пристроїв, так і до апаратурних витрат і вартості в цілому. Поряд з цими вимогами висуваються і інші, такі як надійність, економічність і безпека в експлуатації.
Для реалізації цифрових пристроїв широко використовується базис програмованих логічних інтегральних схем (ПЛІС) [1]. У порівнянні з замовними схемами, ПЛІС програють у швидкодії і в оптимальності використання апаратних засобів, проте вартість ПЛІС значно менша, ніж вартість замовної схеми, реалізація пристрою на базі ПЛІС займає значно менше часу і, найчастіше, ПЛІС є більш надійними, ніж замовні схеми [2]. У порівнянні з іншими родинами інтегральних схем, такими як: прості інтегральні схеми (ПІС), малі інтегральні схеми (МІС), середні інтегральні схеми (СІС), великі інтегральні схеми (ВІС) і т.д., основною перевагою ПЛІС є властивість реконфігурації, яка дозволяє реалізовувати різні цифрові пристрої на одній і тій самій інтегральній схемі [3].
Актуальність проблеми
Сучасні мікросхеми ПЛІС мають властивість реконфігурації, яка дозволяє кінцевому користувачу самостійно виконувати проектування цифрових пристроїв з використанням спеціалізованих САПР. При цьому тривалість процесу проектування безпосередньо залежить від обчислювальної потужності використовуваного ПК і від складності проектованого пристрою. Для збільшення продуктивності процес проектування можна виконувати з використанням розподілених обчислень. При цьому виконати запуск САПР на декількох процесорах важко, а от виконання декількох незалежних процесів одночасно може значно скоротити загальний час проектування, що значно скоротить час проектування, при обробці більш ніж одного цифрового пристрою [1].
Цілі та задачі
Основною метою магістерської роботи є зменшення часу, що витрачається на процес імплементації цифрового пристрою, шляхом реалізації цього етапу проектування за допомогою розподілених обчислень. Основною ідеєю даної методики є одночасне паралельне виконання деякої кількості процесів імплементації на багатопроцесорному обчислювальному ресурсі. В якості такого ресурсу передбачається використовувати кластер ДонНТУ NeClus – паралельну обчислювальну систему MIMD-архітектури з розподіленою пам'яттю [4]. Для досягнення мети необхідно в рамках магістерської роботи вирішити ряд завдань: вивчити особливості організації кластера; розробити протокол взаємодії керуючого вузла з операційними вузлами; розробити та дослідити методику балансування завантаження операційних вузлів; дослідити ефективність використання багатопроцесорного обчислювального ресурсу при масовому виконанні слабопов'язаних задач.
Особливості паралельних обчислень
У загальному плані під паралельними обчисленнями розуміються процеси обробки даних, в яких одночасно можуть виконуватися декілька машинних операцій. Досягнення паралелізму можливо тільки при здійсненності таких вимог до архітектурних принципів побудови обчислювальної системи:
- незалежність функціонування окремих пристроїв ЕОМ - дана вимога відноситься в рівній мірі до всіх основних компонентів обчислювальної системи - до пристроїв введення-виведення, до процесорів і до пристроїв пам'яті;
- надмірність елементів обчислювальної системи;
- використання спеціалізованих пристроїв таких, наприклад, як окремих процесорів для цілочсельної і речової арифметики, пристроїв багаторівневої пам'яті (регістри, кеш);
- дублювання пристроїв ЕОМ шляхом використання, наприклад, кількох однотипних процесорів або декількох пристроїв оперативної пам'яті.
Додатковою формою забезпечення паралелізму може служити конвеєрна реалізація оброблювальних пристроїв, при якій виконання операцій в пристроях представляється у вигляді виконання послідовності утворюючих операцію підкоманд; як результат, при обчисленнях на таких пристроях можуть перебувати на різних стадіях обробки одночасно декілька різних елементів даних [5].. При розгляді проблеми організації паралельних обчислень слід розрізняти наступні можливі режими виконання незалежних частин програми:
- багатозадачний режим (режим поділу часу), при якому для виконання процесів використовується єдиний процесор; даний режим є псевдопаралельним, коли активним (виконуваним) може бути один єдиний процес, а всі інші процеси знаходяться в стані очікування своєї черги на використання процесора; використання режиму поділу часу може підвищити ефективність організації обчислень (наприклад, якщо один з процесів не може виконуватися через очікування вводу даних, процесор може застосовуватися для виконання готового процесу, крім того, в даному режимі проявляються багато ефектів паралельних обчислень (необхідність взаємовиключення і синхронізації процесів тощо) і, як результат, цей режим може бути використаний при початковій підготовці паралельних програм;
- паралельне виконання, коли в один і той же момент часу може виконуватися кілька команд обробки даних; даний режим обчислень може бути забезпечений не тільки при наявності декількох процесорів, але реалізується і за допомогою конвеєрних та векторних обробних пристроїв;
- розподілені обчислення; цей термін зазвичай використовують для вказівки паралельної обробки даних, при якій використовується кілька пристроїв, досить віддалених один від одного і в яких передача даних по лініях зв'язку призводить до суттєвих тимчасових затримок; як результат, ефективна обробка даних при такому способі організації обчислень можлива тільки для паралельних алгоритмів з низькою інтенсивністю потоків міжпроцесорних передач даних; перераховані умови є характерними, наприклад, при організації обчислень в багатомашинних обчислювальних комплексах, утворених об'єднанням кількох окремих ЕОМ за допомогою каналів зв'язку локальних або глобальних інформаційних мереж [5].
Види паралельних систем
Одним з найбільш поширених способів класифікації ЕОМ є систематика Флінна (Flynn), в рамках якої основна увага при аналізі архітектури обчислювальних систем приділяється способам взаємодії послідовностей (потоків) виконуваних команд і оброблюваних даних. В результаті такого підходу розрізняють такі основні типи систем:
- SISD (single instruction stream / single data stream) - одиночний потік команд і одиночний потік даних. До цього класу належать, насамперед, класичні послідовні машини, або інакше, машини фон-нейманівського типу. В таких машинах є тільки один потік команд, всі команди обробляються послідовно одна за іншою, і кожна команда ініціює одну операцію з одним потоком даних. Не має значення той факт, що для збільшення швидкості обробки команд і швидкості виконання арифметичних операцій може застосовуватися конвеєрна обробка.
- SIMD (single instruction stream / multiple data stream) - одиночний потік команд і множинний потік даних. В архітектурах подібного роду зберігається один потік команд, що включає, на відміну від попереднього класу, векторні команди. це дозволяє виконувати одну арифметичну операцію відразу над багатьма даними - елементами вектора. Спосіб виконання векторних операцій не обмовляється, тому обробка елементів вектора може вироблятися або процесорною матрицею, або за допомогою конвеєра.
- MISD (multiple instruction stream / single data stream) - множинний потік команд і одиночний потік даних. Визначення має на увазі наявність в архітектурі багатьох процесорів, що обробляють один і той же потік даних. Проте ні Флінн, ні інші фахівці в галузі архітектури комп'ютерів до сих пір не змогли представити переконливий приклад реально існуючої обчислювальної системи, побудованої на даному принципі. Ряд дослідників відносять конвеєрні машини до даного класу, однак це не знайшло остаточного визнання в науковому співтоваристві.
- MIMD (multiple instruction stream / multiple data stream) - множинний потік команд і множинний потік даних. Цей клас припускає, що в обчислювальній системі є декілька пристроїв обробки команд, об'єднаних в єдиний комплекс і працюючих кожне зі своїм потоком команд і даних [6].
Сучасні паралельні системи
Основним параметром класифікації паралельних комп'ютерів є наявність загальної (SMP) або розподіленої пам'яті (MPP). Щось середнє між SMP і MPP представляють собою NUMA-архітектури, де пам'ять фізично розподілена, але логічно загальнодоступна. Кластерні системи є більш дешевим варіантом MPP. За підтримки команд обробки векторних даних говорять про векторно-конвеєрні процесори, які, в свою чергу можуть об'єднуватися в PVP-системи з використанням загальної або розподіленої пам'яті. Все більшу популярність набувають ідеї комбінування різних архітектур в одній системі і побудови неоднорідних систем.
При організаціях розподілених обчислень в глобальних мережах (Інтернет) говорять про мета-комп'ютерах, які, строго кажучи, не представляють із себе паралельних архітектур.
Найбільш типові класи архітектур сучасних паралельних комп'ютерів і супер-ЕОМ:
Масивно-паралельні системи (MPP)
Система складається з однорідних обчислювальних вузлів, що включають один або кілька центральних процесорів (звичайно RISC), локальну пам'ять (прямий доступ до пам'яті інших вузлів неможливий), комунікаційний процесор чи мережевий адаптер іноді - жорсткі диски (як в SP) та / або інші пристрої. До системи можуть бути додані спеціальні вузли введення-виведення і управляючі вузли. Вузли зв'язані через деяке комунікаційне середовище (високошвидкісна мережа, комутатор і т.п.)Симетричні мультипроцесорні системи (SMP)
Система складається з декількох однорідних процесорів і масиву загальної пам'яті (зазвичай з декількох незалежних блоків). Всі процесори мають доступ до будь-якої точки пам'яті з однаковою швидкістю. Процесори підключені до пам'яті або за допомогою загальної шини (базові 2-4 процесорні SMP-сервера), або за допомогою crossbar-комутатора. Апаратно підтримується когерентність кешів.Системи з неоднорідним доступом до пам'яті (NUMA)
Система складається з однорідних базових модулів (плат), що складаються з невеликого числа процесорів і блоку пам'яті. Модулі об'єднані за допомогою високошвидкісного комутатора. Підтримується єдиний адресний простір, апаратно підтримується доступ до віддаленої пам'яті, тобто до пам'яті інших модулів. При цьому доступ до локальної пам'яті в кілька разів швидше, ніж до віддаленої. У випадку, якщо апаратно підтримується когерентність кешів у всій системі (зазвичай це так), говорять про архітектуріу cc-NUMA (cache-coherent NUMA).Паралельні векторні системи (PVP)
Основною ознакою PVP-систем є наявність спеціальних векторно-конвеєрних процесорів, в яких передбачені команди однотипної обробки векторів незалежних даних, ефективно виконуються на конвеєрних функціональних пристроях. Як правило, кілька таких процесорів (1-16) працюють одночасно над загальною пам'яттю (аналогічно SMP) в рамках багатопроцесорних конфігурацій. Кілька таких вузлів можуть бути об'єднані за допомогою комутатора (аналогічно MPP).Кластерні системи
Набір робочих станцій (або навіть ПК) загального призначення, використовується як дешевий варіант масивно-паралельного комп'ютера. Для зв'язку вузлів використовується одна з стандартних мережевих технологій (Fast / Gigabit Ethernet, Myrinet) на базі шинної архітектури або комутатора. При об'єднанні в кластер комп'ютерів різної потужності або різної архітектури, говорять про гетерогенні (неоднорідні) кластери. Вузли кластера можуть одночасно використовуватися як для робочі станції. У випадку, коли це не потрібно, вузли можуть бути істотно полегшені та / або встановлені в стійку [7]. На рисунку 1 наведено фото кластера ДонНТУ.
Рисунок 1 - Кластер ДонНТУ
Особливості синтезу цифрових пристроїв
Особливості синтезу цифрових пристроїв
Для синтезу цифрових пристроїв, в рамках магістерської, передбачається використання інтегральних схем сімейства ПЛІС, враховуючи їх переваги, описані раніше.
Базис ПЛІС
ПЛІС (програмована логічна інтегральна схема) - це великі інтегральні мікросхеми матричного типу, що дозволяють програмним способом реалізувати логічні функції великої складності. Фізичним обмеженням швидкодії, властивою всім традиційним архитектурам процесорів, є послідовне виконання команд [8]. На відміну від звичайних цифрових мікросхем, логіка роботи ПЛІС не визначається при виготовленні, а задається за допомогою програмування (проектування). Для програмування використовуються програматори і середовища налагодження, що дозволяють задати бажану структуру цифрового пристрою у вигляді принципової електричної схеми або програми на спеціальних мовах опису апаратури: Verilog, VHDL, AHDL та інші. Альтернативою ПЛІС є: програмовані логічні контролери (ПЛК), базові матричні кристали (БМК), потребують заводського виробничого процесу для програмування; ASIC - спеціалізовані замовні великі інтегральні схеми (ВІС), які при дрібносерійному та одиничному виробництві істотно дорожче; спеціалізовані комп'ютери, процесори (наприклад, цифровий сигнальний процесор) або мікроконтролери, які через програмний спосіб реалізації алгоритмів в роботі повільніше ПЛІС.
Деякі виробники ПЛІС пропонують програмні процесори для своїх ПЛІС, які можуть бути модифіковані під конкретну задачу, а потім вбудовані в ПЛІС. Тим самим забезпечується зменшення місця на друкованій платі і спрощення проектування самої ПЛІС, за рахунок швидкодії [9]
Типи ПЛІС
В даний час найбільшу поширеність отримали два типи архітектур ПЛІС:
1) CPLD (англ. complex programmable logic device). Прикладами ПЛІС даної архітектури є сімейство MAX фірми Altera і CoolRunner фірми Xilinx. Для архітектур даних ПЛІС характерні великі логічні блоки - макроячейки (macrocells). Сучасні ПЛІС містять до декількох сотень макроячеек. Кожна макроячейка реалізує функцію декількох змінних і містить тригер для зберігання отриманого результату. Для ПЛІС даної архітектури характерно вкрай низька споживана потужність в статичному режимі (струм порядку десятків мікроампер), яка лінійно зростає зі збільшенням тактової частоти. Також для даної архітектури характерні жорсткі часові затримки між макроячейками а отже і висновками мікросхеми. Типовий час затримки між висновками (pin-to-pin) становить одиниці наносекунд. Прошивка ПЛІС даної архітектури зберігається всередині мікросхеми в незалежній пам'яті.
2)FPGA (англ. field-programmable gate array). ПЛІС даної архітектури мають набагато більше розвинену архітектурою, в порівнянні з CPLD. Основною структурною одиницею ПЛІС даної архітектури є LUT (англ. Lookup tables) - таблиці перетворення, що дозволяють реалізовувати логічні функції. Сучасні ПЛІС містять апаратні помножувачі в тому числі з накопиченням (MAC), блоки внутрішньої пам'яті, апаратні інтерфейси для DDRx SDRAM, апаратні ядра PCIexpress, вбудовані мікропроцесорні ядра, трансивери для організації швидкісної передачі даних між ПЛІС і зовнішніми пристроями [8]. На рисунку 2 наведена плата Xilinx Spartan 3E – типовий представник архітектури FPGA.
Рисунок 2 - Плата Xilinx Spartan
Результати
На кафедрі комп'ютерної інженерії Донецького національного технічного університету було розроблено програмне забезпечення (ПО), що використовується для синтезу моделей керуючих автоматів. Вхідними даними для синтезу є опис граф-схеми алгоритму керування в форматі мови XML [1]. За допомогою ПО можна отримати безліч моделей керуючих пристроїв, що інтерпретують вихідну ГСА. Модель являє собою vhd-файли, що описують функціональні вузли керуючих пристроїв, а також mif-файли, що містять мікропрограму (для керуючих пристроїв з пам'яттю).
Магістерська робота спрямована на організацію паралельної обробки великої кількості моделей керуючих пристроїв. При правильній організації процесу паралельної імплементації великої кількості моделей керуючих пристроїв, часові витрати на дослідження будуть значно знижені, порівняно з послідовною імплементацією.
У ролі САПРу, для імплементації моделей буде використовуватися Xilinx ISE. процес імплементації буде повністю автоматизований, завдяки використанню tcl-скрипта, що вказує назву проекту, перелік файлів, тип і сімейство базової мікросхеми ПЛІС, а також додаткові параметри та керує процесом імплементації. На рисунку 3 приведена робота алгоритму паралельної обробки моделей.
Рисунок 3 – Робота алгоритму паралельної імплементації.
Важливе зауваження
При написанні даного реферату магістерська робота ще не завершена. Остаточне завершення: грудень 2012. Повний текст роботи та матеріали за темою можуть бути отримані у автора або його керівника після зазначеної дати.
Список літератури
- Перкин П.В. Использование распределенных вычислений при разработке цифровых устройств управления / Перкин П.В., Мирошкин А.Н., Зеленева И.Я. Інформаційні управляючі системи та комп'ютерний моніторинг (ІУСКМ-2012): III Всеукраїнська науково-технічна конференція студентів, аспірантів та молодих вчених, 16-18 квітня 2012 р., м. Донецьк / Донец. націонал. техн. ун-т; редкол.: Є.О. Башков (голова) та ін. - Донецьк: ДонНТУ, 2012. - С. 655-657.
- Переход от заказных микросхем к ПЛИС и наоборот [Электронный ресурс] – Режим доступа: www.rlocman.ru/i /File/2007/08/13/FPGA_236-239.pdf
- Терехова О.Н. Большая интегральная схема [Электронный ресурс] – Режим доступа: www.russika.ru/t.php?t=3765
- Кластер ДонНТУ [Электронный ресурс] – Режим доступа: neclus.donntu.ru
- Гергель В.П. Учебная рабочая программа по общему курсу
Многопроцессорные системы и параллельное программирование
для студентов, обучающихся по программе подготовки бакалавров физико-математических наук по направлениюПрикладная математика и информатика
[Электронный ресурс] – Режим доступа: www.software.unn.ac.ru/ccam/files/HTML_Version/part1.html - Высокопроизводительные компьютеры – под. ред. Воеводина В.В. [Электронный ресурс] – Режим доступа: parallel.ru/computers/taxonomy/flynn.html
- Высокопроизводительные компьютеры – под. ред. Воеводина В.В. [Электронный ресурс] – Режим доступа: parallel.ru/computers/classes.html
- Блог Чиповода ПЛИС [Электронный ресурс] – Режим доступа: www.chipovod.ru/category/plis
- ПЛИС. Материал из Википедии — свободной энциклопедии [Электронный ресурс] – Режим доступа: http://ru.wikipedia.org/wiki/%D0%9F%D0%9B%D0%98%D0%A1