[mira_talk] multi-thread limits

  • From: Laurent MANCHON <lmanchon@xxxxxxxxxxxxxx>
  • To: mira_talk@xxxxxxxxxxxxx
  • Date: Wed, 15 May 2013 10:32:27 +0200

--Hi all,

just an observation:

I have notice that adding more threads usually helps,
but after some point, they cause some performance degradation.
Not long ago, I was doing performance testing Mira 3.4.0 on a 4 Intel deca-core machine with Hyper-threading. I played with the minimum and maximum number of threads and in the end i found out that for this version of Mira
the best throughput was somewhere between 36 and 40 threads.
Anything outside those boundaries performed worse.
In other words, my process will not finish faster if I run it using 80 threads rather than 40 threads. Lesson learned? If I were you, I would test with different number of threads until you find the right number. Sometimes there is not a benefit to running a parallelizable process on more threads because it's depending on what your threads do (I/O, synchronization, etc.,).
If you are doing a lot of memory transfer, it won't help either.
If you are doing a lot of I/O though such as for disk access, then yes multiple threads will help up to a certain extent,
or at the least make the application more responsive.
Mira is not the only program to have this behavior, I found also on Velvet, TopHat, cuffdiff, CRAC. So, to evaluate the behaviour of code it is valuable to use a profiler and see where the bottlenecks are in each possibly parallel piece.


Laurent,
(think big, act small)



--
You have received this mail because you are subscribed to the mira_talk mailing 
list. For information on how to subscribe or unsubscribe, please visit 
http://www.chevreux.org/mira_mailinglists.html

Other related posts: