Notice also that performance in the first 100k blocks doesn't really make a difference in overall performance, as long as there are at at least 8 threads. Completion rapidly converges around block 400. So 8 threads would be sufficient, but we want to get started as fast as possible as well. So for this 8 dual core machine on a 2.3Gbps network, we want at least 32 logical threads, which is twice the number of physical threads. And varying the number of threads in the pool really wouldn't make much difference, apart from some small amount of memory saved.