2222namespace tbb = oneapi::tbb;
2323
2424namespace Elements {
25+
26+ auto LOG = Logging::getLogger(" Tbb" );
27+
2528namespace Examples {
2629
30+ void initTbb () {
31+
32+ const auto processor_count = std::thread::hardware_concurrency ();
33+ LOG .info () << " Number of native threads: " << processor_count;
34+
35+ const auto default_concurrency = tbb::info::default_concurrency ();
36+ LOG .info () << " TBB default concurrency: " << default_concurrency;
37+
38+ tbb::global_control control (tbb::global_control::max_allowed_parallelism, processor_count);
39+ }
40+
41+ int simpleSum (const int & first_number, const int & last_number) {
42+
43+ int sum = 0 ;
44+
45+ for (auto i = first_number; i < last_number; i++) {
46+ sum += i;
47+ }
48+
49+ return (sum);
50+ }
51+
2752class Tbb : public Program {
2853
2954public:
@@ -32,12 +57,10 @@ class Tbb : public Program {
3257
3358 using namespace std ::chrono;
3459
35- auto log = Logging::getLogger (" Tbb" );
36-
3760 const auto processor_count = std::thread::hardware_concurrency ();
38- log .info () << " Number of native threads: " << processor_count;
61+ LOG .info () << " Number of native threads: " << processor_count;
3962 const auto default_concurrency = tbb::info::default_concurrency ();
40- log .info () << " TBB default concurrency: " << default_concurrency;
63+ LOG .info () << " TBB default concurrency: " << default_concurrency;
4164
4265 const auto start = high_resolution_clock::now ();
4366 tbb::global_control control (tbb::global_control::max_allowed_parallelism, processor_count);
@@ -50,12 +73,12 @@ class Tbb : public Program {
5073 simple_sum += i;
5174 }
5275
53- log .info () << " Simple sum: " << simple_sum;
76+ LOG .info () << " Simple sum: " << simple_sum;
5477
5578 const auto simple_stop = high_resolution_clock::now ();
5679 const auto simple_duration = duration_cast<microseconds>(simple_stop - start);
5780
58- log .info () << " Simple duration: " << simple_duration.count ();
81+ LOG .info () << " Simple duration: " << simple_duration.count ();
5982
6083 int parallel_sum = tbb::parallel_reduce (
6184 tbb::blocked_range<int >(first_number, last_number), 0 ,
@@ -69,17 +92,17 @@ class Tbb : public Program {
6992 return (lhs + rhs);
7093 });
7194
72- log .info () << " Parallel sum: " << parallel_sum;
95+ LOG .info () << " Parallel sum: " << parallel_sum;
7396
7497 const auto parallel_stop = high_resolution_clock::now ();
7598 const auto parallel_duration = duration_cast<microseconds>(parallel_stop - simple_stop);
7699
77- log .info () << " Parallel duration: " << parallel_duration.count ();
100+ LOG .info () << " Parallel duration: " << parallel_duration.count ();
78101
79102 const auto stop = high_resolution_clock::now ();
80103 const auto total_duration = duration_cast<microseconds>(stop - start);
81104
82- log .info () << " Total duration: " << total_duration.count ();
105+ LOG .info () << " Total duration: " << total_duration.count ();
83106
84107 return (ExitCode::OK );
85108 }
0 commit comments