#include <mpi.h>
#include <iostream>
int main(int argc, char ** argv){
int64_t n = 257;
MPI_Init(&argc, &argv);
int rank;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
double * A = (double*)malloc(sizeof(double)*n);
for (int i=0; i<n; i++){
A[i] = (double)i;
}
if (rank == 1){
MPI_Reduce(MPI_IN_PLACE, A, n, MPI_DOUBLE, MPI_SUM, 1, MPI_COMM_WORLD);
} else {
MPI_Reduce(A, NULL, n, MPI_DOUBLE, MPI_SUM, 1, MPI_COMM_WORLD);
}
free(A);
MPI_Finalize();
return 0;
}