get current core id

Axel Freyn axel-freyn@gmx.de
Tue Jun 1 07:50:00 GMT 2010


Hello,
> 
> > Does anyone know if it is possible to get the ID of the core which is
> > executing code at a given point in a C++ program? I'm running code built
> > using gcc 4.4.1 on Ubuntu Koala 64-bit with an Intel core 2 quad and would
> > like to see whether external code calling a function in a shared library is
> > making use of multiple cores.
> 
> This isn't a gcc question.  The compiler doesn't know anything about
> different cores.  I say this not to chastise you, but to let you know
> that you are more likely to get the answer if you ask on a more
> appropriate forum.  The answer may be operating system specific.
I don't know a system-independent solution, however on Linux the easiest
way is probably to read it from /proc/PID/stat. It should be the
column 39 (?) - see "man 5 proc":
processor %d (since Linux 2.2.8)
       CPU number last executed on.
But I'm not sure whether you can get this information also for multiple
threads sharing the same process-ID? That might depend on the threading
library used.

Axel



More information about the Gcc-help mailing list