Гібридне багатоядерне паралельне програмування — Вікіпедія

НМРР (Гібридне багатоядерне паралельне програмування)[1] являє собою набір інструментальних засобів розробки на службі гібридного багатоядерного програмування. НМРР є комерційним CAPS продукції підприємства.

Опис[ред. | ред. код]

Пакет включає в себе два інструменти НМРР:

  • C і Fortran компілятор,
  • Виконавчий.

Підтримувані платформи:

  • Debian 4.0 і вище.
  • Red Hat Enterprise Linux 4.5 і вище.
  • Red Hat Enterprise Linux 5.1 і вище.[2]

Принципи[ред. | ред. код]

Основна ідея полягає в наступному: "Для того, щоб звернутися до світу гібридного багатоядерного розробника повинен анотувати додаток, а не змінити його. "Цей принцип був створений для набору директив компілятора. Які дозволяють декларації та виклики codelets, які можуть бути депортовані і виконані на прискорювачах. Вони також показують умови для реалізації codelets (синхронний, асинхронний, сторож), а також вказати передачу даних. Codelets, динамічно пов'язана з додатком, можуть використовувати НМРР без необхідності перекомпіляції, використання нових прискорювачів або навіть поліпшених версій codelets.[3]

Директиви НМРР[ред. | ред. код]

У НМРР директиви, що дозволяють виконувати частину коду дистанційного керування, і управління передачі даних і з апаратних прискорювачів.

Визначення директиви НМРР[ред. | ред. код]

<label>: унікальний ідентифікатор для пари (codelet, callsite)

<directive typ>: тип директиви НМРР

<directive parameter>: директива Параметр НМРР

[&]: Щоб продовжити директиву на новому рядку

Мова C[ред. | ред. код]

#pragma hmpp <label> <directive type> [, <directive parameter>]* [&] 

Мова Fortran[ред. | ред. код]

!hmpp <label> <directive type> [, <directive parameter>]* [&] 

Принципи типу НМРР[ред. | ред. код]

Основними напрямками є:

  • codelet
  • callsite

Директива codelet оголошує функцію як codelet. Директива дозволяє callsite викликати codelet в коді.

Наступні рекомендації дозволяють більш розширене використання (асинхронний):

  • hmppGlobalInit
  • synchronize
  • advanceload
  • delegatedstore
  • release[2]

Примітки[ред. | ред. код]

  1. Hybrid Multicore Parallel Programming. https://fr.wikipedia.org (Французька) . Архів оригіналу за 11 червня 2020. Процитовано 24.11.2016.
  2. а б HMPP Directives (PDF). https://www.olcf.ornl.gov. Архів оригіналу (PDF) за 8 березня 2021. Процитовано 24.11.2016.
  3. A Hybrid Multi-core Parallel Programming Environment (PDF). ftp://ftp.keldysh.ru. Процитовано 24.11.2016.