I have a current application which I would like to add OpenGL rendering to. It has a main thread, which spawns N threads for computation. I will install N GPUs (2+) in the system where one GPU will have 2 displays (one for the 'console', the other for full-screen computation display), the others will have 1. Each compute thread would connect to its own GPU, create a context with a full-screen display on its attached monitor, and use OpenGL to render the results of its computation on its display.
Initially this is under Windows 7, but I need to migrate to Linux eventually. The GPUs are all GM107-based (GTX 750 ti) for now, but I do not wish to preclude the use of AMD devices if possible.
After reading the glfw documentation, I cannot see how to determine the connectivity of a monitor to a GPU, or a definitive statement that the above is possible. Is there a way? If not, is there another method outside the context of glfw to accomplish what I need to?
I don't know if it is possible to do this with GLFW, though I do know both AMD and NVIDIA provide OpenGL Extensions to do this:
I believe you need a NVIDIA Qudro card to use the NVIDIA extensions. Also after a quick reed of both extensions it looks like you need to bind you OpenGL context to a GPU at runtime, you might need to modify GLFWs CreateWindow() function to get this behaviour.
Hope that helps :)
Or, now that I think of it, you could try using SLI to utilise all the GPUs in your system and something like this to connect all the monitors you require.