Розподілене програмування

Гайсарян, Інститут системного програмування РАН

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

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

розподілене програмування у малому;

розподілене програмування у великому;

розподілені прикладні програмні системи

Розподілене програмування у малому пов'язані з паралельним виконанням операторів однієї програми (наприклад, паралельним виконанням циклів). Технологія розробки розподілених програм пов'язана з реалізацією комунікаційних пакетів, мов мов програмування та бібліотек, що полегшують використання таких пакетів. Прикладами комунікаційних пакетів можуть бути такі широко використовувані пакети як PVM і MPI. З мов, що спираються на ці пакети, слід виділити насамперед HPF/2 (High Performance Fortran, version 2) і мову, розроблену в ІСП РАН, - mpC. Серед численних бібліотек найбільш цікаві різні бібліотеки алгебри (наприклад, ScalaPack), а також бібліотеки, що вводять паралельні конструкції в стандартні мови програмування (одна з таких бібліотек DPJ - Data Parallel Java - розробляється в ІСП РАН).

Розподілене програмування у великому полягає у розробці розподілених програмних систем. Останнім часомшироко використовують об'єктно-орієнтовані технології розробки таких систем. Найбільш відомі такі технології пов'язані із системою стандартів OMG (стандарт CORBA).

Розподілені прикладні програмні системи призначені для підтримки колективних розробок та інших видів колективної діяльності в різних областях. У таких системах використовуються новітні досягнення в галузі обчислювальної техніки та комунікацій. Прикладом такої системи може бути система POLITeam (GMD-FIT, Німеччина), основною метою якої є забезпечення оперативної роботи уряду Німеччини, розташованого у двох містах - Берліні та Бонні, в даний час є як апаратні, так і програмні засоби, що дозволили реалізувати та успішно експлуатувати таку систему. З проектом POLITeam пов'язаний один із провідних наукових напрямів GMD - "Системи підтримки спільних розробок на основі комунікації" (Communication and Cooperation Systems). Це один з науково-дослідних і прикладних напрямків сучасної інформатики, що інтенсивно розвиваються. Широко відомі такі системи для організації спільної роботи як система Totem, розроблена в Університеті Санта-Барбара, Каліфорнія, США, система Transis, розроблена в Університеті м. Єрусалима, Ізраїль, система Horus Корнельського Університету (США) та багато інших. При розробці та реалізації перерахованих систем застосовувалися різні підходи, що дозволяє розробити їхній аналітичний огляд з метою вибору найбільш дешевого та прийнятного підходу. Це стосується й інструментальних програмних засобів, що використовуються для реалізації систем підтримки спільних розробок. Одним із широко відомих інструментальних засобів, що використовуються при розробці та реалізації таких систем, є пакетRampart Toolkit, розроблений в AT&T Bell Laboratories, Нью-Джерсі, США. Для реалізації системи підтримки спільних розробок у рамках проекту POLITeam використовувалася інша не менш відома інструментальна система LinkWorks фірми Digital Equipment Corporation, США.