Does the size of a pool affect the number of invalid shares? If so why does it?
There's no reason pool size should affect the number of invalid shares. If you're seeing different amounts of invalid shares on different GPUs, the most likely explanation is that the GPU is too hot, improperly overclocked, or failing.
An invalid share might be a share you submitted with an error in calculations, or possibly a stale share, depending on the pool implementation.
- A possible reason for a rejection of a share might be that the pool doesn't use difficulty 1 as the target, while some miners might try submitting those shares
- There is also a possibility that your miner makes some mistakes while calculating hashes, but that is less likely
- The pool might be poorly implemented and make some mistakes
A reason for a stale share might be that:
- The pool does not use long polling, thus it doesn't inform the miners when to update their getwork
All in all, you should ask other people whether they have the same problem for the given pool, and try mining using a different miner and a different computer and see if the problem persists.
Many things can affect your stale/reject rate. An overclocked or faulty GPU could be making miscalculations. The pool's long polling might not be working properly. Even network instability could cause rejects due to duplicate shares (the share was received by the server, but your miner got an error so it tries again).
The way pool size would affect rejects is that a large number of miners slow down long polling on the server side. Everything else being equal it takes longer for the server to notify 10 000 workers of a block change than it would 500 workers.
So in general you can expect lower stale rate on a small pool, unless the small pool effect is negated by really slow server hardware or some other factor.