Functions.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_SMP_OPENMP_FUNCTIONS_H_
36 #define _BLAZE_MATH_SMP_OPENMP_FUNCTIONS_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
43 #include <omp.h>
44 #include <blaze/system/Inline.h>
45 #include <blaze/system/SMP.h>
46 #include <blaze/util/Exception.h>
48 #include <blaze/util/Types.h>
49 
50 
51 namespace blaze {
52 
53 //=================================================================================================
54 //
55 // SMP UTILITY FUNCTIONS
56 //
57 //=================================================================================================
58 
59 //*************************************************************************************************
71 {
72  return omp_get_max_threads();
73 }
75 //*************************************************************************************************
76 
77 
78 //*************************************************************************************************
91 BLAZE_ALWAYS_INLINE size_t setNumThreads( size_t number )
92 {
93  if( number == 0UL ) {
94  BLAZE_THROW_INVALID_ARGUMENT( "Invalid number of threads" );
95  }
96 
97  omp_set_num_threads( number );
98 }
100 //*************************************************************************************************
101 
102 
103 //*************************************************************************************************
129 {}
131 //*************************************************************************************************
132 
133 
134 
135 
136 //=================================================================================================
137 //
138 // COMPILE TIME CONSTRAINTS
139 //
140 //=================================================================================================
141 
142 //*************************************************************************************************
144 namespace {
145 
147 
148 }
150 //*************************************************************************************************
151 
152 } // namespace blaze
153 
154 #endif
#define BLAZE_THROW_INVALID_ARGUMENT(MESSAGE)
Macro for the emission of a std::invalid_argument exceptionThis macro encapsulates the default way of...
Definition: Exception.h:187
Header file for basic type definitions.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
Compile time assertion.
System settings for the shared-memory parallelization.
BLAZE_ALWAYS_INLINE void shutDownThreads()
Provides a reliable shutdown of C++11 threads for Visual Studio compilers.
Definition: Functions.h:128
BLAZE_ALWAYS_INLINE void setNumThreads(size_t number)
Sets the number of threads to be used for thread parallel operations.
Definition: Functions.h:97
#define BLAZE_OPENMP_PARALLEL_MODE
Compilation switch for the OpenMP parallelization.This compilation switch enables/disables the OpenMP...
Definition: SMP.h:67
Header file for exception macros.
#define BLAZE_STATIC_ASSERT(expr)
Compile time assertion macro.In case of an invalid compile time expression, a compilation error is cr...
Definition: StaticAssert.h:143
System settings for the inline keywords.
BLAZE_ALWAYS_INLINE size_t getNumThreads()
Returns the number of threads used for thread parallel operations.
Definition: Functions.h:77