No GUI "vtlec" neither linking the libVtuneApi.so

No GUI "vtlec" neither linking the libVtuneApi.so

I have installed Vtune as root and added users to the sag group to be able to use it on our personal accounts. Only root can run the GUI version of Vtune but no other users. I wonder what should be done about that. We have a file server which mounted through NFS.

Also, we have instrumented some code with VTResume() and VTPause() but we are not able to link against libVtuneApi.so library, it seems like it never gets linked. The size of that file is about 9K only, does that sound right or we have a bad installation?
Also, if someone can send me a sample Makefile where you have linked that library into your code, I would be grateful. This is really hindering my work and I would appreciate any help very much.

I run RH EL3.0, 2.4.XXX Kernel, build 814 of Vtune V3.0, my compiler is gcc-3.2.3

Thanks very much and I appreciate the help.

19 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

This is the exact message of what I get when I try running vtlec as a user and not root.

"IO exception error. Please make sure your file system is not full and you have the proper access right to the file system."

I just noticed that the library called libVtuneApi.so is so small, does that sound the right size for it?

-rwxr-xr-x 1 root root 105590 Nov 19 2004 libVtuneApiSamp.so
-rwxr-xr-x 1 root root 9008 Nov 19 2004 libVtuneApi.so

We have reinstalled again but the same size appeared again.

Also, when I tried nm on these two files, I get some output with libVtuneApiSamp.so while I get with libVtuneApi.so:
$nm libVtuneApi.so
nm: libVtuneApi.so: no symbols

Does that look correct?

Hey absalam,

The current release of VTune does not work with networked filesystems: it's just not prepped for it yet.

I'd urge you to uninstall the current setup, and reinstall vtune this time with only local filesystem options. Compare results.

I bet you'll see it works ok then.

Just checked API file sizes on my server:

-rwxr-xr-x 1 root root 105590 Nov 18 2004 libVtuneApiSamp.so
-rwxr-xr-x 1 root root 9008 Nov 18 2004 libVtuneApi.so
cheers
jdg

Message Edited by jdgallag on 07-12-2005 04:16 PM

Thanks for the reply, you are much faster than premier support, which is quite interesting.

Anyways, our installation is on the local disk of one of our machines but our binaries that we would work on are on the NFS mounted disk on a file server. So, what you are saying is that we have to just move everything to be local and then it should work.

The installation has always been local since this was the only way we were able to do it, I have moved my source-tree to the local disk and did "make clean" then "make all", and here is what I got (I am only including the faulting command):

g++ -Wall -static -L/opt/intel/vtune/analyzer/bin/libVtuneApi.so -O3 -g -I/og++ -Wall -static -L/opt/intel/vtune/analyzer/bin/libVtuneApi.so -O3 -g -I/opt/intel/vtune/analyzer/include sat_solver.o libsat.a -o zchaff

