Belos Version of the Day

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.  
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. 
OrthoManager benchmark.
Definition at line 65 of file BelosOrthoManagerTest.hpp.
static void Belos::Test::OrthoManagerBenchmarker< Scalar, MV >::baseline  (  const Teuchos::RCP< const MV > &  X, 
const int  numCols,  
const int  numBlocks,  
const int  numTrials  
)  [inline, static] 
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 83 of file BelosOrthoManagerTest.hpp.
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 

)  [inline, static] 
Benchmark the given orthogonalization manager.
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 (CommaDelimited Values) parser. In "compact" mode, two lines are printed, both of which are commadelimited 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 commadelimited format. 
Definition at line 153 of file BelosOrthoManagerTest.hpp.