From: Mathias Gaunard (mathias.gaunard_at_[hidden])
Date: 2020-04-02 18:59:25
On Thu, 2 Apr 2020 at 17:43, Jan Hafer via Boost <boost_at_[hidden]> wrote:
> Yes, I do use 1 buffer/queue per thread.
So you're saying that circular_buffer is slower on a given thread when
other threads are accessing their own circular_buffer in parallel?
That sounds unlikely to be circular buffer's fault.
The first thing to check is that the memory placement of your circular
buffer does not result in false sharing with other threads.
More generally you could be stalling due to any inter-connection, such
as crossing NUMA domains or talking to hardware.
Otherwise you could be saturating the execution ports of your core and
thus not get the expected speed-up from hyper-threading, but in any
case you'd be the best throughput overall.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk