fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <mpi.h>
  4.  
  5. #define ARRAY_SIZE 1000
  6.  
  7. int main(int argc, char **argv) {
  8. int rank, size;
  9. int local_sum = 0;
  10. int global_sum = 0;
  11. int i;
  12. int *numbers = (int*)malloc(ARRAY_SIZE * sizeof(int));
  13.  
  14. MPI_Init(&argc, &argv);
  15. MPI_Comm_rank(MPI_COMM_WORLD, &rank);
  16. MPI_Comm_size(MPI_COMM_WORLD, &size);
  17.  
  18. // Generate random numbers
  19. srand(rank);
  20. for (i = 0; i < ARRAY_SIZE; i++) {
  21. numbers[i] = rand() % 100;
  22. }
  23.  
  24. // Calculate local sum
  25. for (i = 0; i < ARRAY_SIZE; i++) {
  26. local_sum += numbers[i];
  27. }
  28.  
  29. // Reduce local sums to get global sum
  30. MPI_Reduce(&local_sum, &global_sum, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);
  31.  
  32. if (rank == 0) {
  33. printf("Total sum: %d\n", global_sum);
  34. }
  35.  
  36. MPI_Finalize();
  37.  
  38. free(numbers);
  39. return 0;
  40. }
  41.  
Success #stdin #stdout #stderr 0.29s 40648KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Error: unexpected symbol in "int main"
Execution halted