fork download
  1. #include <stdio.h>
  2. #include <mpi.h>
  3.  
  4. int main(int argc, char** argv) {
  5. int rank, size, N = 100;
  6. int sum = 0;
  7.  
  8. MPI_Init(&argc, &argv);
  9. MPI_Comm_rank(MPI_COMM_WORLD, &rank);
  10. MPI_Comm_size(MPI_COMM_WORLD, &size);
  11.  
  12. int local_sum = 0;
  13. int chunk_size = N / size;
  14. int start = rank * chunk_size + 1;
  15. int end = start + chunk_size - 1;
  16.  
  17. if (rank == size - 1) {
  18. end = N;
  19. }
  20.  
  21. for (int i = start; i <= end; i++) {
  22. local_sum += i;
  23. }
  24.  
  25. MPI_Reduce(&local_sum, &sum, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);
  26.  
  27. if (rank == 0) {
  28. printf("The sum of numbers from 1 to %d is %d\n", N, sum);
  29. }
  30.  
  31. MPI_Finalize();
  32. return 0;
  33. }
  34.  
Success #stdin #stdout #stderr 0.27s 40876KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Error: unexpected symbol in "int main"
Execution halted