<div dir="ltr"><div>Thank you Robert, these are great leads, will check them out.</div><div><br></div><div>There is one more variant I wonder about:</div><div>If I run two osg apps on one screen, with multiple graphics cards,</div><div>can I then share the loads between the GPUs?</div><div>Something like "GPU Affinity"?</div><div><br></div><div>Kind regards</div><div>Per<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, 2 Oct 2018 at 09:54, Robert Osfield <<a href="mailto:robert.osfield@gmail.com">robert.osfield@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Nick & Per,<br>
<br>
On Tue, 2 Oct 2018 at 06:12, Per Nordqvist <<a href="mailto:nordqvist@gmail.com" target="_blank">nordqvist@gmail.com</a>> wrote:<br>
> I and Nick are working to utilize as much of the GPUs as possible, either on single machine or cluster.<br>
> So hardware is not yet decided, but let's assume ubuntu 16+, multiple modern Nvidia gaming cards, but still single screen.<br>
<br>
osgViewer has been written from the ground up to support multiple GPUs<br>
on a single machine with a single application.<br>
<br>
The basic concept is the View's master Camera controls the overall<br>
view, and a series of slave Camera's assign to the View handle the<br>
rendering for each graphics card/display.  The osgwindow example is<br>
the simplistic example of this in action.  A search for addSlave in<br>
the OSG codebase will reveal lots of other examples of it in action -<br>
it can be used for a wide range of tasks.<br>
<br>
The OSG out of the box will default to DrawThreadPerContext<br>
ThreadingModel on modern machines, you might find<br>
CullDrawThreadPerContext more appropriate, you could even try<br>
CullThreadPerCameraDrawThreadPerContext if you have plenty of cores to<br>
throw at it.<br>
<br>
In 3.6.x you also have support for explicitly controlling Affinity so<br>
you can lock various threads to particular cores.<br>
<br>
Another variable you could play with is that you can set up the<br>
OS/desktop so that one single graphics context can span multiple<br>
cards.<br>
<br>
Modern graphics cards are beast so you might well be able to handle<br>
quite a few displays just from one card.<br>
<br>
Robert.<br>
_______________________________________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org" target="_blank">osg-users@lists.openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
</blockquote></div>