Belos Package Browser (Single Doxygen Collection)
Development
|
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... | |
Private Types | |
typedef Scalar | scalar_type |
typedef Teuchos::ScalarTraits < Scalar >::magnitudeType | magnitude_type |
typedef MultiVecTraits< Scalar, MV > | MVT |
typedef Teuchos::SerialDenseMatrix < int, Scalar > | mat_type |
OrthoManager benchmark.
Definition at line 34 of file BelosOrthoManagerTest.hpp.
|
private |
Definition at line 36 of file BelosOrthoManagerTest.hpp.
|
private |
Definition at line 37 of file BelosOrthoManagerTest.hpp.
|
private |
Definition at line 38 of file BelosOrthoManagerTest.hpp.
|
private |
Definition at line 39 of file BelosOrthoManagerTest.hpp.
|
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 52 of file BelosOrthoManagerTest.hpp.
|
inlinestatic |
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 (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 122 of file BelosOrthoManagerTest.hpp.