fork download
  1. #include <stdio.h>
  2. #include <omp.h>
  3. int main()
  4. {
  5. int sum_atomic = 0;
  6. int sum_critical = 0;
  7. // Atomic section
  8. #pragma omp parallel for
  9. for (int i = 0; i < 51; i++) {
  10. #pragma omp atomic
  11. sum_atomic += i;
  12. }
  13. // Critical section
  14. #pragma omp parallel for
  15. for (int i = 0; i < 51; i++) {
  16. #pragma omp critical
  17. {
  18.  
  19. for (int j = 0; j < 100; j++) {
  20. sum_critical += i + j;
  21. }
  22. }
  23. }
  24. printf("Sum using atomic: %d\n", sum_atomic);
  25. printf("Sum using critical: %d\n", sum_critical);
  26.  
  27. return 0;
  28. }
  29.  
Success #stdin #stdout 0s 5280KB
stdin
Standard input is empty
stdout
Sum using atomic: 1275
Sum using critical: 379950