Русский   English
ДонНТУ   Портал магістрів

Реферат за темою випускної роботи

Зміст

Вступ

Одним з основних стратегічних напрямків розвитку сучасної комп'ютерної індустрії є застосування високопродуктивних паралельних обчислювальних систем (ОС). Ця тенденція багато в чому обумовлена принциповим обмеженням максимальної можливої швидкодії звичайних послідовних машин, а також постійною появою нових обчислювальних завдань, для вирішення яких можливостей існуючих засобів обчислювальної техніки завжди виявляється недостатньо. Моделювання реальних багатовимірних динамічних процесів, що описуються системами звичайних диференціальних рівнянь (СЗДР) являє собою один з класів завдань, для вирішення яких використання паралельних суперкомп'ютерів не тільки виправдано, але й необхідно. Про це свідчить відомий список великий виклик, в якому такі завдання займають одне з провідних місць [1].

Незважаючи на те, що максимальна продуктивність існуючих паралельних обчислювальних систем істотно зросла, а також радикально змінилася технологічна база та архітектура, як і раніше, головною перешкодою до впровадження практично всіх паралельних архітектур є відсутність ефективних паралельних алгоритмів та їх реалізацій. Таким чином, проблема підвищення ефективності функціонування паралельних обчислювальних систем, незважаючи на наявні успіхи, далека до повного вирішення, як в теоретичному, так і в практичному відношенні.

Найбільш складною є задача визначення оптимальноЇ алгоритмічної та структурної організації паралельних обчислень з метою досягнення достатніх характеристик ефективності. Сьогодні не викликає сумнівів, що реалізувати потенційні можливості паралельних комп'ютерів можливо насамперед на основі проведення цілеспрямованої теоретичної роботи з побудови нових та адаптації існуючих методів вирішення складних науково-технічних завдань, оскільки перспективи розвитку суперкомп'ютерів у найближчому майбутньому будуть визначатися скоріш успіхами обчислювальної математики, ніж електроніки [2].

1. Актуальність теми

Серед багатьох закономірностей комп'ютерного світу виділяється тенденція до неухильного і безперервного підвищення продуктивності комп'ютерних систем. Необхідність підвищення швидкодії обчислень багато в чому обумовлюється практичною потребою. Крім того, зростання продуктивності комп'ютерної техніки дозволяє підвищувати складність вирішуваних завдань і постійно розширювати коло досліджуваних проблем.

Зростанню продуктивності комп'ютерів сприяє постійне вдосконалення технологій створення засобів комп'ютерної техніки. У сфері виробництва комп'ютерів протягом тривалого часу спостерігається дотримання закону Мура. До недавнього часу це зростання продуктивності забезпечувалося здебільшого підвищенням тактової частоти основних обчислювальних елементів комп'ютерів — процесорів. Але можливості такого підходу виявилися не безмежними — після деякого моменту подальше збільшення тактової частоти вимагає значних технологічних зусиль, супроводжується істотним зростанням енергоспоживання і наштовхується на нездоланні проблеми теплорегуляції. У таких умовах практично неминучою стала кардинальна зміна основного принципу виробництва комп'ютерної техніки — замість створення складних високочастотних процесорів нова спрямованість перемістилася до розробки складених процесорів, що складаються з безлічі рівноправних і порівняно простих обчислювальних елементів — ядер. Максимальна продуктивність процесорів в цьому випадку є рівною сумі продуктивності обчислювальних ядер, що входять в процесори. Тим самим збільшується зростання продуктивності без підвищення тактових частот.

Можна стверджувати, що настала епоха багатоядерних процесорів. Перехід до багатоядерності одночасно знаменує і настання ери паралельних обчислень. Задіяти обчислювальний потенціал багатоядерних процесорів можна тільки, якщо здійснити поділ виконуваних обчислень на інформаційно незалежні частини і організувати виконання кожної частини обчислень на різних ядрах. Звідси випливає, що паралельні обчислення стають неминучими і повсюдними.

