GitLab now enforces expiry dates on tokens that originally had no set expiration date. Those tokens were given an expiration date of one year later. Please review your personal access tokens, project access tokens, and group access tokens to ensure you are aware of upcoming expirations. Administrators of GitLab can find more information on how to identify and mitigate interruption in our documentation.
@@ -80,7 +79,7 @@ You can see more options if you hit `t` while in `ccmake`. Then you can also set
...
@@ -80,7 +79,7 @@ You can see more options if you hit `t` while in `ccmake`. Then you can also set
Take your matrix classes using dynamic memory allocation with or without the `std::unique_ptr` and add a program which copies, moves and destroys your matrix class. Enable the address sanitizer and see if there are any issues with your code! Try to add your test program(s) as new CMake executable(s).
Take your matrix classes using dynamic memory allocation with or without the `std::unique_ptr` and add a program which copies, moves and destroys your matrix class. Enable the address sanitizer and see if there are any issues with your code! Try to add your test program(s) as new CMake executable(s).
### Performance Measurements STL
### Performance Measurements STL
Time some of the STL algorithms and containers we used in exercise. Compare different compiler options. A class timer is already in the CMakeDemo directory. Try to add your benchmark(s) as new CMake executable(s).
Time some of the STL algorithms and containers we used in exercise 10. Compare different compiler options. A class timer is already in the CMakeDemo directory. Try to add your benchmark(s) as new CMake executable(s).
### Optimize Matrix Multiplication
### Optimize Matrix Multiplication
There is already a `matmult` application in the CMake directory which measures the runtime of the matrix multiplication. The naive implementation performs rather poorly, try to change that! As a first step you could try to transpose the second matrix, so that you have line-wise access to both matrices during the algorithm. Secondly you could try to implement a blocking strategy (https://en.wikipedia.org/wiki/Loop_nest_optimization) to improve locality and cache reuse.
There is already a `matmult` application in the CMake directory which measures the runtime of the matrix multiplication. The naive implementation performs rather poorly, try to change that! As a first step you could try to transpose the second matrix, so that you have line-wise access to both matrices during the algorithm. Secondly you could try to implement a blocking strategy (https://en.wikipedia.org/wiki/Loop_nest_optimization) to improve locality and cache reuse.