On Fri, Jan 24, 2014 at 01:27:54PM -0500, Nick Mathewson wrote:
So, others have answered pretty well, but I'll add a little too.
Right now, Tor uses multiple cores to parallelize circuit extension handshakes, but not much else. I'm hoping that in future versions we can make serious progress on getting more of our crypto parallelized[*] to better take advantage of more cores, but for right now, NumCPUs is a good thing, but is not actually adequate for evenly dividing your Tor process's CPU load among a larger number of cores.
[*] See eg discussion at https://trac.torproject.org/projects/tor/wiki/org/projects/Tor/Multithreaded... . The design there is still sound, but it needs some C hackers with spare time.
The design is solid, and a respectable chunk of it got written, but it took longer than I thought and I got distracted with other foreground-priority things at some point, IIRC. I should rebase it against current master and get back to it at some point.