[osg-users] SingleThreaded leading to whole application just running on one core

Fabian Wiesel fabian.wiesel at gmail.com
Sun Sep 25 02:46:06 PDT 2016


Hi,

I can confirm the behaviour with the following test case:
https://github.com/fwiesel/vertexarrayfunctest/blob/threads/main.cpp#L92-L103
All threads run on CPU 0.

That clears up the mystery, which baffled me and two of my colleagues:
After upgrading to a new Ubuntu version, suddenly our application making heavy use of the Intel Thread Building Blocks failed to scale with the cores.
Explicitly initialising the TBB early in the program solved the issue, so we blamed some change in TBB, and I didn't investigate further.

It looks like OSG was previously packaged  with QtThreads instead of pthreads, making the affinity operations a no-op, while the newer doesn't.

In the light that it affects any child thread, can I ask you to re-consider the affinity handling, and/or maybe rename 
osgViewer::ViewerBase::SingleThreaded to osgViewer::ViewerBase::SingleThreadedCpuLocked or something?

I understand, that it is possible to override the behaviour (which I did now), but that requires some internal knowledge of the library, which you obviously have.
But for me as a user, where OSG is simply one of the libraries I use, I would not it effectively to change the behaviour of a second one.

Thanks,
  Fabian
  


More information about the osg-users mailing list