ДонНТУПортал магистров
Биография Афтореферат Библиотека Ссылки по теме Отчет о поиске Индивидуальное задание


ОРГАНІЗАЦІЯ ОБМІНУ НА ГЕТЕРОГЕНИХ КЛАСТЕРАХ: CORBA ЧИ MPI? ПОРІВНЯЛЬНИЙ АНАЛІЗ.


Бабенко І.В., Теплинський К.С.


Донецький національний технічний університет



1. Мета доповіді


Поширені та досить потужні, сучасні персональні комп’ютери (ПК) дедалі більше обертають на себе увагу як на засіб виконання розповсюджених обчислень. ПК, що об’єднані локальною мережею підприємства чи установи, складають нині дешевий та досить потужний обчислювальний ресурс – так званий кластер.


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


У цій доповіді розглянуті найбільш поширені представники процедурно та об’єктно-орієнтованих підходів: MPI та CORBA відповідно. Реалізації цих стандартів існують для різних операційних систем, та для різних мов програмування.



2. Тестування продуктивності


Бібліотека MPI здобула популярність завдяки своїй простоті та підтримці великої кількості програмних та апаратних платформ. Вона ефективно реалізує процедурно-орієнтований підхід до організацій обміну даними між процесами. За допомогою неї можна досягнути продуктивності передачі даних близької до максимальної. Саме тому її взято у якості взірця для порівняння з об’єктно-орієнтованим стандартом CORBA.


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


У якості тестових даних використовувались масиви змінюваної довжини елементів типу double, що представлені у природному для цієї бібліотеки форматі. Так, для процедурно-орієнтованої MPI, природним форматом можна вважати буфер пам’яті, що містить цей масив. Для об’єктно-орієнтованої CORBA природнім шляхом для операції над векторами змінних був взятий шаблонний клас-контейнер sequence.


Для тестування використовувалися безкоштовні версії бібліотек MPI: MPICH2 та COBBA: omniORB версії 4.1. До складу кластера входили машини на базі Intel Core Solo 1,66 MHz (Windows XP Home Edition), Intel Petnium 2,1 MHz (Suse Linux 9.2) та Intel Petnium 1,9 MHz (Suse Linux 9.2), що об’єднані локальною мережею за технологією Ethernet 10/100.


Як видно з нижченаведеного графіка, реалізація бібліотеки omniORB 4.1 для обміну даних між комп’ютерами під керуванням різних операційних систем: Windows та Linux, показала приблизно однакову ефективність. Середня швидкість передачі майже втричі поступається MPI. Слід також зазначити неочікуваний спад продуктивності реалізації omniORB 4.1 для операційної системи Linux при розмірі даних 256 Кб.




Графік локального обміну побудований у двох координатних масштабах. Координатна вісь ліворуч відповідає результату тестування бібліотек у операційній системі Linux. Тестування показують майже п’ятиразову перевагу MPI у швидкості та помітний спад продуктивності бібліотек при обсязі даних більше за 64 Кб, що певно пояснюється обмеженням розміру буфера механізму передачі даних в Linux. Продуктивність omniORB в Windows виявилася надзвичайно низькою в порівнянні з Linux (координатна вісь праворуч), проте стабільно зростаючою. Слід також зауважити, що при передачі статичних масивів в omniORB при локальному обміні спостерігається збільшення продуктивності приблизно до 30%.





3. Висновки


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



Література


[1] Дж. Либерти «С++ Энциклопедия пользователя» 590 стр., ДиаСофт, 2001


[2] http://omniorb.sourceforge.net/


[3] http://www-unix.mcs.anl.gov/mpi/mpich2