Notes

Skylake Microprocessor

The Skylake processor is a 2015 Intel processor. The Intel Processor # In 1978 Intel made the choice to have retrocompatibility for every processor. At that time they had the 8086 processor, with some number of memory bits. For backwards compatibility intructions have usually…

Fast Linear Algebra

Many problems in scientific computing include: Solving linear equations Eigenvalue computations Singular value decomposition LU/Cholesky/QR decompositions etc... And the userbase is quite large for this types of computation (number of scientists in the world is growing…

Fast Fourier Transforms

The algorithm has been the same, some ideas are in Fourier Series , but architectures change, which means there are new ways to make this algorithm even faster. Example of transforms # We have learned in Algebra lineare numerica , Cambio di Base that linear transforms are…

Cache Optimization

Locality principles # Remember the two locality principles in Memoria . temporal locality and spatial locality . Temporal Locality # Some elements just are accessed many times in time. This is an example of a temporal locality . Spatial locality # Some elements are accessed…

Compiler Limitations

On Compiler # Adding compilation flags to gcc not always makes it faster, it just enables a specific set of optimization methods. It's also good to turn on platform specific flags to turn on some specific optimization methods to that architecture. Remember that compilers are…

Sparse Matrix Vector Multiplication

Algorithms for Sparse Matrix-Vector Multiplication # Compressed Sparse Row # This is an optimized way to store rows for sparse matrices: Sparse MVM using CSR # void smvm(int m, const double* values, const int* col_idx, const int* row_start, double* x, double* y) { int i, j;…