Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Отчеты по практике » Порівняння можливостей OpenMP і TPL

Реферат Порівняння можливостей OpenMP і TPL





и, що б порівняння було максимально точним.


. 2 Інструментарій паралельних обчислень


Кількість ядер у процесорів росте рік від року. Але багато програми досі вміють використовувати тільки одне. Тому для розробки дипломної роботи ми вибрали такі середовища розробки як Task Parallel Library (.Net TPL) та інструментів Visual Studio, що реалізують стандарт OpenMP.


. 2.1 OpenMP

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

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

Розробкою стандарту займається некомерційна організація OpenMP ARB (Architecture Review Board), до якої увійшли представники найбільших компаній - розробників SMP-архітектур і програмного забезпечення. OpenMP підтримує роботу з мовами Фортран і Си/Cи ++. Перша специфікація для мови Фортран з'явилася в жовтні 1997 року, а специфікація для мови Сі/Cи ++ - у жовтні 1998 року. На даний момент остання офіційна специфікація стандарту - OpenMP 3.0.

Інтерфейс OpenMP задуманий як стандарт для програмування на масштабованих SMP-системах (SSMP, ccNUMA та інших) в моделі загальної пам'яті (shared memory model). У стандарт OpenMP входять специфікації набору директив компілятора, допоміжних функцій і змінних середовища. OpenMP реалізує паралельні обчислення за допомогою багатопоточності, в якій «головний» (master) потік створює набір «підлеглих» (slave) потоків, і завдання розподіляється між ними. Передбачається, що потоки виконуються паралельно на машині з декількома процесорами, причому кількість процесорів не обов'язково має бути більше або дорівнює кількості потоків. Прикладами систем зі спільною пам'яттю, масштабованих до великого числа процесорів, можуть служити суперкомп'ютери Cray Origin2000 (до 128 процесорів), HP 9000 V-class (до 32 процесорів в одному вузлі, а в конфігурації з 4 вузлів - до 128 процесорів), Sun Starfire (до 64 процесорів).

Основні переваги OpenMP:

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

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

o Передбачається, що OpenMP-програма на однопроцесорній платформі може бути використана в якості послідовної програми, тобто немає необхідності підтримувати послідовну і паралельну версії. Директиви OpenMP просто ігноруються послідовним компілятором, а для виклику процедур OpenMP можуть бути підставлені заглушки (stubs), текст яких наведено в специфікаціях.

o Одним з достоїнств OpenMP його розробники вважають підтримку так званих orphan (відірваних) директив, тобто директиви синхронізації і розподілу роботи можуть не входити безпосередньо в лексичний контекст паралельної області.


. 2.2 Net TPL

Іншим популярним засобом паралельного програмування є бібліотека паралельних завдань Task Parallel Library (.Net TPL). Бібліотека паралельних завдань TPL - надає такі імперативні методи, як Parallel.For, Parallel.Foreach і Parallel.Invoke для виконання паралельних обчислень. Вся робота по створенню та завершенню потоків, в залежності від наявних процесорів виконується бібліотекою автоматично. Так само бібліотека являє собою набір відкритих типів і API-інтерфейсів в просторах імен System.Threading і System.Threading.Tasks в .NET Framework 4.

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


Назад | сторінка 3 з 10 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розробка конфігурації високопродуктивного комп'ютера на базі сучасної м ...
  • Реферат на тему: Функціонування сучасних процесорів
  • Реферат на тему: Архітектура сучасних процесорів
  • Реферат на тему: Пристрій і технічне обслуговування процесорів
  • Реферат на тему: Внутрішня архітектура сучасних процесорів