Good guess Saúl, I want to provide some alternative implementations for the 
thread-pool that is currently used in libuv on windows.

UMS from everything I have read and experimented with is just plane awesome.

See Microsoft's sales pitch for it in a blog 

http://blogs.msdn.com/b/nativeconcurrency/archive/2009/02/02/dave-probert-goes-deep-on-win7-user-mode-scheduled-threads.aspx

and a channel 9 video

https://channel9.msdn.com/Shows/Going+Deep/Dave-Probert-Inside-Windows-7-User-Mode-Scheduler-UMS

But, it only exists for x64 Windows 7 and x64 Server 2008 r2, or newer.

So, I also want to experiment with and provide the OLD Thread Pool 
API(available for x86+x64 xp/2003) and the NEW Thread Pool API(available 
for x86+x64 vista/2008), see msdn link

https://msdn.microsoft.com/en-us/library/windows/desktop/ms686766(v=vs.85).aspx

I can see that part of the OLD thread pool api is being used, 
namely RegisterWaitForSingleObject and UnregisterWaitEx, but I am 
interested in checking the entire package of the OLD and NEW thread pool 
apis,



Hopefully, with these new options, multicore performance scaling can be 
improved.

I have found through experimentation and reading that UMS has special 
benefits that cannot be found in any other way.

Also, from experimentation I have found that the new thread pool api can 
sometimes show an improvement over direct usage of a pool of threads.

I forked libuv with the intention of adding these experiments to the 
benchmarks, and if we find that there are some improvements with the 
additional options, then I hope we add them to the master tree.

see

https://github.com/codepilot/libuv


Can someone let me know if XP and Vista are still important targets for 
libuv? Or, should I be targeting win 7 and newer?




On Tuesday, June 16, 2015 at 9:22:30 AM UTC-7, Saúl Ibarra Corretgé wrote:
>
> On 06/16/2015 04:41 PM, Ben Noordhuis wrote: 
> > On Tue, Jun 16, 2015 at 11:30 AM,  <[email protected] <javascript:>> 
> wrote: 
> >> I am referring to Window 7 and beyond User Mode Scheduling. see 
> >> 
> https://msdn.microsoft.com/en-us/library/windows/desktop/dd627187%28v=vs.85%29.aspx
>  
> >> 
> >> I uploaded some examples of UMS on my GitHub area, these are old 
> >> experiments, and I will be updating them a bit to extract useful 
> performance 
> >> measurements. 
> >> 
> >> See 
> >> https://github.com/codepilot/v8green 
> >>    Doesn't currently compile, I am changing it to use node 0.12.4. 
> >> 
> >> https://github.com/codepilot/UMS 
> >>    Super simple example. 
> >> 
> >> https://github.com/codepilot/UMS1 
> >>    Simple webserver, made to compare UMS with the New Threadpool API 
> > 
> > How and why would you integrate that with libuv?  It's not entirely 
> > clear to me what you're trying to accomplish. 
> > 
>
> My guess would be as a replacement for the thread-pool? Then, if that is 
> the case, your proposal for a customizable threadpool would help here, I 
> guess. 
>
> -- 
> Saúl Ibarra Corretgé 
> bettercallsaghul.com 
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"libuv" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/libuv.
For more options, visit https://groups.google.com/d/optout.

Reply via email to