Open the local Compiler Explorer (CE) instance via https://hpc-mover.rrze.uni-erlangen.de/compiler-explorer/.

Now you see two panes: On the left is a C++ source code editor, while on the right is the compiled assembly code. 

Hint: You can change in between compilers with the dropdown menu on the top left corner of the right-hand-side pane which currently states the default g++ compiler.

1. Try changing it to the latest Intel legacy compiler  (icc 2021.6.0). What changes can you observe?



Hint: You can add compiler specific flags in the form next to the dropdown menu, stating "Compiler options..." as default. 

2. Try adding the flags "-O3 -xHOST". What changes did the compiler apply?


Hint: You can add an executor by selecting "Add new..." in the compiler pane and choose "Executor From This".

3. Try adding an executor for your code. What can you observe?


So far you've seen that CE can work on compilable code and does not need executable code. Now let's change to an actual program with main function.

4. Open the DOT PRODUCT example via https://hpc-mover.rrze.uni-erlangen.de/compiler-explorer/z/WsY7n1

Hint: You can adjust each pane's position by drag&drop and increase or decrease the pane size at its border.

5. Add a new executor from the compiler pane and run the program with a working set inside the L1 cache using the correct arguments which you can add in the executor via the ">_ Arguments" button. Does the result match with our pen&paper run in hands-on #1?



Last modified: Friday, 20 October 2023, 2:13 PM