ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
94
Сложение двух матриц
Оценить время выполнения каждой программы. Объяснить полученные
результаты.
Реализация “С” параллельно
Каждый четный процесс посылает нечетному элемент матрицы
А
и элемент
матрицы
В
. Нечетный процесс их складывает (
- элемент результирую-
щей матрицы).
#include <stdio.h>
#include <mpi.h>
#include <math.h>
int main(int argc, char* argv[])
{
int i=1,j=1,n=4,master=0,size,rank,k=1;
/*
* Начало и завершение:
* MPI_Init, MPI_Finalize
* Определение количества задач в приложении и своего по-
рядкового
* номера:
* MPI_Comm_size, MPI_Comm_rank
*/
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Status status;
MPI_Request req;
if(size!=n)
{
printf("Error\n");
exit(0);
}
char a[n][n];
char b[n][n];
char c[n][n];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=k;
b[i][j]=k+1;
k++;
}
}
if(rank%2==0)
{
for(i=0;i<n;i++)
{
ik
ik
ik
b a c
+ =
1...,86,87,88,89,90,91,92,93,94,95 97,98,99,100,101,102,103,104,105,106,...180