З іншого боку виникають наступні проблеми: чисельні методи в разі багатоядерності повинні проектуватися як системи паралельних і взаємодіючих між собою процесів, що допускають виконання на незалежних обчислювальних ядрах; застосовані алгоритмічні мови та системне програмне забезпечення повинні забезпечувати створення паралельних програм, організовувати синхронізацію і взаємовиключення асинхронних процесів тощо. Перераховані проблеми організації паралельних обчислень збільшують існуючий розрив між обчислювальним потенціалом сучасних комп'ютерних систем та наявним алгоритмическим і програмним забезпеченням, що застосовується для вирішення складних завдань. І, як результат, усунення і скорочення цього розриву є одним з найбільш значущих завдань сучасної науки і техніки.

Таким чином, незважаючи на результати великих досліджень в галузі паралельних обчислень, роботи в цьому напрямку не втрачають своєї значущості та потребують подальшого розвитку у зв'язку з масовим поширенням паралельних обчислювальних систем і відсутністю належної програмної складової [3].

2. Мета і задачі дослідження та заплановані результати

Метою дослідження є підвищення ефективності паралельних обчислень за рахунок використання багатоядерних процесорів і аналіз результатів, які будуть отримані при проведенні експериментів на різних обчислювальних системах. Передбачається в якості основної предметної області використати неявні блокові методи розв'язання задачі Коші. Також ставиться метою провести порівняльний аналіз різних реалізацій паралельних алгоритмів на основі технологій CUDA, MPI і OpenCL. В якості базової платформи буде використовуватися CUDA.

Основні задачі дослідження:

  1. Розглянути підходи до паралельної реалізації неявних блокових методів рішення задачі Коші;
  2. Провести аналіз платформи CUDA в якості інструменту для вирішення даної задачі;
  3. Створити програмні засоби для реалізації представлених методів на платформі CUDA;
  4. Провести аналогічну роботу для альтернативних платформ;
  5. Виконати аналіз резуьтатів, отриманих під час експериментів;
  6. Провести порівняльний аналіз різних платформ для рішення даного класу задач, дати оцінку ефективності та сформувати відповідні висновки.

Об’єкт дослідження: багатоядерні процесори як інструмент для паралельного розв'язання задачі Коші.

Предмет дослідження: паралельні чисельні неявні блокові методи розв'язання задачі Коші та їх реалізації на різних платформах для використання апаратного паралелізму.

В рамках магістерської роботи планується отримання актуальних результатів по наступним напрямкам:

  1. Ефективність реалізації неявних блокових методів рішення задачі Коші на різних платформах паралельного програмування;
  2. Створення механізму тестування для оцінки різних реалізацій.

3. Огляд досліджень та розробок

3.1 Огляд міжнародних джерел

Хайрер Є. і Ваннер Г., відомі європейські математики, у своїх роботах [45] представляють повну картину сучасного стану теорії і практики чисельного рішення звичайних диференціальних рівнянь. У роботах описуються основні теоретичні результати. Добре представлені найбільш вживані чисельні методи, дається велика кількість прикладів практичних застосувань у фізиці і прикладних науках. На додаток до всього представлені тексти програм, що реалізують багато розглянутих методів.

Повноцінне поєднання навчального посібника і довідника по методам чисельної алгебри являє собою книга [6] відомих американських математиків-обчислювачів, Голуба Дж. і Ван Лоун Ч. Виклад стислий, у рецептурній формі, без доказів. Книгу відрізняють методичні переваги: кожен розділ містить завдання для читачів-студентів, і огляд наукової літератури — для фахівців. Для математиків-обчислювачів, інженерів, студентів математичних і технічних спеціальностей.

У книзі Дж.Холл [7] представлений повний набір кращих з існуючих алгоритмів вирішення, а також огляд останніх досягнень теорії як для початкових, так і крайових завдань. Книга адресована широкому колу фахівців, які цікавляться чисельними методами.

3.2 Огляд національних джерел

