Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Tpetra_Details_Behavior.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Tpetra: Templated Linear Algebra Services Package
4 //
5 // Copyright 2008 NTESS and the Tpetra contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef TPETRA_DETAILS_BEHAVIOR_HPP
11 #define TPETRA_DETAILS_BEHAVIOR_HPP
12 
13 #include <stddef.h>
14 #include <string>
15 
19 
20 namespace Tpetra {
21 namespace Details {
22 
92 class Behavior {
93  public:
100  static bool debug();
101 
107  static bool debug(const char name[]);
108 
114  static bool verbose();
115 
121  static bool verbose(const char name[]);
122 
124  static void disable_verbose_behavior();
125 
127  static void enable_verbose_behavior();
128 
132  static bool timing();
133 
139  static bool timing(const char name[]);
140 
142  static void disable_timing();
143 
145  static void enable_timing();
146 
155  static bool assumeMpiIsGPUAware();
156 
158  static bool cudaLaunchBlocking();
159 
168  static int TAFC_OptimizationCoreCount();
169 
176  static size_t verbosePrintCountThreshold();
177 
190  static size_t rowImbalanceThreshold();
191 
203  static bool useMergePathMultiVector();
204 
206  static bool hierarchicalUnpack();
207 
209  static size_t hierarchicalUnpackBatchSize();
210 
212  static size_t hierarchicalUnpackTeamSize();
213 
221  static size_t multivectorKernelLocationThreshold();
222 
227  static bool profilingRegionUseTeuchosTimers();
228 
234  static bool profilingRegionUseKokkosProfiling();
235 
241  static bool fusedResidual();
242 
247  static bool skipCopyAndPermuteIfPossible();
248 
254 
259  static bool enableGranularTransfers();
260 
265  static std::string defaultSendType();
266 
272  static bool timeKokkosDeepCopy();
273 
280  static bool timeKokkosDeepCopyVerbose1();
281 
288  static bool timeKokkosDeepCopyVerbose2();
289 
294  static bool timeKokkosFence();
295 
301  static bool timeKokkosFunctions();
302 
307  static size_t spacesIdWarnLimit();
308 
310  static void reject_unrecognized_env_vars();
311 };
312 
313 } // namespace Details
314 } // namespace Tpetra
315 
316 #endif // TPETRA_DETAILS_BEHAVIOR_HPP
static bool useMergePathMultiVector()
Whether to use the cuSPARSE merge path algorithm to perform sparse matrix-multivector products...
static int TAFC_OptimizationCoreCount()
MPI process count above which Tpetra::CrsMatrix::transferAndFillComplete will attempt to do advanced ...
static bool overlapCommunicationAndComputation()
Overlap communication and computation.
static bool timing()
Whether Tpetra is in timing mode.
static void disable_verbose_behavior()
Disable verbose mode, programatically.
static size_t multivectorKernelLocationThreshold()
the threshold for transitioning from device to host
static bool assumeMpiIsGPUAware()
Whether to assume that MPI is CUDA aware.
static size_t spacesIdWarnLimit()
Warn if more than this many Kokkos spaces are accessed.
static bool debug()
Whether Tpetra is in debug mode.
static size_t hierarchicalUnpackTeamSize()
Size of team for hierarchical unpacking.
static void reject_unrecognized_env_vars()
Search the environment for TPETRA_ variables and reject unrecognized ones.
static bool timeKokkosFunctions()
Add Teuchos timers for all host calls to Kokkos::parallel_for(), Kokkos::parallel_reduce() and Kokkos...
static bool fusedResidual()
Fusing SpMV and update in residual instead of using 2 kernel launches. Fusing kernels implies that no...
static bool profilingRegionUseTeuchosTimers()
Use Teuchos::Timer in Tpetra::ProfilingRegion.
static void disable_timing()
Disable timing, programatically.
static bool hierarchicalUnpack()
Unpack rows of a matrix using hierarchical unpacking.
static void enable_timing()
Enable timing, programatically.
static bool verbose()
Whether Tpetra is in verbose mode.
static size_t rowImbalanceThreshold()
Threshold for deciding if a local matrix is &quot;imbalanced&quot; in the number of entries per row...
static size_t hierarchicalUnpackBatchSize()
Size of batch for hierarchical unpacking.
static bool timeKokkosDeepCopyVerbose2()
Adds verbose output to Kokkos deep_copy timers by appending source, destination, and size...
static bool timeKokkosDeepCopyVerbose1()
Adds verbose output to Kokkos deep_copy timers by appending source and destination. This is especially useful for identifying host/device data transfers.
static bool skipCopyAndPermuteIfPossible()
Skip copyAndPermute if possible.
static void enable_verbose_behavior()
Enable verbose mode, programatically.
static size_t verbosePrintCountThreshold()
Number of entries below which arrays, lists, etc. will be printed in debug mode.
static bool timeKokkosFence()
Add Teuchos timers for all host calls to Kokkos::fence().
static bool cudaLaunchBlocking()
Whether the CUDA_LAUNCH_BLOCKING environment variable has been set.
static bool timeKokkosDeepCopy()
Add Teuchos timers for all host calls to Kokkos::deep_copy(). This is especially useful for identifyi...
static std::string defaultSendType()
Default send type.
static bool profilingRegionUseKokkosProfiling()
Use Kokkos::Profiling in Tpetra::ProfilingRegion.
static bool enableGranularTransfers()
Speed up transfers by overlapping computation and communication.
Description of Tpetra&#39;s behavior.