Інструментальні засоби моделювання гетерогенних середовищ заснованих на відеографічних прискорювачах
Запропоновані архітектура гнучкого та розширюваного інструментарію моделювання гетерогенних Грід-систем з відеографічними прискорювачами gpusim на базі Java-фреймворку GridSim та розроблений на її основі прототип. Проведена перевірка адекватності та первинне дослідження моделі на прикладі конкретної...
Gespeichert in:
Datum: | 2013 |
---|---|
Hauptverfasser: | , , |
Sprache: | Ukrainian |
Veröffentlicht: |
Інститут програмних систем НАН України
2013
|
Schriftenreihe: | Проблеми програмування |
Schlagworte: | |
Online Zugang: | http://dspace.nbuv.gov.ua/handle/123456789/86657 |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
Zitieren: | Інструментальні засоби моделювання гетерогенних середовищ заснованих на відеографічних прискорювачах / І.В. Оконський, А.Ю. Дорошенко, К.А. Жереб // Проблеми програмування. — 2013. — № 1. — С. 107-115. — Бібліогр.: 17 назв. — укр. |
Institution
Digital Library of Periodicals of National Academy of Sciences of Ukraineid |
irk-123456789-86657 |
---|---|
record_format |
dspace |
spelling |
irk-123456789-866572015-09-26T03:01:41Z Інструментальні засоби моделювання гетерогенних середовищ заснованих на відеографічних прискорювачах Оконський, І.В. Дорошенко, А.Ю. Жереб, К.А. Прикладні засоби програмування та програмне забезпечення Запропоновані архітектура гнучкого та розширюваного інструментарію моделювання гетерогенних Грід-систем з відеографічними прискорювачами gpusim на базі Java-фреймворку GridSim та розроблений на її основі прототип. Проведена перевірка адекватності та первинне дослідження моделі на прикладі конкретної задачі для симуляції на розробленому прототипі. 2013 Інструментальні засоби моделювання гетерогенних середовищ заснованих на відеографічних прискорювачах / І.В. Оконський, А.Ю. Дорошенко, К.А. Жереб // Проблеми програмування. — 2013. — № 1. — С. 107-115. — Бібліогр.: 17 назв. — укр. 1727-4907 http://dspace.nbuv.gov.ua/handle/123456789/86657 004.424 uk Проблеми програмування Інститут програмних систем НАН України |
institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
collection |
DSpace DC |
language |
Ukrainian |
topic |
Прикладні засоби програмування та програмне забезпечення Прикладні засоби програмування та програмне забезпечення |
spellingShingle |
Прикладні засоби програмування та програмне забезпечення Прикладні засоби програмування та програмне забезпечення Оконський, І.В. Дорошенко, А.Ю. Жереб, К.А. Інструментальні засоби моделювання гетерогенних середовищ заснованих на відеографічних прискорювачах Проблеми програмування |
description |
Запропоновані архітектура гнучкого та розширюваного інструментарію моделювання гетерогенних Грід-систем з відеографічними прискорювачами gpusim на базі Java-фреймворку GridSim та розроблений на її основі прототип. Проведена перевірка адекватності та первинне дослідження моделі на прикладі конкретної задачі для симуляції на розробленому прототипі. |
author |
Оконський, І.В. Дорошенко, А.Ю. Жереб, К.А. |
author_facet |
Оконський, І.В. Дорошенко, А.Ю. Жереб, К.А. |
author_sort |
Оконський, І.В. |
title |
Інструментальні засоби моделювання гетерогенних середовищ заснованих на відеографічних прискорювачах |
title_short |
Інструментальні засоби моделювання гетерогенних середовищ заснованих на відеографічних прискорювачах |
title_full |
Інструментальні засоби моделювання гетерогенних середовищ заснованих на відеографічних прискорювачах |
title_fullStr |
Інструментальні засоби моделювання гетерогенних середовищ заснованих на відеографічних прискорювачах |
title_full_unstemmed |
Інструментальні засоби моделювання гетерогенних середовищ заснованих на відеографічних прискорювачах |
title_sort |
інструментальні засоби моделювання гетерогенних середовищ заснованих на відеографічних прискорювачах |
publisher |
Інститут програмних систем НАН України |
publishDate |
2013 |
topic_facet |
Прикладні засоби програмування та програмне забезпечення |
url |
http://dspace.nbuv.gov.ua/handle/123456789/86657 |
citation_txt |
Інструментальні засоби моделювання гетерогенних середовищ заснованих на відеографічних прискорювачах / І.В. Оконський, А.Ю. Дорошенко, К.А. Жереб // Проблеми програмування. — 2013. — № 1. — С. 107-115. — Бібліогр.: 17 назв. — укр. |
series |
Проблеми програмування |
work_keys_str_mv |
AT okonsʹkijív ínstrumentalʹnízasobimodelûvannâgeterogennihseredoviŝzasnovanihnavídeografíčnihpriskorûvačah AT dorošenkoaû ínstrumentalʹnízasobimodelûvannâgeterogennihseredoviŝzasnovanihnavídeografíčnihpriskorûvačah AT žerebka ínstrumentalʹnízasobimodelûvannâgeterogennihseredoviŝzasnovanihnavídeografíčnihpriskorûvačah |
first_indexed |
2025-07-06T14:09:15Z |
last_indexed |
2025-07-06T14:09:15Z |
_version_ |
1836906925234585600 |
fulltext |
Прикладні засоби програмування та програмне забезпечення
© І.В. Оконський, А.Ю. Дорошенко, К.А. Жереб, 2013
ISSN 1727-4907. Проблеми програмування. 2013. № 1 107
УДК 004.424
І.В. Оконський, А.Ю. Дорошенко, К.А. Жереб
ІНСТРУМЕНТАЛЬНІ ЗАСОБИ МОДЕЛЮВАННЯ
ГЕТЕРОГЕННИХ СЕРЕДОВИЩ ЗАСНОВАНИХ НА
ВІДЕОГРАФІЧНИХ ПРИСКОРЮВАЧАХ
Запропоновані архітектура гнучкого та розширюваного інструментарію моделювання гетерогенних
Грід-систем з відеографічними прискорювачами gpusim на базі Java-фреймворку GridSim та розробле-
ний на її основі прототип. Проведена перевірка адекватності та первинне дослідження моделі на прик-
ладі конкретної задачі для симуляції на розробленому прототипі.
Вступ
В даний час Грід-системи все бі-
льше використовуються як в наукових, так
і в промислових застосуваннях. Вони
дозволяють ефективно використовувати
існуючі різнорідні паралельні ресурси
та вирішувати задачі великих обсягів,
які не можуть бути вирішені на окремих
паралельних комплексах. Проте Грід-
системи є складними як для створення
та конфігурування, так і для програму-
вання. При цьому підбір найбільш оп-
тимальних конфігурацій як для структу-
ри самого Грід-середовища, так і для за-
дач, що виконуються на ньому, недоці-
льно здійснювати на реальних системах
через великі витрати та необхідність ко-
ординації різних учасників Грід-проектів.
Тому актуальною є задача моделювання,
яка дозволяє без витрат на створення,
підтримку та використання реальної Грід-
системи провести на моделі необхідні
експерименти, результати яких не будуть
суттєво відрізнятися від оригіналу.
Також нині активно зростає інте-
рес до використання для обчислень графі-
чних прискорювачів (відеоадаптерів, GPU)
через їх високу продуктивність у порів-
нянні зі звичайними процесорами (CPU),
доступності, а також розвитку відповідно-
го інструментарію розробника. Зокрема,
актуальними є задачі моделювання пара-
лельних систем (кластерів, Грід-систем),
окремі вузли яких мають гетерогенний ха-
рактер і містять як CPU, так і GPU-
компоненти.
У даній роботі запропонована
архітектура гнучкого і розширюваного се-
редовища моделювання гетерогенних Грід-
систем gpusim на базі Java-фреймворку
GridSim. Особливістю системи є обраний
підхід до опису гетерогенної паралельної
системи, при якому CPU і GPU-
компоненти розглядаються як окремі вузли
віртуального Грід-середовища. Описано
прототип інструментальної системи для
моделювання, заснований на використанні
запропонованої архітектури. Описано ме-
ханізм налаштування системи на пара-
метри конкретної паралельної системи за
рахунок автоматизованого підбору пара-
метрів моделі. Експерименти показують
достатню точність побудованої моделі для
великих розмірів вхідних даних.
Матеріал даної роботи організова-
ний наступним чином. У розділі 1 наведе-
но огляд існуючих рішень і пояснення не-
обхідності розробки gpusim. У розділі 2
поставлені задачі, які має вирішувати
gpusim і наведена її архітектура. У розді-
лах 3 та 4 обрана конкретна задача (блоч-
ний алгоритм множення матриць), вико-
нання якої буде симулюватись на моделі,
та описаний експериментальний модуль,
який реалізує необхідну функціональність.
Роботу завершують висновки та напрямки
подальшої роботи.
1. Огляд існуючих рішень
На сьогоднішній день активно ве-
дуться дослідження у напрямі моделюван-
ня Грід-систем, розроблено досить багато
Прикладні засоби програмування та програмне забезпечення
108
інструментальних засобів. Розробляються
як аналітичні, так і імітаційні моделі Грід-
систем, при цьому розглядаються різні ас-
пекти їх функціонування.
Аналітичні моделі дозволяють
отримати загальні теоретичні результати
для широкого діапазону можливих пара-
метрів Грід-середовища, хоча вони абстра-
гуються від багатьох реальних деталей фу-
нкціонування. Зокрема, в [1] описано мо-
дель продуктивності Грід-системи, що
складається з окремих компонентів, про-
дуктивність яких вважається відомою.
Аналітична модель дозволяє обчислити
стаціонарний стан системи для заданого
вхідного потоку задач та параметрів окре-
мих вузлів. Аналогічний підхід запропоно-
вано в [2]. Описується мережева взаємодія
між обчислювальними вузлами, при цьому
враховується різнорідність вузлів та
з’єднань. Модель розглядає два рівні взає-
модії: між Грід-вузлами, які є кластерами,
та всередині одного кластера. В роботі [3]
моделюється обчислювальна мережа, що
містить як процесори загального призна-
чення (CPU), так і спеціалізовані реконфі-
гуровані процесори (FPGA). Аналітична
модель описує структуру окремих вузлів:
чистих CPU- або FPGA-вузлів, а також гі-
бридних вузлів, що одночасно містять CPU
та FPGA. При цьому моделюються обчис-
лювачі та ієрархія пам’яті в такому вузлі.
Також був запропонований підхід
моделювання Грід на основі апарата мереж
Петрі [4]. Даний підхід та його інструмен-
тарій дозволяє детально розглянути внут-
рішні процеси і взаємодії ключових вузлів
Грід, однак є складним у налаштуванні та
завданні вхідних даних, і не підходить для
Грід зі складною або великою внутріш-
ньою структурою.
Для більш точних вимірів продук-
тивності Грід-систем при конкретних зна-
ченнях параметрів використовуються імі-
таційні моделі. Вони дозволяють отримати
довільну точність моделювання за рахунок
врахування всіх необхідних деталей. Але
на практиці слід досягати балансу між то-
чністю моделювання та обчислювальною
складністю.
Серед існуючих напрацювань слід
виділити імітаційну модель, розроблену
для дослідження ефективності методів
планування ресурсів для різних інтенсив-
ностей потоків завдань в Грід [5] і її про-
грамну реалізацію GRID_Scheduler_Model.
Моделюється гомогенна Грід-система, і
для підтримки гетерогенних Грід модель
потребує доопрацювання, а розширюва-
ність у реалізації не передбачена.
На даний момент існує кілька
інструментаріїв (фреймворків), які до-
зволяють розробнику на їх основі ство-
рити свою модель Грід і проводити на
ній експерименти. Огляд і порівняльний
аналіз найбільш функціональних та ста-
більних фреймворків MicroGrid, OptorSim,
SimGrid, GridSim, Bricks наведено в [6, 7].
На підставі порівняння можна зробити ви-
сновок, що найбільш зручним і функціона-
льним є GridSim [8], фреймворк для мови
програмування Java, який в якості симуля-
ційного ядра використовує бібліотеку
SimJava [9].
Проблеми моделювання часу вико-
нання задач на GPU також розглянуті в лі-
тературі. Зокрема запропоновано детальну
аналітичну модель [10], емпіричну модель
часу виконання та споживання енергії [11],
а також модель порівняння продуктивності
CPU та GPU [12]. Роботи [11, 12] викорис-
товують емулятор Ocelot [13] для враху-
вання деталей виконання задач на GPU.
Такі дослідження дозволяють досягти ве-
ликої точності моделювання, але потребу-
ють значних ресурсів для виконання моде-
лі. Також вони не передбачають вбудову-
вання в моделі Грід-середовища. Дана ро-
бота продовжує дослідження, розпочаті в
[14], з побудови досить простої моделі ви-
конання задач на GPU, яка дозволила б
отримати точність достатню для прийняття
важливих рішень з розподілу навантажен-
ня в Грід-середовищі.
2. Опис розробленої системи
– gpusim
2.1. Опис основних принципів ро-
боти з фреймворком GridSim. Фрейм-
ворк GridSim для завдання моделі Грід ви-
користовує ряд сутностей [9], найбільш
важливими серед яких є:
Прикладні засоби програмування та програмне забезпечення
109
користувач Грід (GridUser), наща-
док класу GridSim – який задає сценарій
симуляції;
ресурс Грід (GridResource) – агре-
гує структуру і властивості певного ресур-
су (вузла Грід-мережі). Структуру ресурсу
визначає список ЕОМ (MachineList), про-
пускна здатність з'єднання між ЕОМ, а та-
кож абстрактна вартість використання ре-
сурсу в секунду. Кожна ЕОМ складається з
однакових обчислювальних елементів
(PE), і характеризується кількістю PE і їх
рейтингом у MIPS;
завдання (Gridlet) – описує обчис-
лювальну задачу, виконувану на PE. Пара-
метрами Gridlet є розмір вхідних і вихід-
них даних в байтах та обсяг робіт, необ-
хідний для виконання (Length) в MI
(million instructions).
Паралельна система з CPU + GPU за
допомогою сутностей GridSim може бути
представлена у вигляді ресурсу з двома
ЕОМ: перша ЕОМ визначає кількість ядер
CPU та їх рейтинг, друга – кількість ядер
GPU та їх рейтинг. Ядра CPU та GPU мо-
делюються у вигляді обчислювальних еле-
ментів (PE). Моделювання CPU і GPU-
компонентів з використанням базових сут-
ностей GridSim дозволить надалі спрости-
ти включення розробленої моделі в більш
складні конфігурації гетерогенних систем,
зокрема кластери і Грід-системи з GPU-
вузлами.
Для проведення симуляції необ-
хідно ініціалізувати GridSim, створити і
налаштувати сутності ресурсів і завдань.
Після старту симуляції необхідно в ме-
тоді run() об'єкта-нащадка GridSim ви-
конати необхідний сценарій розподілу
завдань між ресурсами. У процесі вико-
нання сценарію GridSim надає користу-
вачу можливість збору та обробки поточ-
них статистичних даних про час виконання
кожного із завдань, завантаженості ресур-
сів у певний момент часу тощо. Візуаліза-
ція результатів у системі GridSim не пе-
редбачена і має забезпечуватись зовнішні-
ми компонентами.
2.2. Задачі gpusim. Враховуючи
вищевикладене, прийнято рішення на ос-
нові Java-фреймворку GridSim розробити
гнучке і розширюване середовище для мо-
делювання Грід. Система gpusim має нада-
вати можливість максимально гнучко за-
давати структуру як Грід-середовища (кі-
лькість вузлів, характер з'єднань, наявність
спеціалізованих вузлів, у тому числі таких,
що містять GPU), так і навантаження (кі-
лькість завдань різних типів, можливість їх
виконання на різних вузлах, розміри вхід-
них даних). Також система моделювання
дозволяє проводити дослідження заданої
Грід-конфігурації змінюючи її параметри.
Однак чим більш універсальним є
інструмент, тим складніше він у викорис-
танні для конкретних завдань. Враховуючи
це, основною метою, крім гнучкості та ро-
зширюваності, для gpusim є простота ви-
користання кінцевим користувачем та нао-
чність відображення результатів симуляцій
для конкретних завдань.
2.3. Опис архітектури gpusim. Для
досягнення розширюваності та гнучкості і,
разом з тим простоти, прийнято рішення
розділити систему на кілька компонентів
(рис. 1).
Simulator
Front-end.
PluginsHost
Front-end.
ExperimentModule1
Front-end.
QLogger
Front-end. Tools
Front-end. View
Front-end.
ConstsOptimizer
Front-end. Core
IExperimentModule
«uses»
1
1
1
1
«uses»
«uses»
Рис. 1. Діаграма компонентів gpusim
Симулятор gpusim – оболонка на
мові програмування Java над фреймворком
GridSim, основною задачею якої є налаш-
тування GridSim на основі даних конфігу-
раційного файлу, запуск симуляції, збір і
вивід статистики у файл.
Front-end компонент – написаний
на мові програмування С++ із використан-
ням фреймворку Qt версії 4.8.3 [15]. Вклю-
чає до себе модуль логування QLogger, ін-
струментальне ядро, виконавче ядро, мо-
дуль оптимізації констант, сервер плагінів
і набір експериментальних модулів.
Прикладні засоби програмування та програмне забезпечення
110
Експериментальним модулем є
плагін для front-end, який інкапсулює у со-
бі всі засоби для роботи з конкретною за-
дачею: надає графічний інтерфейс корис-
тувача для введення/виведення вхід-
них/вихідних даних, генератор конфігура-
ції для симулятора, а також обробник ста-
тистики. Експериментальний модуль має
ряд попередньо встановлених параметрів,
які не є специфічними для окремих експе-
риментів, проте мають суттєвий вплив на
результати симуляції (ці параметри описа-
ні у розділі 3.2). На даний момент розроб-
лений один експериментальний модуль
MatrixMultiply, що надає можливість дос-
лідження задачі множення матриць за до-
помогою блочного алгоритму на моделі
паралельної системи, що складається з
CPU і GPU.
Сервер плагінів – віртуальний сер-
вер, який вирішує завдання завантаження і
виконання плагінів у front-end компоненті.
Інструментальне ядро – набір до-
поміжного функціонала для спрощення
роботи з даними та іншими модулями.
Модуль логування QLogger – ін-
капсулює функції логування та надає ко-
ристувачу модуля зручний інтерфейс для
запису повідомлень до лог-файлу та до
консолі. Використовує як основу механізм
налагоджувальних повідомлень Qt-модуля
QDebug.
Виконавче ядро – модуль, основна
задача якого – надання іншим модулям
функціонала для роботи з симулятором,
його налаштування та обробки статистики.
Модуль оптимізації констант при-
значений для підвищення точності симу-
ляції шляхом автоматизації проведення
серій симуляцій з різними встановленими
параметрами одного з експериментальних
модулів. Даний модуль, на основі конфігу-
раційного файлу, що містить імена пара-
метрів, їх початкові, кінцеві значення, а
також величину і спосіб інкрементування
кожного з параметрів генерує набір мож-
ливих поєднань значень параметрів, потім
послідовно запускає симуляцію з кожним
із наборів параметрів і порівнює результа-
ти симуляції з результатами експерименту,
проведеного на реальній паралельній сис-
темі. Якщо результат останньої проведеної
симуляції має меншу розбіжність з резуль-
татами експерименту на реальній системі –
то набір попередньо встановлених параме-
трів, відповідний останній симуляції, вва-
жається найкращим.
2.4. Взаємодія модулів gpusim. На
рис. 2 показана діаграма послідовностей
для найбільш частого варіанта викорис-
тання gpusim – проведення одного експе-
рименту.
Рис. 2. Діаграма послідовностей
проведення експерименту в
gpusim
Експериментом gpusim є набір си-
муляцій, кожна з яких включає конфігура-
цію для симулятора і статистику, отриману
в результаті його роботи.
Спочатку сервер плагінів заванта-
жує необхідний експериментальний мо-
дуль, потім запитує в нього віджет, який
дозволяє кінцевому користувачу задати
вхідні дані для експерименту. Після цього
сервер плагінів запитує у експерименталь-
ного модуля експеримент, створений на
основі даних, введених кінцевим користу-
Прикладні засоби програмування та програмне забезпечення
111
вачем. Експериментальний модуль частину
роботи делегує виконавчому ядру. Потім
створений експеримент передається через
виконавчий модуль на виконання симуля-
тору. Виконавче ядро асинхронно передає
дані про прогрес експерименту, які потім
відображаються в графічному інтерфейсі.
Після закінчення роботи симулятор
формує файл вихідних даних, який чита-
ється виконавчим ядром і передається че-
рез сервер плагінів на обробку до експе-
риментального модуля.
Після обробки вихідних даних у ек-
спериментального модуля запитується ві-
джет, що відображає вихідні дані, і поси-
лається на виконання графічному інтер-
фейсу.
3. Моделювання задачі
множення матриць
3.1. Задача множення матриць
блочним алгоритмом. Для перевірки точ-
ності та актуальності розробленого сере-
довища моделювання гетерогенних Грід-
систем обрана задача множення матриць за
допомогою блочного алгоритму [14].
Результатом множення матриці A
розмірністю nm й матриці B роз-
мірності ln є матриця C розмірно-
сті lm , кожен елемент якої обчислюється
наступним чином:
1
0
n
k
kjikij bac , mi ,..,0 , lj ,..,0 .
Цей алгоритм вимагає lnm опе-
рацій множення й додавання елементів ма-
триць. При множенні квадратних матриць
розмірності nn кількість виконаних опе-
рацій має порядок )( 3nO . Оскільки для об-
числення одного елементу результуючої
матриці потрібні тільки відповідні рядок та
стовпець матриць, що множаться, цей ал-
горитм природно розділяється на незалеж-
ні потоки обчислень.
Якщо ми множимо дві квадратні
матриці розмірністю nn , то результуюча
матриця C буде тієї самої розмірності, що
й вхідні матриці A і B . Спочатку матриця
C розбивається на прямокутні блоки роз-
мірністю pk . Кожен з цих блоків обчис-
люється незалежно окремою задачею, для
чого потрібно передати блок матриці A
розмірністю kn й відповідний блок мат-
риці B розмірністю np .
Перевагою такого алгоритму є те,
що задачу можна розбивати на довільну
кількість підзадач, а не тільки на квадратні
блоки. Також відсутність будь-яких залеж-
ностей між підзадачами дозволяє ефектив-
но виконувати обчислення у випадку коли
кількість наявних процесорів значно мен-
ша за кількість підблоків – у такому випа-
дку підзадачі отримують нові блоки «за
готовністю». Недоліком є додаткові витра-
ти пам’яті, які виникають при частковому
дублюванні вхідних даних для різних пі-
дзадач. Загальна кількість операцій не від-
різняється від послідовного алгоритму й
має порядок )( 3nO .
В роботі [14] також побудовано ем-
піричну модель часу виконання блочного
алгоритму на GPU. Ця модель має наступ-
ний характер: 2 3
. .gpu st global ld globalT N T N T ,
де .ld globalT та .st globalT – параметри, що ви-
значають час завантаження та збереження
даних при роботі з глобальною пам'яттю
GPU. Ці параметри є частиною опису мо-
делі й мають підбиратись для конкретних
обчислювальних вузлів експерименталь-
ним шляхом.
3.2. Експериментальний модуль
множення матриць блочним алгорит-
мом. На основі емпіричної моделі часу ви-
конання задачі множення матриць на GPU
[14] були розроблені генератор експериме-
нтів симулятора і обробник статистики, що
входять до складу експериментального
модуля MatrixMultiply. Вхідними парамет-
рами генератора є розмір блоку, мінімаль-
ний і максимальний розмір матриці, а та-
кож інкремент розміру матриці. Оброблю-
вач статистики отримує вихідні дані симу-
лятора, перетворює їх для наочного відо-
браження кінцевому користувачу, а також
порівнює час кожної з симуляцій з резуль-
татами експерименту на реальній парале-
льній системі.
Генератор має ряд попередньо вста-
новлених параметрів, що не відносяться
безпосередньо до експерименту, але впли-
вають на час симуляції:
Прикладні засоби програмування та програмне забезпечення
112
кількість обчислювальних елемен-
тів CPU і GPU, а також їх рейтинги в оди-
ницях MIPS (million instructions per
second): cpuMachinePECount, cpuMaсhine-
PERating, gpuMaсhinePECount, gpuMaсhi-
nePERating;
пропускна здатність підключення
між ресурсами і розподільниками завдань:
resourceBaudRate, linkBaudRate;
вартість використання ресурсів
Грід – resourceCostPerSec;
вартість операцій роботи з па-
м’яттю: завантаження та збереження да-
них: loadOperationCost, saveOperationCost.
Дані параметри залежать від внут-
рішньої структури Грід-системи, відповід-
ної моделі, і для проведення подальших
досліджень з моделлю, необхідно знайти їх
точні значення за допомогою модуля оп-
тимізації констант.
4. Перевірка адекватності
моделі та аналіз отриманих
результатів
4.1. Перевірка адекватності мо-
делі. Для перевірки адекватності створеної
моделі проведений експеримент, описа-
ний в [14] на реальній паралельній системі,
що складається з CPU Intel Core i7 3770k
(4 Core, HT, 3.5 GHz, Smart Cache
8MB)[16] і GPU GeForce 650 GTX (384
CUDA Cores, 1058 MHz, 86,4 GFLOPS
FP64, 1024 MB) [17].
Результатом експерименту є залеж-
ність часу виконання множення матриць
блочним алгоритмом з урахуванням пере-
силки даних від розміру матриці. Через
обмеження, що накладаються операційною
системою Windows на час завантаженості
GPU, отримані результати для діапазону
розміру матриць [16; 3760] із
інкрементом 16.
Для підстроювання попередньо
встановлених параметрів генератора екс-
перименту множення матриць блочним
алгоритмом використовувався модуль оп-
тимізації констант. Для перевірки адекват-
ності моделі і точності підбору встановле-
них параметрів, модуль оптимізатора на-
лаштований на роботу в діапазоні розмірів
матриць [512; 1552] із інкрементом 80.
Спочатку отримані значення попе-
редньо встановлених параметрів у першо-
му наближенні. Значення кожного з пара-
метрів змінювалося на порядок, при цьому
значення решти параметрів залишалися без
змін:
cpuMachinePECount: [1; 1000], ве-
личина інкремента – один порядок, краще
значення – 10;
cpuMachinePERating: [1; 100000],
величина інкремента – один порядок, кра-
ще значення – 1000;
gpuMachinePECount: [64; 1024],
величина інкремента – 64, краще значення
– 384;
gpuMachinePERating: [1; 100000],
величина інкремента – один порядок, кра-
ще значення – 10000;
resourceBaudRate: [1e+01; 1e+13],
величина інкремента – два порядки, краще
значення – 1e05;
resourceCostPerSec: [1; 1000], ве-
личина інкремента – один порядок, краще
значення – 1;
linkBaudRate: [1e+01; 1e+13], ве-
личина інкремента – два порядки, краще
значення – 1e05;
loadOperationCost: [1e-05; 1e03],
величина інкремента – один порядок, кра-
ще значення – 1e-04;
saveOperationCost: [1e-05; 1e03],
величина інкремента – один порядок, кра-
ще значення – 1e-03.
В ході експерименту виявлено, що
параметри cpuMachinePECount, cpuMachi-
nePERating, resourceCostPerSec практично
або зовсім не впливають на час симуляції,
це пояснюється тим, що всі обчислення
проводяться на GPU, а оскільки Грід-ресурс
один, то яка б не була його вартість вико-
ристання в секунду , розподілити завдання
на інший не представляється можливим.
Також слід зазначити, що параметри re-
sourceBaudRate і linkBaudRate незначно
впливають на час симуляції при значеннях
до 1e05. Значення даних параметрів більші
за 1e05 не мають впливу на час симуляції,
це пояснюється малим обсягом даних, що
пересилаються між елементами Грід.
Вищеописаний експеримент повто-
рений для параметрів loadOperationCost і
Прикладні засоби програмування та програмне забезпечення
113
saveOperationCost із уточненим діапазо-
ном: [1e-04; 1e-03] та величиною інкреме-
нта 1e-04, оскільки вони мають найбіль-
ший вплив на час симуляції.
Далі методом повного перебору всіх
можливих комбінацій параметрів з кроком
1e-06 (приблизно 1000) в околі оптималь-
них значень в першому наближенні, отри-
мані точні значення встановлених параме-
трів. Ці значення відповідають характерис-
тикам реальної паралельної системи, на
якій вироблялися обчислення:
cpuMachinePECount = 8;
cpuMachinePERating = 1000;
gpuMachinePECount = 384;
gpuMachinePERating = 10000;
resourceBaudRate = 1e+10;
resourceCostPerSec = 1;
linkBaudRate = 1e+10;
loadOperationCost = 1.8e-4;
saveOperationCost = 1.936e-3.
4.2. Аналіз отриманих результатів. На
рис. 3 показано графіки часу виконання
реального експерименту (пунктирна лі-
нія) і симуляції (суцільна лінія), а та-
кож значення відносної похибки симу-
ляції для діапазону розміру матриць
[512; 1552] із інкрементом 80 (тобто для
тих даних, для яких проводилось нала-
штування параметрів).
Рис. 3. Порівняння часу виконання реаль-
ного експерименту і симуляції
для діапазону розміру матриці
[512; 1552] з інкрементом 80
На рис. 4 показано ті ж графіки для
діапазону розміру матриць [512; 3760] із
інкрементом 16 (для всіх практично зна-
чущих даних, що отримані шляхом вико-
нання на реальному ресурсі).
Як видно на графіках, при великих
розмірах матриці (2000–3000 елементів),
відносна похибка стабілізується і стано-
вить 3–4 %, що є прийнятною точністю для
подібних систем.
Рис. 4. Порівняння часу виконання реаль-
ного експерименту і симуляції
для діапазону розміру матриці
[512; 3760] з інкрементом 16
У ході дослідження моделі виявлені
дві особливості. При малих розмірах мат-
риці розбіжність між результатами симу-
ляції і реального експерименту істотно бі-
льше ніж при великих (рис. 5). Це поясню-
ється обмеженням фреймворку GridSim:
симуляція не може тривати менше порого-
вого часу 2 мс. Крім того, для малих роз-
мірів матриць складно точно виміряти час
виконання на GPU. Також для малих роз-
мірів на час виконання починають вплива-
ти додаткові параметри, не описані в мо-
делі. Тому моделі, описані в [14], також не
працюють для малих розмірів матриць.
Слід зазначити, що використання GPU для
множення матриць малих розмірів є неви-
правданим, через істотні накладні витрати
на передачу даних і ініціалізацію. Тому
для практично значущих випадків дана ро-
збіжність не спостерігається.
Прикладні засоби програмування та програмне забезпечення
114
Рис. 5. Порівняння часу виконання реаль-
ного експерименту і симуляції для
діапазону розміру матриці [16; 512]
з інкрементом 16
Друга особливість полягає у різкому під-
вищенні часу симуляції при певних зна-
ченнях розміру матриці, при відсутності
аналогічного підвищення в експеримента-
льних даних (рис. 6). Цю особливість мож-
на пояснити збільшенням накладних ви-
трат, пов'язаних із використанням додат-
кового обчислювального елемента (обчис-
лювального ядра) ресурсу Грід.
Рис. 6. Різке підвищення часу симуляції
при певних значеннях розміру ма-
триці
Висновки
У роботі запропонована архітектура
гнучкого, розширюваного і простого у ви-
користанні середовища моделювання гете-
рогенних Грід-систем на основі симуля-
ційного фреймворку GridSim. На основі
запропонованої архітектури розроблений
прототип середовища. Проведено експе-
риментальну перевірку розробленого про-
тотипу на задачі множення матриць за ра-
хунок порівняння реальних вимірів та мо-
дельного часу виконання. За допомогою
модуля оптимізації констант знайдена
конфігурація моделі, що має 3–4 % відхи-
лення результатів симуляції щодо резуль-
татів експериментів на реальній паралель-
ній системі CPU-GPU.
Розроблена система погано працює
для малих розмірів задач, що є недоліком,
який планується в майбутньому усунути.
Подальші дослідження в даному
напрямку передбачають підвищення точ-
ності і розширення функціональності си-
мулятора. Також планується дослідження
різних задач, зокрема для визначення мож-
ливості підбору параметрів для моделю-
вання заданого обчислювального вузла не-
залежно від задачі. Додатково ставиться
мета включення побудованої імітаційної
моделі окремого вузла CPU-GPU в більш
велику модель гетерогенного кластера або
Грід-системи із підтримкою відеографіч-
них прискорювачів.
1. Yongwei W., Likun L., Jiayin M., et al. An
analytical model for performance evaluation
in a computational grid // Proceedings of the
2007 Asian technology information program's
(ATIP's) 3rd workshop on High performance
computing in China: solution approaches to
impediments for high performance computing
(CHINA HPC '07). – 2007. – P. 145–151.
2. Javadi B., Abawajy J.H., Akbari M.K.,et al.
Analytical Network Modeling of Heterogene-
ous Large-Scale Cluster Systems // IEEE In-
ternational Conference on Cluster Computing.
Barcelona, September 25–28, 2006. – P. 1–9.
3. Nadeem M.F., Ahmadi M., Nadeem M., et al.
Modeling and Simulation of Reconfigurable
Processors in Grid Networks // Proceedings of
the 2010 International Conference on Recon-
figurable Computing and FPGAs
(RECONFIG '10). – 2007. – P. 226–231.
4. Шелестов А.Ю. Подходы и средства моде-
лирования GRID-систем обработки спут-
никовых данных // Проблеми програму-
вання. – 2008. – № 2–3. – С. 713–720.
Прикладні засоби програмування та програмне забезпечення
115
5. Минухин С.В., Знахур С.В. Исследование
эффективности методов планирования ре-
сурсов для различных интенсивностей по-
токов заданий в Грид // Радіоелектронні і
комп’ютерні системи. – 2012. – № 1 (53). –
С. 165–171.
6. Петренко А.І. Комп’ютерне моделювання
грід-систем // Электроника и связь. – 2010.
– № 5. – С. 40–48.
7. Кореньков В.В., Нечаевский А.В. Пакеты
моделирования DATAGRID // Системный
анализ в науке и образовании. – 2009. –
№ 1. – С. 1–15.
8. Sulistio A., Cibej U., Venugopal S., et al. A
toolkit for modelling and simulating data
Grids: an extension to GridSim // Concurren-
cy and Computation: Practice & Experience. –
2008. – Vol. 20, N 13. – P. 1591–1609.
9. GridSim: A Grid Simulation Toolkit for
Resource Modelling and Application
Scheduling for Parallel and Distributed
Computing [Электроний ресурс]. – Режим
доступу: http://www.buyya.com/gridsim/. –
01.11.2012 р.
10. Baghsorkhi S.S., Delahaye M., Patel S.J., et
al. An adaptive performance modeling tool
for GPU architectures // SIGPLAN Not. –
2010. – Vol. 45, N 5. – P. 105–114.
11. Hong S., Kim H. An integrated GPU power
and performance model // SIGARCH Comput.
Archit. News. – 2010. – Vol. 38, N 3. –
P. 280–289.
12. Kerr A., Diamos G., Yalamanchili S.
Modeling GPU-CPU workloads and systems
// Proceedings of the 3rd Workshop on
General-Purpose Computation on Graphics
Processing Units. – 2010. – P. 31–42.
13. Kerr A., Diamos G., Yalamanchili S. A
characterization and analysis of PTX kernels
// IEEE International Symposium on
Workload Characterization (IISWC 2009). –
2009. – P. 3–12.
14. Жереб К.А., Ігнатенко О.П. Моделювання
задачі множення матриць для відеографіч-
них прискорювачів // Матеріали конферен-
ції "Високопродуктивні обчислення" (HPC-
UA 2012). Київ, 08–10 жовтня 2012 р. –
С. 174–181.
15. Qt Developer Network [Электронний ре-
сурс]. – Режим доступу: http://qt-
project.org/. – 01.11.2012 г.
16. Intel Core i7-3770k Processor [Электронний
ресурс]. – Режим доступу:
http://ark.intel.com/products/65523. –
01.11.2012 г.
17. GeForce GTX 650 Specifications [Элект-
ронний ресурс]. – Режим доступу:
http://www.geforce.com/hardware/desktop-
gpus/geforce-gtx-650/specifications. –
01.11.2012 г.
Одержано 21.06.2012
Про авторів:
Оконський Ілля В'ячеславович,
студент факультету інформатики
та обчислювальної техніки,
кафедри автоматики i управління
в технічних системах НТУУ “КПІ”,
Дорошенко Анатолій Юхимович,
доктор фізико-математичних наук,
професор, завідувач відділу теорії
комп'ютерних обчислень Інституту
програмних систем НАН України,
Жереб Костянтин Анатолійович,
кандидат фізико-математичних наук,
науковий співробітник.
Місце роботи авторів:
Національний технічний університет
України "КПІ",
03056, Київ-56,
Проспект Перемоги, 37.
Тел.: (044) 236 7989,
Інститут програмних систем
НАН України,
03680, Київ-187,
Проспект Академіка Глушкова, 40.
Тел.: (044) 526 1538.
e-mail: logrus.work@gmail.com,
dor@isofts.kiev.ua
zhereb@gmail.com
mailto:logrus.work@gmail.com
mailto:dor@isofts.kiev.ua
mailto:zhereb@gmail.com
|