I've been lurking around a while trying to figure this all out...

My understanding is that the search space to find the right nonce for a single block is 2^32 in size.

The nonce is generated, the hash computed, and if the hash is less than the difficulty target then that nonce is a winner.

Is that the simple version?

But, I don't get how multiple GPUs work to solve a search for a single block. Say I have 3 6990s burning up watts.

Then I have 6 GPUs working on the mining problem. Are they all working on the same block together or are they all working on different blocks?

I can understand how they'd all work on different blocks simultaneously, they'd each march through the 2^32 search space trying incremental nonces in a brute force approach.

But for them to all work together on a single block would imply some partitioning of the search space so that each GPU would never duplicate the work of another. Yet I never see any discussion of a "work manager/controller" piece of software that parcels out the search space to the "n" GPUs that a miner might be running. What's up?

Am I missing something?

Again, I'm just thinking about solo mining with multiple GPUs right now. I'm not ready to think about/discuss pooled mining and how that must work!

Maybe this is a noob topic but I just don't get it.

Thanks.