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