Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 2.)Napišite program u kojem će se omogućiti učitavanje cjelobrojnog vektora proizvoljne veličine i jednog decimalnog broja,
- nakon toga paralelnog pomnožiti taj vektor s decimalnim brojem i naposljetku ispisati rezultantni vektor i prosječnu vrijednost njegovih elemenata.
- #include <iostream>
- #include <cstdlib>
- #include<ctime>
- #include <mpi.h>
- using namespace std;
- int main()
- {
- int brojElemenata = 12;
- float arr[brojElemenata];
- int rank;
- int i;
- float sum[3];
- float globalSum;
- srand(time(NULL));
- MPI::Init();
- rank = MPI::COMM_WORLD.Get_rank();
- if (rank ==0)
- {
- for (i = 0; i < brojElemenata; i++)
- {
- arr[i] = (float)(rand() % 100 + 1);
- cout << arr[i] << "\t";
- }
- cout << endl;
- }
- MPI::COMM_WORLD.Scatter(arr, 3, MPI::FLOAT, arr, 3, MPI::FLOAT, 0);
- for (i = 0; i < 3; i++)
- {
- arr[i] *= 5.50;
- }
- MPI::COMM_WORLD.Gather(arr, 3, MPI::FLOAT, arr, 3, MPI::FLOAT, 0);
- MPI::COMM_WORLD.Reduce(&arr, &sum, 3, MPI::FLOAT, MPI::SUM, 0);
- if (rank == 0)
- {
- globalSum = sum[0];
- for( i = 1; i < 3; i++)
- {
- globalSum += sum[i];
- }
- cout << "\nRezultantni vektor: " << endl;
- for (i = 0; i < brojElemenata; i++)
- {
- cout << arr[i] << "\t";
- }
- cout << endl;
- cout << "Prosjecna vrijednost: " << globalSum / brojElemenata << endl;
- }
- MPI::Finalize();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement