I am reading about Intel's Integrated Performance Primitives library for C and C++. They mentioned external threading as one of the new features.
New API’s for external threading is more effective than internal threading. source
What is external threading and how does it relates to std::thread
in C++ ?
In IPP:
Internal threading - inside a primitive
External threading - at the application level
Intel IPP 8.2 continues deprecation of internal threading that was started in version 7.1. The threaded static libraries will be available as a separate download, and code developed with these libraries will still work as before. The ThreadedFunctionsList.txt file in ...\Documentation\en_US\ipp\ lists functions that are available in an internally threaded format. However, multi-threaded libraries are deprecated and moving to external threading is recommended for the following reasons:
Internal (inside a primitive) threading is significantly less effective than external (at the application level) threading.
source
With std::thread
external threading is unrelated.
"Ready for external threading" in IPP basically means, that for all (almost all, except functions, which by algorithm are not suited for threading) functionalities (functional groups) the list of function arguments contains enough input/output arguments to organize external threading. So, some function APIs were modified for external threading.
It can be addresses, offsets, service buffers and so on, to execute a function in multiple threads for processing 1D vectors by chunks, or 2D images by slices or tiles. It's going to be helpful, especially as vectors/images grow now (more megapixels to process:)).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With