Гібридне багатоядерне паралельне програмуванняНМРР (Гібридне багатоядерне паралельне програмування)[1] являє собою набір інструментальних засобів розробки на службі гібридного багатоядерного програмування. НМРР є комерційним CAPS продукції підприємства. ОписПакет включає в себе два інструменти НМРР:
Підтримувані платформи: ПринципиОсновна ідея полягає в наступному: "Для того, щоб звернутися до світу гібридного багатоядерного розробника повинен анотувати додаток, а не змінити його. "Цей принцип був створений для набору директив компілятора. Які дозволяють декларації та виклики codelets, які можуть бути депортовані і виконані на прискорювачах. Вони також показують умови для реалізації codelets (синхронний, асинхронний, сторож), а також вказати передачу даних. Codelets, динамічно пов'язана з додатком, можуть використовувати НМРР без необхідності перекомпіляції, використання нових прискорювачів або навіть поліпшених версій codelets.[3] Директиви НМРРУ НМРР директиви, що дозволяють виконувати частину коду дистанційного керування, і управління передачі даних і з апаратних прискорювачів. Визначення директиви НМРР<label>: унікальний ідентифікатор для пари (codelet, callsite) <directive typ>: тип директиви НМРР <directive parameter>: директива Параметр НМРР [&]: Щоб продовжити директиву на новому рядку #pragma hmpp <label> <directive type> [, <directive parameter>]* [&]
!hmpp <label> <directive type> [, <directive parameter>]* [&]
Принципи типу НМРРОсновними напрямками є:
Директива codelet оголошує функцію як codelet. Директива дозволяє callsite викликати codelet в коді. Наступні рекомендації дозволяють більш розширене використання (асинхронний):
Примітки
|