Я читаю о Intel Интегрированные примитивы производительности библиотека для C и C ++. Они упомянули внешняя резьба как одна из новых функций.
Новые API для внешних потоков более эффективны, чем внутренние
резьб. источник
Что такое внешняя резьба и как это связано с std::thread
в С ++?
В IPP:
Внутренняя резьба — внутри примитива
Внешняя резьба — на уровне приложения
Intel IPP 8.2 продолжает устаревшую внутреннюю многопоточность
началось в версии 7.1. Потоковые статические библиотеки будут
доступны как отдельная загрузка, и код, разработанный с этими
библиотеки по-прежнему будут работать как раньше. ThreadedFunctionsList.txt
файл в … \ Documentation \ en_US \ ipp \ перечисляет функции, которые
доступны в формате с внутренней резьбой. Тем не менее, многопоточный
библиотеки устарели и переход на внешнюю многопоточность
рекомендуется по следующим причинам:Внутренняя (внутри примитивная) резьба значительно меньше
эффективнее, чем внешние (на уровне приложений) потоки.
С std::thread
внешняя резьба не связана.
«Готовность к внешним потокам» в IPP в основном означает, что для всех (почти всех, кроме функций, которые по алгоритму не подходят для потоков) функциональных групп (функциональных групп) список аргументов функции содержит достаточно входных / выходных аргументов для организации внешних потоков , Итак, некоторые API функций были модифицированы для внешней обработки.
Это могут быть адреса, смещения, сервисные буферы и т. Д. Для выполнения функции в нескольких потоках для обработки одномерных векторов фрагментами или двумерных изображений срезами или фрагментами. Это будет полезно, особенно с ростом векторов / изображений (больше мегапикселей для обработки :)).