skill-tree:pe:3:b
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
skill-tree:pe:3:b [2020/06/26 14:48] – [Outcomes] kai_h | skill-tree:pe:3:b [2020/07/19 11:30] – external edit 127.0.0.1 | ||
---|---|---|---|
Line 2: | Line 2: | ||
# Background | # Background | ||
- | * | + | |
- | | + | Benchmarking is the activity to measure performance reliably and to assess the obtained performance. |
+ | |||
+ | A benchmark is an act of running a computer program, a set of programs, or other operations, in order to assess the relative performance of an object, normally by running a number of standard tests and trials against it. | ||
Such a controlled experiment is named a benchmark, but the term is also used – apparent from the context – for the program that is, or set of programs that are used for benchmarking. | Such a controlled experiment is named a benchmark, but the term is also used – apparent from the context – for the program that is, or set of programs that are used for benchmarking. | ||
Line 22: | Line 24: | ||
* The Linpack benchmark is used, for example, to build the TOP 500 list of the currently fastest supercomputers, | * The Linpack benchmark is used, for example, to build the TOP 500 list of the currently fastest supercomputers, | ||
* For HPC users, however, synthetic tests to benchmark HPC cluster hardware (like the Linpack benchmark) are of less importance, because the emphasis lies on the determination of speedups and efficiencies of the parallel program they want to use | * For HPC users, however, synthetic tests to benchmark HPC cluster hardware (like the Linpack benchmark) are of less importance, because the emphasis lies on the determination of speedups and efficiencies of the parallel program they want to use | ||
- | * Comrephend | + | * Comprehend |
* What is the scalability of my program? | * What is the scalability of my program? | ||
* How many cluster nodes can be maximally used, before the efficiency drops to values which are unacceptable? | * How many cluster nodes can be maximally used, before the efficiency drops to values which are unacceptable? | ||
Line 45: | Line 47: | ||
* Interpret typical weak and strong scaling plots | * Interpret typical weak and strong scaling plots | ||
* Avoid typical pitfalls | * Avoid typical pitfalls | ||
- | * Break-even considerations regarding the benchmark effort: benchmarking | + | |
- | * Presenting fair speedups: | + | * Benchmarking |
+ | | ||
+ | * For conventional speedup calculations the same version of an algorithm (the same program) is used to measure runtimes T(sequential) and T(parallel) but for fair speedup calculations the best known sequential algorithm to measure T(sequential) should be used | ||
+ | * **Special features of current CPU architectures** | ||
+ | * Features like turbo boost and hyper-threading may influence benchmark results | ||
+ | * **Shared nodes** | ||
+ | * If the same cores are potentially shared at times on a node by different programs, the value of the benchmark results may be significantly reduced or even made useless | ||
+ | * **Reproducibility** | ||
+ | * There are parallel algorithms which may produce non deterministic results, due to inherent effects of concurrency which in turn may lead to different (but generally equivalent) results but also to strongly differing runtimes of repeated runs | ||
# Subskills | # Subskills | ||
* [[skill-tree: | * [[skill-tree: | ||
+ | * [[skill-tree: |
skill-tree/pe/3/b.txt · Last modified: 2020/07/19 19:55 by lucy