Belos  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Static Public Member Functions | List of all members
Belos::Test::OrthoManagerBenchmarker< Scalar, MV > Class Template Reference

OrthoManager benchmark. More...

#include <BelosOrthoManagerTest.hpp>

Static Public Member Functions

static void baseline (const Teuchos::RCP< const MV > &X, const int numCols, const int numBlocks, const int numTrials)
 Establish baseline run time for OrthoManager benchmark. More...
 
static void benchmark (const Teuchos::RCP< OrthoManager< Scalar, MV > > &orthoMan, const std::string &orthoManName, const std::string &normalization, const Teuchos::RCP< const MV > &X, const int numCols, const int numBlocks, const int numTrials, const Teuchos::RCP< OutputManager< Scalar > > &outMan, std::ostream &resultStream, const bool displayResultsCompactly=false)
 Benchmark the given orthogonalization manager. More...
 

Detailed Description

template<class Scalar, class MV>
class Belos::Test::OrthoManagerBenchmarker< Scalar, MV >

OrthoManager benchmark.

Author
Mark Hoemmen

Definition at line 66 of file BelosOrthoManagerTest.hpp.

Member Function Documentation

template<class Scalar , class MV >
static void Belos::Test::OrthoManagerBenchmarker< Scalar, MV >::baseline ( const Teuchos::RCP< const MV > &  X,
const int  numCols,
const int  numBlocks,
const int  numTrials 
)
inlinestatic

Establish baseline run time for OrthoManager benchmark.

Replacing a Belos OrthoManager or MatOrthoManager's projection and normalization operations with the same number of vector copies establishes a rough lower bound on run time, because orthogonalization generally requires that much data movement. This gives us a rough sense for how long the orthogonalization should take, so we can calibrate the number of trials needed for accurate timings.

Definition at line 84 of file BelosOrthoManagerTest.hpp.

template<class Scalar , class MV >
static void Belos::Test::OrthoManagerBenchmarker< Scalar, MV >::benchmark ( const Teuchos::RCP< OrthoManager< Scalar, MV > > &  orthoMan,
const std::string &  orthoManName,
const std::string &  normalization,
const Teuchos::RCP< const MV > &  X,
const int  numCols,
const int  numBlocks,
const int  numTrials,
const Teuchos::RCP< OutputManager< Scalar > > &  outMan,
std::ostream &  resultStream,
const bool  displayResultsCompactly = false 
)
inlinestatic

Benchmark the given orthogonalization manager.

Parameters
orthoMan[in(/out)] The orthogonalization manager to benchmark
orthoManName[in] Name of the orthogonalization manager (e.g., "TSQR", "ICGS", "DGKS")
normalization[in] Normalization scheme used by the orthogonalization manager (only applicable to the "Simple" orthogonalization)
X[in] "Prototype" multivector; not modified
numCols[in] Number of columns per block
numBlocks[in] Number of blocks
numTrials[in] Number of trials in the timing run
outMan[out] Output manager
resultStream[out] Output stream for printing benchmark results. If displayResultsCompactly is true, it will be written by all MPI rank(s), so on ranks other than 0, it should be set appropriately to a "black hole stream" that doesn't write anything.
displayResultsCompactly[in] If false, rely on TimeMonitor::summarize() to print results to resultStream (and ensure only MPI Rank 0 does so). If true, print results in a more compact format suitable for automatic parsing, using a CSV (Comma-Delimited Values) parser. In "compact" mode, two lines are printed, both of which are comma-delimited ASCII text. The first line begins with a "comment" character #; following that are column ("field") labels. The second line contains the actual data, again in ASCII comma-delimited format.

Definition at line 154 of file BelosOrthoManagerTest.hpp.


The documentation for this class was generated from the following file:

Generated on Fri Aug 14 2020 10:48:35 for Belos by doxygen 1.8.5