Replies: 2 comments 16 replies
-
Hi @dgrigonis! Great question. There is a publication about Scipp, but it is from the early days. The architecture is still nearly identical, but it does not go into many details. The main features in your figure are explained by an interplay of two aspects:
It should also be noted that if you search for NumPy and multi-threading, you will find that NumPy is multi-threaded if you install the right extra packages... however not for normal array operation but just some linear-algebra. This multi-threading may therefore be irrelevant for many applications. We have recently also added additional information in our docs in Improving performance: Allocators and HugePages. HugePages will mainly affect large arrays. I do not know if the allocator makes a difference for small arrays — if you try it out, let me know of the results, I'd be interested! Finally, partially unrelated to your results above, remember that memory allocation/initialization is often the most expensive part. That is, make sure to also compare, e.g., I'd be happy to provide more info. If you are running more benchmarks and find some unusual behavior we can also look into particular reasons, there may be performance bugs that still need fixing (an interesting and quite recent example was datetime64 array initialization in #3123. Cheers, |
Beta Was this translation helpful? Give feedback.
-
Thank you for reply. I will investigate further in due time. For now what I can also share is summation benchmark. Currently, it is the bottleneck in one of my applications. numpy does it in parallel, but it seems only with MKL (this benchmark is with openblas, which doesn't seem to provide parallel sum). The blue one is the function that I wrote, which at certain point switches to dot product, which is parallelised well. I suspect the initialisation cost of parallel functions prevents their outperformance for lower size arrays. lr is Application at hand is not big data, and I am looking at summation of arrays around size 10K, and I couldn't find anything that outperforms numpy. Well, except those that use MKL. Pytorch and numpy with MKL did best if I remember correctly. So I am wandering if summation is parallelised in
|
Beta Was this translation helpful? Give feedback.
-
Hello all,
I have a question or a request for references.
I would like a low-mid level understanding of the library. The aspects that I am most interested in is this
scipp
's realtion to numpy and its performance.scipp.array
seems almost as barebone as numpy, why then is its performance so much worse for arrays of size less than 50K?If anyone could shed some light on these it would be much appreciated.
Beta Was this translation helpful? Give feedback.
All reactions