fork download
  1. #include <stdio.h>
  2. #include <omp.h>
  3. #include <time.h>
  4.  
  5. void sequential_execution() {
  6. int sum = 0;
  7. clock_t start = clock();
  8. for (int i = 0; i < 1000000; ++i) {
  9. sum += i;
  10. }
  11. clock_t end = clock();
  12. double duration = (double)(end - start) / CLOCKS_PER_SEC;
  13. printf("Sequential execution time: %f seconds\n", duration);
  14. printf("Sum (Sequential): %d\n", sum);
  15. }
  16.  
  17. void parallel_execution(int num_threads) {
  18. int sum = 0;
  19. clock_t start = clock();
  20. #pragma omp parallel for num_threads(num_threads) reduction(+:sum)
  21. for (int i = 0; i < 1000000; ++i) {
  22. sum += i;
  23. }
  24. clock_t end = clock();
  25. double duration = (double)(end - start) / CLOCKS_PER_SEC;
  26. printf("Parallel execution time with %d threads: %f seconds\n", num_threads, duration);
  27. printf("Sum (Parallel): %d\n", sum);
  28. }
  29.  
  30. int main() {
  31. // Calculate sequential execution time
  32. sequential_execution();
  33.  
  34. // Calculate parallel execution time with 2 threads
  35. parallel_execution(4);
  36.  
  37. return 0;
  38. }
  39.  
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
Sequential execution time: 0.000607 seconds
Sum (Sequential): 1783293664
Parallel execution time with 4 threads: 0.000000 seconds
Sum (Parallel): 1783293664