libsat.a(zchaff_solver.o)(.text+0x4f81): In function `CSolver::solve()':
/home/absalam/BlackBox/Code/zChaff-Vtune/zchaff_solver.cpp:920: undefined reference to `VTResume'
libsat.a(zchaff_solver.o)(.text+0x4f90):/home/absalam/BlackBox/Code/zChaff-Vtune/zchaff_solver.cpp:934: undefined reference to `VTPause'
collect2: ld returned 1 exit status
make: *** [zchaff] Error 1

Hameed.

Undefined reference to VTResume

that's the issue as you know

Check $PATH?

Here is my PATH

$ echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:
/usr/local/bin:/usr/X11R6/bin:/import/home/absalam/bin:
/opt/intel/vtune/analyzer/bin/:/opt/intel/vtune/bin:.:

I get the same exact error too.

Also, I didn't an answer for not having vtlec running. The message I get is in the second message of this series of posts.

Just to have given you everything, here is my LD_LIBRARY_PATH

$ echo ${LD_LIBRARY_PATH}
/opt/intel/vtune/analyzer/bin:/opt/intel/vtune/shared/bin

Do I have to be working locally on the machines console or logging remotely would do?

I have also another question, Is SUSE 9.3 Pro, one of your supported OSes that I can install Vtune on or not?

Here are my premier support cases numbers just in case,

314936
312090
311855

Hameed.

Hi Hameed:

In your first post, you mentioned that all users were added to the group 'sag'. Normally, users should be added to the 'vtune' group to use the software.

Regarding linking the library in, here is a sampling command line:

Code:

g++ -g -O2 -o test -I/opt/intel/vtune/analyzer/include -L/opt/intel/vtune/analyzer/bin -lVtuneApi test.cpp

So, for the library reference drop the 'lib' AND the '.so'.

Hope that helps!

Message Edited by DaveA on 07-18-2005 10:14 AM

Regards,
MrAnderson

We were able to get vtlec to work but still the linking problem of libVtuneApi.so is persistant?

Do we have to be running Vtune on the machine while we are logged to the machine's console but not through ssh or any other remote connection like XDMCP or we have to install the remote client and collect data using that technique?

Hameed.

Did you see my post? Our posts may have crossed, so I wanted to make sure you actually saw my posting regarding the link options.

Regards,
MrAnderson

Dave,

Thanks very much. I did saw your message and I will try it.

Can you please answer the second part of my message regarding Remote connection to the machine vs. running from the console?

Hameed.

Here is my result.

$ g++ -g -O2 -o test -I/opt/intel/vtune/analyzer/include -L/opt/intel/vtune/analyzer/bin -lVtuneApi test.c

/opt/intel/vtune/analyzer/bin/libVtuneApi.so: undefined reference to `dlerror'
/opt/intel/vtune/analyzer/bin/libVtuneApi.so: undefined reference to `dlclose'
/opt/intel/vtune/analyzer/bin/libVtuneApi.so: undefined reference to `dlopen'
/opt/intel/vtune/analyzer/bin/libVtuneApi.so: undefined reference to `dlsym'
collect2: ld returned 1 exit status

What do you think?

$ g++ -g -O2 -o test -I/opt/intel/vtune/analyzer/include -L/opt/intel/vtune/analyzer/bin -lVtuneApi -losi test.cpp

This works now.

Thanks very much for your help.

Well, I'm not very clear on what you are asking. I will try to answer, anyway.

You can use either method: local or remote to collect data. It just depends on your preference, mostly. That is, the 3.0 VTune analyzer supports remote data collection, so if you want to install the analyzer on two systems and collect on a remote, you can.

Perhaps you could clarify your question?

Thanks,

Regards,
MrAnderson

Okay here is more elaboration on that:

Machine X is the where Vtune is installed and where we will be conducting our experiments.

To run Vtune now, what we do is: Run an xterm from my desktop machine which doesn't have any Vtune clients running at all, then I open and xterm and "ssh -l absalam machine_X -X" to that X machine where Vtune is installed and after that I deal with Vtune as if I am on the machine locally i.e. I got now vtlec and vtl was already working i.e everything is running or seems to be running. Is this the correct way of using Vtune?

On another note, the following is a more technical question pertaining to using Vtune:

I need to collect the miss rate per each load. How to go about collecting this? I apologize if I am asking too many questions.

I was able to get using Vtlec miss rate for the 2nd level cache and several different other things.

What I have problems with now is that I want to know which elements of our datastructures cause the most 2nd level cache misses?

I can do view source where it has silly numbers showing the misses something like 0.04% and 0.11% and stuff like that while the whole function is reported to have 83% misses for example, this function is called many many times, are the per line misses shown are the miss rate relative to one access only or how to interpret these tiny little %s?

Thanks alot guy for the wonderful tool and for your help.

Hameed.

Since the system that you want to use the VTune analyzer on is a remote system, I recommend using the remote data collector and running the vtlec on the local system. Performance of vtlec via an xterm is not going to be good. However, if you can live with it, then you can certainly use it that way.

Or, you could install the remote agent (see setup_rdc.tar on Intel PremierSupport, if you are using the non-commercial version) and vtlec on the local system. Then, create and run your activities using the local system as the host, but collect the data on the remote system. You then view the data on the local system, as well.

Regards,

Message Edited by DaveA on 07-21-2005 03:06 PM

Regards,
MrAnderson

Leave a Comment

Please sign in to add a comment. Not a member? Join today