fork download
  1. #include <stdio.h>
  2. #include <mpi.h>
  3. #define MAX_SIZE 16
  4.  
  5. int main(int argc, char **argv)
  6. {
  7. int size = 0, rank = 0, buf = 0, i = 0;
  8. int array[MAX_SIZE];
  9. int answer[MAX_SIZE];
  10.  
  11. MPI_Init(&argc, &argv);
  12. MPI_Comm_size(MPI_COMM_WORLD, &size);
  13. MPI_Comm_rank(MPI_COMM_WORLD, &rank);
  14. MPI_Allgather(&rank, 1, MPI_INT, array, 1, MPI_INT, MPI_COMM_WORLD);
  15.  
  16. for (i = 0; i < size; i++)
  17. {
  18. array[i] = array[i] - rank - 2;
  19. }
  20.  
  21. MPI_Reduce(array, answer, size, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);
  22.  
  23. if (rank == 0)
  24. {
  25. for (i = 0; i < size; i++)
  26. {
  27. printf("%d ", answer[i]);
  28. }
  29. printf("\n");
  30. }
  31.  
  32. MPI_Finalize();
  33. return 0;
  34. }
  35.  
Success #stdin #stdout #stderr 0.31s 40616KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Error: unexpected symbol in "int main"
Execution halted