I am running Advisor on a C program under Ubuntu 18.04. The code is a shared object called from a wrapper.
I inserted annotations into the code as shown in the attached file, but when I run the MAP (memory access patterns) report, I get this message: "Warning: No SITE annotations were encountered, so no stride/alignment data can be reported."
The command string is:
advixe-cl --collect=map --enable-cache-simulation --project-dir=/usr/test/Complex_If/091220 ./C_Wrapper_for_C_64-Complex_If.exe
The most plausible explanation I can find is from this Intel forum question in 2016: "One possible reason is the loop is not executing. Or executing so quickly that there are no samples in the loop. I would first run an Advisor survey and then run a Trip count to verify if the loop is executing and how many times it is iterating."
So I re-ran the test with 50 million iterations (tripcounts), but I still get the same message when Advisor completes the test run.
Another explanation may be that this program is a shared object called from a C wrapper. The command string shown above is invoked on the wrapper from which the shared object is called.
The annotated loop part of the code is in the attached file. It's compiled with
sudo gcc -shared -fPIC -ldl -ggdb -o Complex_If.so Complex_If.c.
My questions are:
1. Is the problem related to the length of the run? It seems like 50 million iterations should be enough.
2. Is the problem due to the fact that the annotations are in a shared object? Does Advisor have a problem with annotations in shared objects?
Thanks for your help.
It looks like there is a problem with support of shared objects + wrapper built by gcc or clang.
We are working on it.
After investigation problem from this post https://community.intel.com/t5/Analyzers/Advisor-error-messages-with-annotations/m-p/1199537 I found the workaround until we fix issue (rebuild wrapper with Intel Compiler: icc -fPIC -ldl -g -o C_Wrapper_for_C_64-Complex_If.exe C_Wrapper_for_C_64-Complex_If.c)
Thanks for your reply. I look forward to the fix. Will you update this post when it's finished?
Advisor is the best tool I have found for cache and memory analysis, and I want to use it extensively in my work.
I received notice from Intel that this ticket would be closed. How will you notify that Advisor has been updated to support shared objects created with Clang and GCC, as described by Sergey in his response above? The fix is critical for my work. Thank you.