Метакомпьютер і метакомп'ютингу

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

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

На відміну від традиційного комп'ютера метакомпьютер має цілий набір властивих тільки йому особливостей.

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

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

· Неоднорідність. Різні операційні системи, різні системи команд і формати представлення даних, різна завантаження і канали, принципово різні архітектури, починаючи з домашніх персональних комп'ютерів і навчальних класів і закінчуючи найпотужнішими векторними, масивно-паралельними і SMP-суперкомпьютерами.

· Об'єднання ресурсів різних організацій. Політика доступу і використання конкретних ресурсів може сильно змінюватися в залежності від їх приналежності до тієї чи іншої організації. Метакомпьютер не належить кому-небудь одному. Політика його адміністрування може бути визначена лише в найзагальніших рисах; узгодженість роботи величезного числа складових частин метакомпьютера передбачає обов'язкову стандартизацію роботи всіх його служб.

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

Перший напрямок - створення універсальних метакомпьютерних середовищ. Практично всі основні виробники (в тому числі, IBM, HP і Sun Microsystems) працюють в даному напрямку. Багато беруть в якості стандарту Globus (www.globus.org), створюючи програмну інфраструктуру для своїх платформ, формуються глобальні полігони, які б поєднували в рамках супервисокоскоростних мереж значні розподілені ресурси. Проводяться серії експериментів, спрямовані на відпрацювання нових мережевих технологій, методів диспетчеризації і моніторингу в розподіленої обчислювальної середовищі, інтерфейсу з користувачем, моделей і методів програмування.

Потенціал цього напрямку, безумовно, величезний, але число невирішених проблем поки переважує реальний ефект; втім, окремі елементи універсальних розподілених середовищ вже вдається успішно застосовувати в рамках масштабних проектів, подібних TeraGrid (www.teragrid.org) і European DataGrid (www.eu-datagrid.org).

Другий напрямок - розвиток першого. Тут універсальність середовища замінює чітка орієнтація на конкретні завдання. Йдеться про створення спеціалізованих метакомпьютерних середовищ для вирішення визначеного набору багаторазово використовуваних «важких» обчислювальних завдань (свого роду спеціалізованих обчислювальних порталів). Цей напрямок набагато простіше реалізувати на практиці, ніж перше. Структура завдання, для якої створюється середовище, заздалегідь зрозуміла, особливості та доцільність роботи завдання на всіх видах обчислювальних ресурсів середовища можна оцінити заздалегідь, проблема перенесення з платформи на платформу також вирішується в момент створення середовища. За допомогою спеціально спроектованих засобів оформляється, скажімо, Web-інтерфейс до програми, яка попередньо вже підготовлена ​​до виконання в рамках метакомпьютерной середовища. Користувач не займається явним програмуванням; йому потрібно лише задати набір вхідних даних, формуючи, тим самим, запит на вирішення завдання, не вникаючи в деталі того, де і як реально програма буде виконана. Даний напрямок знаходить застосування в комерційному секторі: клас завдань визначено, комп'ютери є на столі практично кожного співробітника, а проблеми безпеки природним чином вирішуються в рамках корпоративної мережі. Одним з можливих засобів створення подібних середовищ є система UNICORE.

Третій напрям полягає в розробці інструментарію для організації розподілених обчислювальних експериментів. Безумовно, універсальне середовище - це здорово, але коли вона з'явиться? Та й чи всім дадуть їй користуватися? Globus Toolkit - стандарт де-факто, але він занадто важкий в установці і складний у використанні. А що робити, якщо 2 тис. Комп'ютерів організації можуть віддати лише на ніч або на два вихідних дня? А якщо системні адміністратори не хочуть встановлювати на свої комп'ютери нічого зайвого? Потрібен простий інструментарій, який допоміг би швидко створити розподілене додаток і використовувати доступні обчислювальні ресурси. Цим шляхом кілька років тому ми пішли, відпрацьовуючи різні технології організації і проведення розподілених обчислювальних експериментів.

Основні вимоги до системи були сформульовані так:

• орієнтація на обчислювальні завдання;

• робота через Internet, можливість використання всіх доступних в Мережі обчислювальних ресурсів різної потужності;

• мінімум додаткових дій і системного втручання на використовувані ресурси;

• масштабованість системи, стійкість до неоднорідності і зміни конфігурації обчислювального середовища;

• простота адаптації прикладних програм.