Mantid
|
#include <atomic>
#include <mutex>
Go to the source code of this file.
Namespaces | |
namespace | Mantid |
Helper class which provides the Collimation Length for SANS instruments. | |
namespace | Mantid::Kernel |
Macros | |
#define | IF_NOT_PARALLEL |
#define | IF_PARALLEL if (false) |
#define | PARALLEL |
#define | PARALLEL_ATOMIC |
#define | PARALLEL_CHECK_INTERRUPT_REGION |
Adds a check after a Parallel region to see if it was interupted. More... | |
#define | PARALLEL_CRITICAL(name) |
#define | PARALLEL_END_INTERRUPT_REGION |
Ends a block to skip processing is the algorithm has been interupted Note the start of the block if not defined that must be added by including PARALLEL_START_INTERRUPT_REGION at the start of the loop. More... | |
#define | PARALLEL_FOR_IF(condition) |
Empty definitions - to enable set your complier to enable openMP. More... | |
#define | PARALLEL_FOR_NO_WSP_CHECK() |
#define | PARALLEL_FOR_NO_WSP_CHECK_FIRSTPRIVATE2(variable1, variable2) |
#define | PARALLEL_FOR_NOWS_CHECK_FIRSTPRIVATE(variable) |
#define | PARALLEL_GET_MAX_THREADS 1 |
#define | PARALLEL_NUMBER_OF_THREADS 1 |
#define | PARALLEL_SECTION |
#define | PARALLEL_SECTIONS |
#define | PARALLEL_SET_CONFIG_THREADS |
#define | PARALLEL_SET_DYNAMIC(val) |
#define | PARALLEL_SET_NUM_THREADS(MaxCores) |
#define | PARALLEL_START_INTERRUPT_REGION |
Begins a block to skip processing is the algorithm has been interupted Note the end of the block if not defined that must be added by including PARALLEL_END_INTERRUPT_REGION at the end of the loop. More... | |
#define | PARALLEL_THREAD_NUMBER 0 |
#define | PRAGMA(x) _Pragma(#x) |
#define | PRAGMA_OMP(expression) |
Functions | |
template<typename T , typename BinaryOp > | |
void | Mantid::Kernel::AtomicOp (std::atomic< T > &f, T d, BinaryOp op) |
Uses std::compare_exchange_weak to update the atomic value f = op(f, d) Used to improve parallel scaling in algorithms MDNormDirectSC and MDNormSCD. More... | |
template<typename Arg > | |
std::enable_if< std::is_pointer< Arg >::value, bool >::type | Mantid::Kernel::threadSafe (Arg workspace) |
Thread-safety check Checks the workspace to ensure it is suitable for multithreaded access. More... | |
template<typename Arg , typename... Args> | |
std::enable_if< std::is_pointer< Arg >::value, bool >::type | Mantid::Kernel::threadSafe (Arg workspace, Args &&...others) |
Thread-safety check Checks the workspace to ensure it is suitable for multithreaded access. More... | |
template<typename Arg > | |
std::enable_if<!std::is_pointer< Arg >::value, bool >::type | Mantid::Kernel::threadSafe (const Arg &workspace) |
Thread-safety check Checks the workspace to ensure it is suitable for multithreaded access. More... | |
template<typename Arg , typename... Args> | |
std::enable_if<!std::is_pointer< Arg >::value, bool >::type | Mantid::Kernel::threadSafe (const Arg &workspace, Args &&...others) |
Thread-safety check Checks the workspace to ensure it is suitable for multithreaded access. More... | |
#define IF_NOT_PARALLEL |
Definition at line 223 of file MultiThreaded.h.
#define IF_PARALLEL if (false) |
Definition at line 222 of file MultiThreaded.h.
#define PARALLEL |
Definition at line 231 of file MultiThreaded.h.
#define PARALLEL_ATOMIC |
Definition at line 225 of file MultiThreaded.h.
#define PARALLEL_CHECK_INTERRUPT_REGION |
Adds a check after a Parallel region to see if it was interupted.
Definition at line 117 of file MultiThreaded.h.
#define PARALLEL_CRITICAL | ( | name | ) |
Definition at line 224 of file MultiThreaded.h.
#define PARALLEL_END_INTERRUPT_REGION |
Ends a block to skip processing is the algorithm has been interupted Note the start of the block if not defined that must be added by including PARALLEL_START_INTERRUPT_REGION at the start of the loop.
Definition at line 102 of file MultiThreaded.h.
#define PARALLEL_FOR_IF | ( | condition | ) |
Empty definitions - to enable set your complier to enable openMP.
Definition at line 218 of file MultiThreaded.h.
#define PARALLEL_FOR_NO_WSP_CHECK | ( | ) |
Definition at line 219 of file MultiThreaded.h.
#define PARALLEL_FOR_NO_WSP_CHECK_FIRSTPRIVATE2 | ( | variable1, | |
variable2 | |||
) |
Definition at line 221 of file MultiThreaded.h.
#define PARALLEL_FOR_NOWS_CHECK_FIRSTPRIVATE | ( | variable | ) |
Definition at line 220 of file MultiThreaded.h.
#define PARALLEL_GET_MAX_THREADS 1 |
Definition at line 230 of file MultiThreaded.h.
#define PARALLEL_NUMBER_OF_THREADS 1 |
Definition at line 229 of file MultiThreaded.h.
#define PARALLEL_SECTION |
Definition at line 233 of file MultiThreaded.h.
#define PARALLEL_SECTIONS |
Definition at line 232 of file MultiThreaded.h.
#define PARALLEL_SET_CONFIG_THREADS |
Definition at line 85 of file MultiThreaded.h.
#define PARALLEL_SET_DYNAMIC | ( | val | ) |
Definition at line 228 of file MultiThreaded.h.
#define PARALLEL_SET_NUM_THREADS | ( | MaxCores | ) |
Definition at line 227 of file MultiThreaded.h.
#define PARALLEL_START_INTERRUPT_REGION |
Begins a block to skip processing is the algorithm has been interupted Note the end of the block if not defined that must be added by including PARALLEL_END_INTERRUPT_REGION at the end of the loop.
Definition at line 94 of file MultiThreaded.h.
#define PARALLEL_THREAD_NUMBER 0 |
Definition at line 226 of file MultiThreaded.h.
#define PRAGMA | ( | x | ) | _Pragma(#x) |
Definition at line 84 of file MultiThreaded.h.
#define PRAGMA_OMP | ( | expression | ) |
Definition at line 234 of file MultiThreaded.h.