Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
Національний університет «Львівська політехніка»
Кафедра ЕОМ
Лабораторний практикум з дисципліни
«Паралельні та розподілені обчислення»
Лабораторна робота № 5
Ознайомлення з технологією паралельного
програмування засобами МРІ
Мета: Вивчити основні поняття та визначення МРІ. Набути навиків розробки паралельних програм з використанням MPI.
Завдання.
Варіант №
Кількість процесів 1
Кількість процесів 2
24
8
22
Структура паралельної програми з використанням МРІ.
#include "mpi.h"
int main(int argc, char *argv[])
{
<програмний код без використання функцій MPI>
MPI_Init(&argc, &argv);
<програмний код з використанням функцій MPI>
MPI_Finalize();
<програмний код без використання функцій MPI>
return 0;
}
Текст програми на С з використанням бібліотеки МРІ.
#include <stdio.h>
#include "mpi.h"
int main(int argc, char* argv[])
{
int ProcNum, ProcRank, RecvRank;
MPI_Status Status;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &ProcNum);
MPI_Comm_rank(MPI_COMM_WORLD, &ProcRank);
if ( ProcRank == 0 )
{
// Дії виконуються тільки процесом з рангом 0
printf("\n Hello from process %3d", ProcRank);
for (int i = 1; i < ProcNum; i++ )
{
MPI_Recv(&RecvRank,1, MPI_INT, MPI_ANY_SOURCE,
MPI_ANY_TAG, MPI_COMM_WORLD, &Status);
printf("\n Hello from process %3d", RecvRank);
}
}
else // Повідомлення відправляється всіма процесами,
// крім процесу з рангом 0
MPI_Send(&ProcRank,1,MPI_INT,0,0,MPI_COMM_WORLD);
MPI_Finalize();
return 0;
}
Вікно консолі з результатами виконання програми (результат друку рангів процесів
Кількість процесів = 8
Кількість процесів = 22
Висновки
На лабораторній роботі я вивчив основні поняття та визначення МРІ. Також я набув навиків розробки паралельних програм з використанням MPI на прикладі 8 і 22 паралельних процесів.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!