|
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 (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 153 of file BelosOrthoManagerTest.hpp.
1.7.6.1