At the moment, load balancing methods in CGMiner and BFGMiner do not distribute across pools very evenly. I've also experienced issues with pool connections causing the miner to hang, causing me to lose valuable mining time. I've created a shell script which launches an instance of cgminer or bfgminer for each device, with each device tied to a different master pool.
With ASICs soon to be released in mass quantities, I believe it is important for all work to be evenly distributed across the major pools. If you have multiple devices, singling each one out with a pool may be the most reliable load balancing method.
Feel free to modify and improve.
LoadBalanceByDevice.shGit Tree:https://github.com/crazyblane/MINING_SHELL_SCRIPTS