openmp/{hello_w/src/hello_w.cpp → parallel_for/src/parallel_for.cpp} RENAMED
@@ -1,17 +1,23 @@
1
  // Copyright 2021 Jeisson Hidalgo <jeisson.hidalgo@ucr.ac.cr> CC-BY 4.0
2
  #include <omp.h>
3
  #include <iostream>
4
 
5
  int main(int argc, char* argv[]) {
6
  int thread_count = omp_get_max_threads();
7
- if (argc == 2) {
8
  thread_count = atoi(argv[1]);
9
  }
10
 
11
- #pragma omp parallel num_threads(thread_count)
12
- {
 
 
 
 
 
 
13
  #pragma omp critical(stdout)
14
- std::cout << "Hello from secondary thread " << omp_get_thread_num()
15
- << " of " << omp_get_num_threads() << std::endl;
16
  }
17
  }
1
  // Copyright 2021 Jeisson Hidalgo <jeisson.hidalgo@ucr.ac.cr> CC-BY 4.0
2
  #include <omp.h>
3
  #include <iostream>
4
 
5
  int main(int argc, char* argv[]) {
6
  int thread_count = omp_get_max_threads();
7
+ if (argc >= 2) {
8
  thread_count = atoi(argv[1]);
9
  }
10
 
11
+ int iteration_count = thread_count;
12
+ if (argc >= 3) {
13
+ iteration_count = atoi(argv[2]);
14
+ }
15
+
16
+ #pragma omp parallel for num_threads(thread_count) \
17
+ default(none) shared(iteration_count, std::cout)
18
+ for (int iteration = 0; iteration < iteration_count; ++iteration) {
19
  #pragma omp critical(stdout)
20
+ std::cout << omp_get_thread_num() << '/' << omp_get_num_threads()
21
+ << ": iteration " << iteration << '/' << iteration_count << std::endl;
22
  }
23
  }