See my comments interspersed in Ralf's reply. Thanks for the additional context.

Matti


On 21/4/21 3:10 am, Ralf Gommers wrote:


...

    Motivation and Scope
    --------------------

    Users may wish to override the internal data memory routines with
    ones
    of their
    own. Two such use-cases are to ensure data alignment and to pin
    certain
    allocations to certain NUMA cores.


It would be great to expand a bit on these two sentences, and add some links. There's a lot of history here in NumPy development to refer to as well:

https://numpy-discussion.scipy.narkive.com/MvmMkJcK/numpy-arrays-data-allocation-and-simd-alignement <https://numpy-discussion.scipy.narkive.com/MvmMkJcK/numpy-arrays-data-allocation-and-simd-alignement> http://numpy-discussion.10968.n7.nabble.com/Aligned-configurable-memory-allocation-td39712.html <http://numpy-discussion.10968.n7.nabble.com/Aligned-configurable-memory-allocation-td39712.html> http://numpy-discussion.10968.n7.nabble.com/Numpy-s-policy-for-releasing-memory-td1533.html <http://numpy-discussion.10968.n7.nabble.com/Numpy-s-policy-for-releasing-memory-td1533.html> https://github.com/numpy/numpy/issues/5312 <https://github.com/numpy/numpy/issues/5312> https://github.com/numpy/numpy/issues/14177 <https://github.com/numpy/numpy/issues/14177>

There must also be a good amount of ideas/discussion elsewhere.


I added more context to this section, trying to focus on the large data allocations in NumPy.



https://bugs.python.org/issue18835 <https://bugs.python.org/issue18835> discussed an aligned allocator for Python itself, with fairly detailed discussion about whether/how NumPy could benefit. With (I think) the conclusion it shouldn't be in Python, but NumPy/Arrow/others are better off doing their own thing.

I'm wondering if improved memory profiling is a use case as well? Fil (https://github.com/pythonspeed/filprofiler <https://github.com/pythonspeed/filprofiler>) for example seems to use such a strategy: https://github.com/pythonspeed/filprofiler/blob/master/design/allocator-overrides.md <https://github.com/pythonspeed/filprofiler/blob/master/design/allocator-overrides.md>

Thanks. I added a sentence about this as well.


Does it interact with our tracemalloc support (https://numpy.org/doc/stable/release/1.13.0-notes.html#support-for-tracemalloc-in-python-3-6 <https://numpy.org/doc/stable/release/1.13.0-notes.html#support-for-tracemalloc-in-python-3-6>)?


I added a sentence about this. The new C-API wrapper functions preserve the current status vis-a-vis tracemalloc support. I am not sure that support is complete. The NEP should not change the situation for better or worse.



    User who wish to change the NumPy data memory management routines
    will use


This is design, not motivation or scope. Try to not refer to specific function names in this section. I suggest moving this content to the "Detailed design" section (or better, a "high level design" at the start of that section).

Done.


Cheers,
Ralf


_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion

Reply via email to