.


:




:

































 

 

 

 


1. Windows Visual ++.

2. , Ci=Ai+Bi, 0<=i<=n.

3. MPI, , n=10, .

4. , 3 , (n ) .

5. . .

 

-

i, n, a[], b[], c[]
i = 0, n
a[i] = i, b[i] = i;
c[i] = a[i] + b[i];
i = 0, n

 

 


 

#include <mpi.h>

#include "stdio.h"

#include <conio.h>

#include "iostream"

#include <time.h>

 

using namespace std;

 

int main(int argc, char* argv[])

{

int nom = 0, kol = 0, n;

MPI_Init(&argc, &argv);

MPI_Comm_rank(MPI_COMM_WORLD, &nom); //

MPI_Comm_size(MPI_COMM_WORLD, &kol); //- -

MPI_Status Status;

 

if (nom == 0)

{

printf("Vvedite razmernost:\n");

scanf("%d", &n);

}

 

// n

MPI_Bcast(&n,1,MPI_INT,0,MPI_COMM_WORLD);

double *a, *b, *c, *c1, t1, t2, td;

double start, finish, duration, duration1;

a = new double[n];

b = new double[n];

c = new double[n];

c1 = new double[n];

 

int ost = n % kol;

 

if (nom == 0)

{

for (int i = 0; i < n; i++)

{

a[i] = i;

b[i] = i;

c[i] = 0;

c1[i] = 0;

}

 

for (int i = 0; i < n; i++)

{

// printf("%.1f ", a[i]);

}

printf("\n");

for (int i = 0; i < n; i++)

{

//printf("%.1f ", b[i]);

}

printf("\n");

printf("%d\n", ost);

printf("%d\n", n);

}

//

MPI_Bcast(a,n,MPI_DOUBLE,0,MPI_COMM_WORLD);

MPI_Bcast(b,n,MPI_DOUBLE,0,MPI_COMM_WORLD);

MPI_Bcast(c,n,MPI_DOUBLE,0,MPI_COMM_WORLD);

start = MPI_Wtime(); //

 

for (int i = nom*(n/kol); i < (nom + 1)*(n/kol); i++)

{

c[i] = a[i] + b[i];

}

 

for (int i = 0; i < ost; i++)

{

if (nom == i)

{

c[n - ost + i] = a[n - ost + i] + b[n - ost + i];

}

}

finish = MPI_Wtime();

MPI_Reduce(c,c1,n,MPI_DOUBLE,MPI_SUM,0,MPI_COMM_WORLD);

 

if (nom == 0)

{

for (int i = 0; i < n; i++)

{

// printf("%.1f ", c1[i]);

}

duration = finish - start;

printf("Parallel=%f \n", duration);

printf("\n");

}

t1 = clock();

for (int i = 0; i < n; i++)

{

c[i] = a[i] + b[i];

}

t2 = clock();

td = (t2-t1)/double(CLOCKS_PER_SEC);

printf("Posl=%f \n", td);

MPI_Finalize();

return 0;

}

1.

- - / (T1), (Tp), (Sp) (Ep)
    0,003 0,001144 2,62 1,31
    0,005 0,001023 4,88 1,22
    0,11 0,005948 18,49 3,082

 

: , , . , .



<== | ==>
| HCI nh4ci / nh4oh
:


: 2016-07-29; !; : 508 |


:

:

, ; , .
==> ...

1907 - | 1693 -


© 2015-2024 lektsii.org - -

: 0.012 .