Anybody looked at libcds[1]? It says it's mostly header-only template library of concurrent data structures. It sounds like what we're looking for. And performance looks similar to TBB. ( I'm not -1 to TBB )
- [1] libcds https://github.com/khizmax/libcds - Masaori 2017年10月5日(木) 7:37 Jason Kenny <jke...@oath.com.invalid>: > I this we could a lot of value out of TBB. The tasking engine is much > better than what we have. However I would not suggest we just replace > everything, but instead bring it in and look at "low-hanging" fruit such as > the hash map that we can get value out of today. Larger projects as using > its advance tasking engine, arena, etc can be done slowing as the team > understands the value in doing so and how to do it without breaking > existing APIs. > > On Wed, Oct 4, 2017 at 3:59 PM, CrazyCow <zhangzizhong0...@gmail.com> > wrote: > > > We use continuations everywhere, which might not be appropriate according > > to the above quote? xD > > > > For this particular use case of the PR, it's pretty simple code and I > don't > > think it will be a performance bottleneck. What we want here is a mature, > > well documented and widely used concurrent implementation of hashmap, > which > > I think tbb is one of the top choices. > > > > 2017-10-01 15:04 GMT-07:00 Alan Carroll <solidwallofc...@oath.com. > > invalid>: > > > > > I wonder where Concurrency Kit falls on that graph. Here's an > interesting > > > quote from TBB:[1] > > > > > > "Using the task scheduler is usually the best approach to threading for > > > performance, however there are cases when the task scheduler is not > > > appropriate. The task scheduler is intended for high-performance > > algorithms > > > composed from non-blocking tasks. It still works if the tasks rarely > > block. > > > However, if threads block frequently, there is a performance loss when > > > using the task scheduler because while the thread is blocked, it is not > > > working on any tasks. Blocking typically occurs while waiting for I/O > or > > > mutexes for long periods. If threads hold mutexes for long periods, > your > > > code is not likely to perform well anyway, no matter how many threads > it > > > has. If you have blocking tasks, it is best to use full-blown threads > for > > > those." > > > > > > Hmmmm..... > > > > > > [1] https://software.intel.com/en-us/node/506101 > > > > > >