Робоча станція для паралельних суперобчислень. Intel 2017
Паралельні обчислення - спосіб організації комп'ютерних обчислень, при якому програми розробляються як набір взаємодіючих обчислювальних процесів, що працюють паралельно (одночасно). Термін охоплює сукупність питань паралелізму в програмуванні, а також створення ефективно діючих апаратних реалізацій. Теорія паралельних обчислень становить розділ прикладної теорії алгоритмів .
Існують різні способи реалізації паралельних обчислень. Наприклад, кожен обчислювальний процес може бути реалізований у вигляді процесу операційної системи, або ж обчислювальні процеси можуть являти собою набір потоків виконання всередині одного процесу ОС. Паралельні програми можуть фізично виконуватися або послідовно на єдиному процесорі - перемежовуючи по черзі кроки виконання кожного обчислювального процесу, або паралельно - виділяючи кожному обчислювальному процесу один або кілька процесорів (що знаходяться поруч або розподілених в комп'ютерну мережу).
Поняття CUDA
CUDA - це архітектура паралельних обчислень від NVIDIA, що дозволяє істотно збільшити обчислювальну продуктивність завдяки використанню GPU (графічних процесорів). На сьогоднішній день продажу CUDA процесорів досягли мільйонів, а розробники програмного забезпечення, вчені і дослідники широко використовують CUDA в різних областях, включаючи обробку відео і зображень, обчислювальну біологію та хімію, моделювання динаміки рідин, відновлення зображень, отриманих шляхом комп'ютерної томографії, сейсмічний аналіз, трасування променів і багато іншого.
Паралельні обчислення с CUDA
Напрямок обчислень еволюціонує від «централізованої обробки даних» на центральному процесорі до «спільної обробки» на CPU і GPU. Для реалізації нової обчислювальної парадигми компанія NVIDIA винайшла архітектуру паралельних обчислень CUDA, на даний момент представлену в графічних процесорах GeForce, ION, Quadro і Tesla і забезпечує необхідну базу розробниками.
Платформа паралельних обчислень CUDA
Платформа паралельних обчислень CUDA® забезпечує набір розширень для мов C і С ++, що дозволяють висловлювати як паралелізм даних, так і паралелізм завдань на рівні дрібних і великих структурних одиниць. Програміст може вибрати засоби розробки: мови високого рівня, такі як C, C ++, Fortran або ж відкриті стандарти, такі як директиви OpenACC. Платформа паралельних обчислень CUDA використовується на сьогоднішній день в тисячах GPU-прискорених додатків і тисячах опублікованих наукових статтях.
Архітектура OpenCL
OpenCL відкритий індустріальний стандарт для програмування гетерогенних (неоднорідних) колекцій CPU, GPU і інших дискретних (окремих, відокремлених) пристроїв організованих в єдину платформу. Це більше ніж мова. OpenCL це фреймворк для паралельного програмування, що містить мову (програмування), API, бібліотеки та ран тайм. Наприклад, використовуючи OpenCL, програміст може писати універсальні програми, які виконуються на GPU без вставки в них APIграфіческіх бібліотек, такі як OpenGL або DirectX. Цільова аудиторія OpenCL - це досвідчені програмісти, які бажають писати переносимо і крім того ефективний код.
Автор Рижак Сергій Володимирович