fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <mpi.h>
  4.  
  5. #define BUFFER_SIZE 10
  6.  
  7. int main(int argc, char** argv) {
  8. int rank, size;
  9. MPI_Init(&argc, &argv);
  10. MPI_Comm_rank(MPI_COMM_WORLD, &rank);
  11. MPI_Comm_size(MPI_COMM_WORLD, &size);
  12.  
  13. int buffer[BUFFER_SIZE];
  14. int in = 0;
  15. int out = 0;
  16. MPI_Status status;
  17.  
  18. srand(rank); // Inițializăm generatorul de numere aleatoare cu rank-ul procesului
  19.  
  20. if (rank == 0) {
  21. // Producător
  22. for (;;) {
  23. int item = rand() % 100;
  24. MPI_Send(&item, 1, MPI_INT, 1, 0, MPI_COMM_WORLD);
  25. printf("Producer produced item %d\n", item);
  26. if (item == -1) break;
  27. }
  28. } else if (rank == 1) {
  29. // Consumator
  30. while (1) {
  31. int item;
  32. MPI_Recv(&item, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, &status);
  33. printf("Consumer consumed item %d\n", item);
  34. if (item == -1) break;
  35. }
  36. }
  37.  
  38. MPI_Finalize();
  39. return 0;
  40. }
Success #stdin #stdout #stderr 0.3s 40508KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Error: unexpected symbol in "int main"
Execution halted