transparent hugepages #3936
|
Is there any reason why |
Replies: 1 comment 8 replies
|
Good question. I guess you also refer to our docs page: https://scipp.github.io/user-guide/tips-tricks-and-anti-patterns.html#Improving-performance:-Allocators-and-HugePages. To be honest, I do not remember why On HPC, check if the system has enabled explicit hugepages, then configure as described on the page linked on top. |
The answer turned out to be squarely on our side.
Scipp allocates its buffers with a plain
new[], i.e., viamalloc, and never calledmadvise(MADV_HUGEPAGE). NumPy does, for every array of 4 MByte and more, which is exactly why its arrays use HugePages with themadvisesetting while ours did not. It is not a TBB issue either, thoughlibtbbmalloc_proxy.sodoes not help: tbbmalloc contains nomadvisecall at all and treats HugePages as unavailable unless they are reserved explicitly or the setting isalways. So the note in our docs was accurate, but for a reason we can fix.If #3937 pans out and gets merged, Scipp would then by default request HugePages for buffers of 4 MByte and more, match…