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/qdx5h1
In the bottom left pane you see the project tree with all included files. To have a compiler having all project files included, it is important to add new compilers out of this pane!
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?