Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
Національний університет «Львівська політехніка»
Кафедра ЕОМ
Лабораторний практикум з дисципліни
«Паралельні та розподілені обчислення»
Лабораторна робота № 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 паралельних процесів.