Введення для чого потрібні класифікації, інформаційно-аналітичний центр з паралельних обчислень

Стрімкий розвиток науки і проникнення людської думки в усі нові області разом з вирішенням поставлених раніше проблем постійно породжує потік питань і ставить нові, як правило більш складні, завдання. За часів перших комп'ютерів здавалося, що збільшення їх швидкодії в 100 раз дозволить вирішити більшість проблем, проте гігафлопная продуктивність сучасних суперЕОМ сьогодні є явно недостатньою для багатьох вчених. Електро і гідродинаміка, сейсморозвідка і прогноз погоди, моделювання хімічних сполук, дослідження віртуальної реальності - ось далеко не повний список областей науки, дослідники яких використовують кожну можливість прискорити виконання своїх програм.

Найбільш перспективним і динамічним напрямком збільшення швидкості вирішення прикладних завдань є широке впровадження ідей паралелізму в роботу обчислювальних систем. До теперішнього часу спроектовані і випробувані сотні різних комп'ютерів, що використовують у своїй архітектурі той чи інший вид паралельної обробки даних. У науковій літературі та технічної документації можна знайти більше десятка різних назв, що характеризують лише загальні принципи функціонування паралельних машин: векторно-конвеєрні, масивно-паралельні, комп'ютери з широким командним словом, систолические масиви, гіперкуби, спецпроцесори і мультипроцесори, ієрархічні і кластерні комп'ютери, dataflow , матричні ЕОМ і багато інших. Якщо ж до подібних назв для повноти опису додати ще й дані про таких важливих параметрах, як, наприклад, організація пам'яті, топологія зв'язку між процесорами, синхронність роботи окремих пристроїв або спосіб виконання арифметичних операцій, то число різних архітектур стане і зовсім безмежним.

Справді, згадаймо відкритий в 1869 році Д. І. Менделєєвим періодичний закон. Виписавши на картках назви хімічних елементів і вказавши їх найважливіші властивості, він зумів знайти таке розташування, при якому чітко простежувалася закономірність в зміні властивостей елементів, розташованих в кожному стовпці і в кожному рядку. Тепер, знаючи положення будь-якого елементу в таблиці, він міг з великим ступенем точності описувати його властивості, не проводячи з ним ніяких безпосередніх експериментів. Іншим, справді фантастичним наслідком, було те, що даний закон відразу вказав на кілька "білих плям" в таблиці і дозволив передбачити існування (!) І властивості (!!) невідомих доти елементів. У 1875 році французький вчений Буабодран, вивчаючи спектри мінералів, відкрив передбачений Менделєєвим галій і вперше детально описав його властивості. У свою чергу Менделєєв, ніколи раніше не бачив цього хімічного елемента, не тільки зміг вказати на помилку у визначенні щільності, але і обчислив її правильне значення.

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

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

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

У даній роботі не ставилося завдання відразу запропонувати щось конкретне. Вона носить скоріше оглядовий характер і її основне завдання --- це зібрати в одному місці накопичені до цього часу матеріал і привернути увагу фахівців до даної проблеми. Зауважимо, що в роботу включені не всі знайдені класифікації, а описані лише ті, в яких вперше було введено жодного нові суттєві поняття. Робота орієнтована на Новомосковсктеля, знайомого, в загальних рисах, з пристроєм основних паралельних ЕОМ. Однак в додатках ми помістили короткий опис згадуваних в основному тексті "рідкісних" архітектур, не настільки відомих, як CRAY-1 або BBN Batterfly, і вказівка ​​на те, які архітектури в яких книгах описані.