Воєводін В.В. і Воєводін Вл.В. у своїй книзі [8] обговорюють ключові проблеми сучасних паралельних обчислень. Розглядаються різні архітектури паралельних обчислювальних систем, технології паралельного програмування, чисельні методи розв'язання задач. Разом із суворим описом основних положень теорії інформаційної структури програм і алгоритмів, книга містить багатий довідковий матеріал, необхідний для організації ефективного вирішення великих завдань на комп'ютерах з паралельною архітектурою.

Навчальні посібники Гергеля В.П. [3] містять матеріали для роботи в області паралельного програмування. Дається коротка характеристика принципів побудови паралельних обчислювальних систем, розглядаються математичні моделі паралельних алгоритмів і програм для аналізу ефективності паралельних обчислень, наводяться приклади конкретних паралельних методів для вирішення типових задач обчислювальної математики.

3.3 Огляд локальних джерел

На території України співробітники Донецького національного технічного університету активно займаються проблемою підвищення ефективності паралельних чисельних методів, і, зокрема, методів вирішення задачі Коші.

Професор Фельдман Л.П. і доцент Назарова І.А. (ДонНТУ) в [9] розглянули паралельний алгоритм розв'язання систем ОДУ, орієнтований на системи з SIMD-архітектурою. Були отримані характеристики алгоритму, такі як час виконання, прискорення і ефективність паралельної реалізації.

Професор Петренко А.І. (КПІ), доцент Дмитрієва О.А. (ДонНТУ) і професор Фельдман Л.П. (ДонНТУ) в [10] детально висвітлили сучасні чисельні методи розв'язання систем диференціальних рівнянь, в тому числі і жорстких. Особливу увагу приділено практичній реалізації методів.

В [11] доцентом Михайловою Т.В. були запропоновані модифіковані методи аналізу та синтезу високопродуктивних обчислювальних ресурсів різної топології з допомогою імовірнісних моделей, що дозволяють аналізувати і проектувати більш широкий клас високопродуктивних паралельних обчислювальних середовищ.

4. Використання багатоядерних процесорів

Поточний стан розвитку обчислювальної техніки характеризується застосуванням величезної кількості високопродуктивних паралельних обчислювальних систем. У них використовуються різні апаратні складові, вони функціонують під управлінням різних операційних систем і реалізують різне прикладне програмне забезпечення. Велика розмаїтість паралельних систем породила необхідність введення для них ефективної системи класифікації, в результаті чого була вироблена систематика Флінна. В її основу покладено поняття потоків виконуваних команд і оброблюваних даних. Виділяються наступні класи НД:

Класифікація архітектур обчислювальних систем по М.Флінну

Рисунок 1 — Класифікація архітектур обчислювальних систем по М.Флінну

Відповідно до цієї систематики більшість сучасних НД можна віднести до класу MIMD. Тому проводиться більш детальна класифікація, і MIMD архітектури далі розділяється на класи в залежності від фізичного способу організації пам'яті:

Таким чином, важливо відзначити, що величезне різноманіття архітектурних рішень для паралельних обчислювальних систем призводить до того, що створення ефективного і масштабується алгоритмічного та програмного додатків для них є трудомістким процесом [7].

У якості найбільш перспективної технології зараз розглядається програмування на GPU. Пристрій архітектури GPU можна коротко охарактеризувати як макроархітектуру обчислювального кластера, що реалізована в мікромасштабі. GPU складається з однорідних обчислювальних елементів зі спільною пам'яттю. Кожен обчислювальний елемент здатний виконувати тисячі потоків, перемикання між якими не має накладних витрат. Потоки можуть бути згруповані в блоки, які мають загальний кеш і швидку пам'ять, що розділяється і явно контролюється користувачем. Найбільш популярна реалізація даного механізму в поєднанні з розширеннями для процедурних мов програмування носить назву Compute Unified Device Architecture (CUDA) [12].

Порівняння CPU і GPU

Рисунок 2 — Порівняння CPU і GPU (анімація: 10 кадрів, 2 циклу повторення, 53 Кб)

