logo
Паралельні і розподілені обчислення

Введення

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

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

Обчислювальний напрям вживання компютерів завжди залишався основним двигуном прогресу в компютерних технологіях. Не дивно тому, що як основна характеристика компютерів використовується такий показник, як продуктивність - величина, що показує, яку кількість арифметичних операцій він може виконати за одиницю часу. Саме цей показник з найбільшою очевидністю демонструє масштаби прогресу, досягнутого в компютерних технологіях. Так, наприклад, продуктивність одного з найперших компютерів EDSAC складала всього біля 100 операцій в секунду, тоді як пікова продуктивність найпотужнішого на сьогоднішній день суперкомпютера Earth Simulator оцінюється в 40 трильйонів операций/сек. Тобто сталося збільшення швидкодії в 400 мільярдів разів! Неможливо назвати іншу сферу людської діяльності, де прогрес був би настільки очевидний і так великий.

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

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

Принципово важливими рішеннями в підвищенні продуктивності обчислювальних систем були: введення конвеєрної організації виконання команд; включення в систему команд векторних операцій, що дозволяють однією командою обробляти цілі масиви даних; розподіл обчислень на безліч процесорів. Поєднання цих 3-х механізмів в архітектурі суперкомпютера Earth Simulator, що складається з 5120 векторно-конвеєрних процесорів, і дозволило йому досягти рекордної продуктивності, яка в 20000 разів перевищує продуктивність сучасних персональних компютерів. Вочевидь, що такі системи надзвичайно дороги і виготовляються в одиничних екземплярах. Ну, а що ж виробляється сьогодні в промислових масштабах? Широка різноманітність вироблюваних в світі компютерів з великою мірою умовності можна розділити на чотири класи:

- персональні компютери (Personal Computer - PC);

- робочі станції (WorkStation - WS);

- суперкомпютери (Supercomputer - SC);

- кластерні системи.

Ця умовність розподілення повязана в першу чергу з швидким прогресом в розвитку мікроелектронних технологій.

Персональні компютери. Це компютер, призначений для експлуатації одним користувачем, тобто для особистого використання. До ПК умовно можна віднести також і будь-який інший компютер, використовуваний конкретною людиною в якості свого особистого компютера. Персональним компютером називають однопроцесорну систему, що використовує процесори Intel або AMD і що працює під управлінням операційних систем Microsoft Windows та інших.

Робочі станції. Робоча станція, як місце фахівця, є повноцінний компютер або компютерний термінал (пристрої вводу/виводу, відокремлені і часто віддалені від керуючого компютера), набір необхідного програмного забезпечення, по необхідності доповнюється допоміжним обладнанням. Це найчастіше компютери, які містять від одного до чотирьох RISC процесорів (RISC (Restrictes instruction set computer - компютер із спрощеним набором команд) - архітектура процесора, в якій швидкодія збільшується за рахунок спрощення команд, щоб їх декодування було простіше, а час використання - коротше) і розрахованими на багато користувачів ОС, що відносяться до сімейства OC UNIX.

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

Кластерні системи. З декількох процесорів і загальної для них памяті формується обчислювальний вузол. Якщо отриманої обчислювальної потужності не достатньо, то обєднується декілька вузлів високошвидкісними каналами. За таким принципом побудовані CRAY, SV1, HP Exemplar, SUN, останні моделі IBM SP2. Кластерні технології стали дешевою альтернативою суперкомпютерів. Сьогодні не складає великих труднощів створити невелику кластерну систему, обєднавши обчислювальні потужності компютерів окремої лабораторії або навчального класу.

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

паралельне розподілене обчислення матриця