Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Системи проектування паралельних програм

Інформація про навчальний заклад

ВУЗ:
Національній Транспортний Університет
Інститут:
О
Факультет:
КН
Кафедра:
Кафедра інформаційних систем і технологій

Інформація про роботу

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Технології розподілених систем та паралельних обчислень

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ ТРАНСПОРТНИЙ УНІВЕРСИТЕТ Кафедра інформаційних систем і технологій Лабораторна робота № 1 з дисципліни «Технології розподілених систем та паралельних обчислень» на тему: «Системи проектування паралельних програм» Мета - дати уявлення про побудову простих паралельних програм на мові паралельного програмування MPI; уявлення про паралельних програмах, що настроюються на розмір обчислювальної системи, як на параметр; практичне освоєння функцій парних і колективних взаємодій між гілками паралельної програми. Методи розпаралелювання та моделі програм, підтримувані MPI. Найважливішою особливістю MPI є те, що користувач при написанні своїх паралельних програм не повинен враховувати архітектурні особливості конкретних мультикомп’ютерів, оскільки MPI надає користувачеві віртуальний мультикомп’ютер з розподіленою пам'яттю і з віртуальною мережею зв'язку між віртуальними комп'ютерами. Користувач замовляє кількість комп'ютерів, необхідних для вирішення його задачі, і визначає топологію зв'язків між цими комп'ютерами. MPI реалізує це замовлення на конкретній фізичній системі. Обмеженням є обсяг оперативної пам'яті фізичного мультикомп’ютера. Таким чином користувач працює у віртуальному середовищі, що забезпечує переносимість його паралельних програм. Система MPI являє собою бібліотеку засобів паралельного програмування для мов С та Fortran 77. Однією з цілей, переслідуваних при вирішенні завдань на обчислювальних системах, в тому числі і на паралельних, - є ефективність. Ефективність паралельної програми істотно залежить від співвідношення часу обчислень до часу комунікацій між комп'ютерами (при обміні даними). І чим менше в процентному відношенні частка часу, витраченого на комунікації, в загальному часу обчислень, тим більше ефективність. Для паралельних систем з передачею повідомлень оптимальне співвідношення між обчисленнями і комунікаціями забезпечують методи грубозернистого розпаралелювання, коли паралельні алгоритми будуються з великих і рідко взаємодіючих блоків. Завдання лінійної алгебри, завдання, які вирішуються сітковими методами і багато інших, досить ефективно розпаралелювати грубозернистими методами. Останню модель інакше можна назвати моделлю розпаралелювання за даними. Коротко, суть цього способу полягає в наступному. Вихідні дані завдання розподіляються по процесах (гілкам паралельного алгоритму), а алгоритм є одним і тим же у всіх процесах, але дії цього алгоритму розподіляються у відповідності з наявними в цих процесах даними. Розподіл дій алгоритму полягає, наприклад, у привласненні різних значень змінним одних і тих же циклів у різних гілках, або у виконанні в різних гілках різної кількості витків одних і тих же циклів і т.п. Іншими словами, процес у кожної гілки слід різними шляхами виконання на тій же самій програмі. Скрізь далі замість "паралельна програма" будемо писати скорочено: п-програма. ПРИКЛАД 1 Кожна гілка п-програми виводить на екран свій ідентифікаційний номер і розмір замовленої паралельної системи, тобто кількість віртуальних комп'ютерів, в кожен з яких завантажується гілку п-програми. # include <stdio.h> # include <mpi.h> int main(int argc, char** argv) { int size, rank; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); printf("SIZE =% d RANK =% d \n", size, rank); MPI_Finalize(); return (0); } ЗАВДАННЯ Скомпілювати та запустити програму прикладу 1 на 4-х комп’ютерах. ВИКОНАННЯ: / / ПРИКЛАД 2 Гілка з номером 0 пересилає дані (в даному випадку число 10) гілки з номером 3. Гілку 3 друкує на екран свій номер і прийняте число від нульової гілки. # include <stdio.h> # include <mpi.h> int main(int argc, char** argv) { int size, rank, a, b; MPI_Status st; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); if (rank == 0) { a = 10; MPI_Send(&a, 1, MPI_INT, 3, 15, MPI_COMM_WORLD); } ...
Антиботан аватар за замовчуванням

29.11.2021 13:11

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини