Hi guys, I am building a real-time middleware and have also struggled with similar behavior, at this point I reduced to the bare minimum the use of condition variables. (using 33-rt) Rolando On Sat, May 21, 2011 at 9:51 PM, Pedro Gonnet <gonnet@xxxxxxxxxxxxxx> wrote: > On Sat, 2011-05-21 at 16:48 -0400, Mark Hounschell wrote: >> On 05/20/2011 06:08 AM, Pedro Gonnet wrote: >> > >> > Hi guys, >> > >> > I'm currently working on a shared-memory parallel Molecular Dynamics >> > simulation library (http://mdcore.sourceforge.net/) geared towards >> > multi-core systems. >> > >> > The library uses pthreads (plus some OpenMP for some simple loops) and >> > uses pthread_cond_wait and pthread_cond_signal to coordinate a group of >> > worker threads. >> > >> > I've been profiling the library on different machines and kernels and >> > have noticed that in many cases there are significant (several ms, >> > measured with Intel's Vtune-thing) lags between calls to >> > pthread_cond_signal and the waiting thread actually getting back to >> > work. >> > >> > I've tried the Ubuntu -rt and -preempt kernels, and the whole simulation >> > runs twice as slowly, despite following the advice given here: >> > >> > https://rt.wiki.kernel.org/index.php/HOWTO:_Build_an_RT-application >> > >> > My question is the following: which kernel (or set of configuration >> > options) will minimize these latencies? And if linux-rt is the answer, >> > in what ways do I have to be careful when porting the simulation for >> > this kernel? >> > >> >> Are you saying several ms latency from pthread_cond_signal to waking up a >> thread in pthread_cond_wait? >> > > Yes. Or at least, this is what Vtune says. It could also be a fluke in > Vtune, but I would still be interested in knowing what kernel or what > kernel options can make these operations as fast as possible. > > Cheers, Pedro > > > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html