Отже, CUDA — це програмно-апаратна архітектура паралельних обчислень, яка дозволяє істотно збільшити обчислювальну продуктивність завдяки використанню графічних процесорів фірми Nvidia. CUDA дозволяє програмістам реалізовувати на спеціальному спрощеному діалекті мови програмування Сі алгоритми, здійснимі на графічних процесорах, і включати спеціальні функції в текст програми на Сі. Архітектура CUDA дає розробнику можливість на свій розсуд організовувати доступ до набору інструкцій графічного прискорювача і управляти його пам'яттю. В архітектурі CUDA використовується модель пам'яті грід, кластерне моделювання потоків і SIMD-інструкції. CUDA застосовна не тільки для високопродуктивних графічних обчислень, але і для різних наукових обчислень.

Код CUDA

Рисунок 3 — Код CUDA

Висновки

Магістерська робота присвячена актуальній проблемі — застосуванню багатоядерних процесорів для вирішення наукових завдань. В рамках проведених робіт був виконаний огляд матеріалу та підготовка для подальшої практичної реалізації.

В якості майбутніх досліджень передбачається:

  1. Виконати реалізацію неявних блокових методів рішення задачі Коші з використанням різних технологічних платформ;
  2. Провести аналіз результатів, які будуть отримані при проведенні експериментів.

При написанні даного реферату магістерська робота ще не завершена. Остаточне завершення: грудень 2014 року. Повний текст роботи та матеріали по темі можуть бути отримані у автора або його керівника після вказаної дати.

Перелік посилань

  1. Grand Challenges: Science, Engineering and Societal Advances Requiring Networking and Information Technology Research and Development [Электронный ресурс] // Report by Interagency Working Group on Information the Technology Research and Development. — Режим доступа: http://www.nitrd.gov/pubs/200311_grand_challenges.pdf
  2. Забродин А.В. Параллельные вычислительные технологии. Состояние и перспективы // Материалы первой молодежной школы ”Высокопроизводительные вычисления и их приложения” — М.МГУ, 2000.
  3. Гергель В.П. Теория и практика параллельных вычислений // В.П. Гергель — М.: Мир, 2007 — 424 c.
  4. Хайрер Э., Нерсетт С., Ваннер. Г. Решение обыкновенных дифференциальных уравнений. Нежесткие задачи. // Э. Хайрер, С. Нерсетт, Г. Ваннер. —М.: Мир, 1990. — 512с. — ISBN 5–03–001179–X.
  5. Хайрер Э., Ваннер. Г. Решение обыкновенных дифференциальных уравнений. Жесткие задачи. // Э. Хайрер, Г. Ваннер. — М.: Мир, 1999. — 685с. — ISBN 5–03–003117.
  6. Голуб Д. Ван Лоун Ч. Матричные вычисления // Д.Голуб, Ван Лоун Ч. — М.: Мир, 1999. — 548 с.
  7. Холл Дж. Современные численные методы решения обыкновенных дифференциальных уравнений // Дж.Холл. — М.: Мир, 1979. — 312 с.
  8. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления // В.В. Воеводин, Вл.В. Воеводин — БХВ–Петербург, 2004 — 160 с.
  9. Фельдман Л.П., Назарова И.А. Современные параллельные методы численного решения задачи Коши // Фельдман Л.П., Назарова И.А. — Донецк: ДонНТУ, 2013. — 206с.
  10. Чисельні методи в інформатиці: підручник для вузів / Лев Петрович Фельдман, Анатолій Іванович Петренко, Ольга Анатоліївна Дмитрієва; За заг. ред. М.З. Згуровський. — Київ: BHV, 2006. — 479 с.
  11. Михайлова Т.В. Оценка эффективности высокопроизводительных вычислительных систем с использованием аналитических методов // Материалы 2-й международной научно-технической конференции " Моделирование и компьютерная графика", г. Донецк, 10-12 октября 2007 г.
  12. Боресков А.В., Харламов А.А., Марковский Н.Д., Микушин Д.Н., Мортиков Е.В., Мыльцев А.А., Сахарных Н.А., Фролов В.А. Параллельные вычисления на GPU. Архитектура и программная модель CUDA: Учеб. пособие / А.В. Боресков и др. Предисл.: В.А. Садовничий. — М.: Издательство Московского университета, 2012. — 336 с.