Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
pandoc:introduction-to-vsc:10_performance:10_performance [2018/01/31 13:17] – Pandoc Auto-commit pandoc | pandoc:introduction-to-vsc:10_performance:10_performance [2020/10/20 08:09] (current) – Pandoc Auto-commit pandoc | ||
---|---|---|---|
Line 38: | Line 38: | ||
* HPC (High Performance Computing): execution time spent on just **a few lines of code** | * HPC (High Performance Computing): execution time spent on just **a few lines of code** | ||
- | * Linear Algebra * (Dense) matrix multiplication: | + | * Linear Algebra |
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
===== Know algorithmic complexity (2) ===== | ===== Know algorithmic complexity (2) ===== | ||
- | * Other codes * Identify **main parameters** * Identify **scaling** (usually polynomial) | + | * Other codes |
+ | | ||
+ | | ||
* Large problem size => subalgorithm with highest exponent of complexity becomes dominant | * Large problem size => subalgorithm with highest exponent of complexity becomes dominant | ||
Line 130: | Line 140: | ||
===== Very important libraries ===== | ===== Very important libraries ===== | ||
- | * **Level 3 BLAS** (=“Matrix Multiplication”) * O(n^3) operations with O(n^2) memory accesses * portable performance (often faster by a factor of 10) * including triangular and symmetric / hermitian matrices * any three-loop operation with $C=\alpha AB + \beta C$ can be written using Level 3 BLAS | + | * **Level 3 BLAS** (=“Matrix Multiplication”) |
+ | | ||
+ | | ||
+ | | ||
+ | | ||
- | * MKL: free **Math Kernel Library** from Intel * Linear Algebra * FFT * Neural networks * Statistics * Sparse algorithms * Parallel * .. | + | * MKL: free **Math Kernel Library** from Intel |
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
* **HDF5**: Hierarchical Data Format: efficient and portable library | * **HDF5**: Hierarchical Data Format: efficient and portable library | ||
Line 183: | Line 204: | ||
* I/O libraries * Hint: use I/O of only one language, or * link with correct runtime libraries, or * link by calling compiler (e.g. gfortran) instead of linker (e.g. ld) | * I/O libraries * Hint: use I/O of only one language, or * link with correct runtime libraries, or * link by calling compiler (e.g. gfortran) instead of linker (e.g. ld) | ||
* Copy-in and/or copy-out: can affect performance | * Copy-in and/or copy-out: can affect performance | ||
- | * Class/ | + | * Class/ |
===== Interoperability (3) ===== | ===== Interoperability (3) ===== | ||
Line 320: | Line 341: | ||
https:// | https:// | ||
+ | |||