CoreNeuron icon indicating copy to clipboard operation
CoreNeuron copied to clipboard

Investigate lighterweight alternatives to Boost.Pool

Open olupton opened this issue 2 years ago • 0 comments

Describe the issue As part of https://github.com/BlueBrain/CoreNeuron/pull/713 we introduced some memory pools for Random123 streams, implemented using Boost.Pool: https://github.com/BlueBrain/CoreNeuron/blob/53b0c5fda91e98c24000238285f7ef1330fc06a4/coreneuron/utils/randoms/nrnran123.cu#L32-L71

This brought significant benefits in GPU builds, both in initialisation time and compatibility with (NVIDIA) profiling tools, at the cost of a large (and polarising) dependency, Boost.

In the current implementation, Boost is an optional dependency, but clearly if it is not available then there is no performance improvement from the memory pools.

As we are only using a small, header-only component of Boost, we may be able to find an alternative high-quality implementation that we could use unconditionally.

Possible alternatives to try:

  • https://github.com/foonathan/memory
  • ...add good ideas here...

olupton avatar Dec 22 '21 16:12 olupton