#include #include #include using namespace std; int main (int argc, char *argv[]) { MPI_Init(&argc, &argv); int rank, size; MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); if (rank == 0) { double* tabela; int rozmiar; fstream plik1; plik1.open("lab2_3_tabela.txt", fstream::in); plik1 >> rozmiar; tabela = new double[rozmiar]; for(int i = 0; i < rozmiar;i++){ plik1 >> tabela[i]; } cout << rozmiar << endl; for(int i = 0; i < rozmiar;i++){ cout << tabela[i] << endl; } plik1.close(); MPI_Send(&rozmiar, 1, MPI_INT, 1, 103, MPI_COMM_WORLD); MPI_Send(tabela, rozmiar, MPI_DOUBLE, 1, 104, MPI_COMM_WORLD); //odbior double suma; MPI_Recv(&suma, 1, MPI_DOUBLE, 1, 105, MPI_COMM_WORLD, MPI_STATUS_IGNORE); cout << "SUMA: " << suma << endl; } else if (rank == 1) { double* tabela; int rozmiar; double suma = 0; MPI_Recv(&rozmiar, 1, MPI_INT, 0, 103, MPI_COMM_WORLD, MPI_STATUS_IGNORE); tabela = new double[rozmiar]; MPI_Recv(tabela, rozmiar, MPI_DOUBLE, 0, 104, MPI_COMM_WORLD, MPI_STATUS_IGNORE); for(int i = 0;i < rozmiar ;i++){ suma += tabela[i]; } MPI_Send(&suma, 1, MPI_DOUBLE, 0, 105, MPI_COMM_WORLD); } MPI_Finalize(); return 0; }