Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Парадигми паралельних обчисленьСтр 1 из 3Следующая ⇒
Курсова робота Парадигми паралельних обчислень У світі паралельного програмування все відбувається по-іншому. Тут відразу декілька інструкцій можуть виконуватися в один і той же момент часу. Одна інструкція поділяється на декілька дрібних частин, які будуть виконуватися одночасно. Програма поділяється на колекцію паралельних задач. Програма може складатися із сотень або навіть тисяч підпрограм, які виконуються паралельно. У світі паралельного програмування послідовність та місцезнаходження складових ПЗ не завжди передбачувані. Декілька задач можуть одночасно почати виконання на довільному процесорі без якої то було б гарантії того, що задачі закріплені за певним процесором, або довільна задача завершиться першою, або всі вони завершаться в певному порядку. Окрім паралельного виконання задач, тут можливе паралельне виконання частин (підзадач) одної задачі. В деяких конфігураціях не виключена можливість виконання підзадач на різних процесорах або навіть різних комп’ютерах. На рис 1. показано три рівні парале Модель програми, зображеної на рис 1, відображає кардинальну зміну парадигми програмування, яка була характерна для ²ранньої² свідомості програмістів та розробників. Тут відображено три рівні паралелізму і їх розподіл за декількома процесорами. Поєднання цих трьох рівнів з базовими паралельними конфігураціями процесорів зображено на рис. 2. Зверніть увагу на те, що декілька задач може виконуватися на одному процесорі навіть при наявності в комп’ютері декількох процесорів. Така ситуація створюється системними стратегіями планування. На тривалість виконання задач, підзадач та інструкцій чинять вплив і вибрані стратегії планування, і приорітети процесів, і приорітети потоків, і швидкодія пристроїв вводу-виводу. На рис. 2 необхідно звернути увагу на різні архітектури. які програміст повинен враховувати при переході від послідовної моделі програмування до паралельної. Основна різниця в моделях при переході від суворо впорядкованої послідовності задач до лише частково впорядкованої (або взагалі невпорядкованої) колекції задач. Паралелізм перетворює раніше відомі величини (послідовність виконання, час виконання та місце виконання) в невідомі. Довільна комбінація цих невідомих величин є причиною зміни значень програми, причому часто непередбаченим чином.
Вибір архітектури Існує багато архітектурних рішень, які підтримують паралелізм. Архітектурне рішення можемо вважати коректним, якщо воно відповідає декомпозиції робіт (work breakdown – WBR) програмного забезпечення (ДР ПЗ). Паралельні та розподілені архітектури можуть бути найрізноманітнішими. В той час як деякі розподілені архітектури чудово працюють в Web- середовищі, вони практично приречені на невдачу в середовищі реального часу. Наприклад, розподілені архітектури, які розраховані на тривалі часові затримки, цілком прийнятні для Web- середовища і цілковито неприйнятні для багатьох середовищ реального часу. Достатньо порівняти розподілену обробку даних на Web- орієнтованій системі функціонування електронної пошти з розподіленою обробкою даних в банкоматах, або автоматичних касових машинах (automated teller machine – ATM). Затримка (час очікування), яка присутня в багатьох поштових Web- системах, була б просто нищівною для таких систем реального часу, як банкомати. Одні розподілені архітектури (власне, деякі асинхронні моделі) справляються з часовими затримками краще, ніж інші. Крім того, необхідно самим серйозним чином підходити до вибору відповідних архітектур паралельної обробки даних. Наприклад, методи векторної обробки даних найкраще придатні для рішення певних математичних задач і проблем імітаційного моделювання, але вони абсолютно неефективні в застосування до мультиагентних алгоритмів планування. Поширені архітектури ПЗ, що придатні для паралельного та розподіленого програмування, подано в табл. 2. Чотири базові моделі, подані в табл. 2, і їх варіанти забезпечують основу для всіх паралельних типів архітектур (тобто обєктно-орієнтованого, агентно-орієнтованого і ²класної дошки²), які будемо розглядати в лекціях. Розробникам ПЗ необхідно докладно ознайомитися з кожною з даних моделей і їх застосуванням до паралельного і розподіленого програмування. В лекційному курсі надано початковий опис цих моделей і бібліографічна інформація по матеріалам, які дозволять знайти про них більш ґрунтовну інформацію. В кожній роботі або при вирішенні проблеми краще всього шукати природній або властивий їм паралелізм, а вибраний тип архітектури повинен максимально відповідати цьому природному паралелізму. Наприклад, паралелізм в рішенні, можливо, краще описувати за допомогою симетричної моделі, або моделі мережі з рівноправними вузлами (peer-to-peer model)? в якій всі виконавці є рівноправними, на відміну від несиметричної моделі ²керуючий/виконавчий², в якій існує головний (керуючий) процес, який керує всіма іншими процесами як підлеглими.
Лінії видимого контуру Породження процесі, як подано в лістінгу 6, можливе за допомогою функцій, які викликаються із функції mane (). // Лістінг 6. Основна гілка програми, з якої викликається функція, // що породжує процес int main (int argc, char *argv [ ]) { //... Rt = func1 (X, Y, Z); //... } // Визначення функції. int func1 (char *M, char *N, char *V) { //... char *const args [ ] = {“TaskX”, M, N, V, NULL}; Pid = fork (); if (Pid = = 0) { exec ({“TaskX”, args); } if (Pid > 0) { //... } wait (&stat); } В лістінгу 6. функція func1 викликається з трьома аргументами. Ці аргументи передаються породженому процесу. Процеси також можуть породжуватися із методів, які належать об’єктам. Як подано в лістінгу 7, об’єкти можна оголосити в довільному процесі. // Лістінг 7. Оголошення об’єкту в процесі
//... my_object MyObject; //... // Оголошення та визначення класу. class my_object { public: //... int spawnProcess (int X); //... }; int my_object:: spawnProcess (int X) { //... //... posix_spawn () або system () //... } Як подано в лістінгу 7, об’єкт може створювати довільну кількість процесів з довільного методу. Завдання до курсової роботи Курсова робота Парадигми паралельних обчислень У світі паралельного програмування все відбувається по-іншому. Тут відразу декілька інструкцій можуть виконуватися в один і той же момент часу. Одна інструкція поділяється на декілька дрібних частин, які будуть виконуватися одночасно. Програма поділяється на колекцію паралельних задач. Програма може складатися із сотень або навіть тисяч підпрограм, які виконуються паралельно. У світі паралельного програмування послідовність та місцезнаходження складових ПЗ не завжди передбачувані. Декілька задач можуть одночасно почати виконання на довільному процесорі без якої то було б гарантії того, що задачі закріплені за певним процесором, або довільна задача завершиться першою, або всі вони завершаться в певному порядку. Окрім паралельного виконання задач, тут можливе паралельне виконання частин (підзадач) одної задачі. В деяких конфігураціях не виключена можливість виконання підзадач на різних процесорах або навіть різних комп’ютерах. На рис 1. показано три рівні парале Модель програми, зображеної на рис 1, відображає кардинальну зміну парадигми програмування, яка була характерна для ²ранньої² свідомості програмістів та розробників. Тут відображено три рівні паралелізму і їх розподіл за декількома процесорами. Поєднання цих трьох рівнів з базовими паралельними конфігураціями процесорів зображено на рис. 2. Зверніть увагу на те, що декілька задач може виконуватися на одному процесорі навіть при наявності в комп’ютері декількох процесорів. Така ситуація створюється системними стратегіями планування. На тривалість виконання задач, підзадач та інструкцій чинять вплив і вибрані стратегії планування, і приорітети процесів, і приорітети потоків, і швидкодія пристроїв вводу-виводу. На рис. 2 необхідно звернути увагу на різні архітектури. які програміст повинен враховувати при переході від послідовної моделі програмування до паралельної. Основна різниця в моделях при переході від суворо впорядкованої послідовності задач до лише частково впорядкованої (або взагалі невпорядкованої) колекції задач. Паралелізм перетворює раніше відомі величини (послідовність виконання, час виконання та місце виконання) в невідомі. Довільна комбінація цих невідомих величин є причиною зміни значень програми, причому часто непередбаченим чином.
|
||||||
Последнее изменение этой страницы: 2016-08-12; просмотров: 181; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.51.117 (0.01 с.) |