Any limitation of concurrent processes using GPU?

The situation is I have several processes using OpenGl running concurrently, and as the number of the process increases to a specific value , say 6, the OpenGl api call such as glMakeCurrent will always fail, and also associated with segment fault in the driver.

following is the stack when the segment fault happens:
#1 0x00007f8372f6c1f2 in ?? () from /usr/lib/libnvidia-glcore.so.340.46
#2 0x00007f8372b4f0f8 in ?? () from /usr/lib/libnvidia-glcore.so.340.46
#3 0x00007f8371521eaf in glDrawArrays () …

At this failure, I checked the GPU usage, the loading and GPU memory neither reach a high level, sometimes may only around 30%.
So I’m wondering whether this some limitation for the number of processes using the GPU currently.

The hardware does have a limit to the number of applications that can access it directly. It’s a little surprising that the driver crashes, though. Does the problem still occur with 346.35?

I’ve not used 346.35 yet.

Are the limitation all the same to all GPU cards? If not, where can I find the exact number for each card.

What do you mean by applications? What if I put all GPU related work into a single process using multi-thread. Does this option can get around the limitation?

Looking forward to your reply, it’s import for us to choose proper GPU cards.