Как планирование обрабатывается в параллельных алгоритмах C ++ 17 STL? - PullRequest
0 голосов
/ 19 октября 2018

Существует ли стандартная спецификация планировщика для параллельных алгоритмов C ++ 17 STL или она полностью зависит от реализации?Последовательные алгоритмы имеют гарантии сложности, но реализация планировщика имеет решающее значение для производительности при неравномерной загрузке задач. Соответствует ли это спецификации спецификации?Кажется, что было бы трудно гарантировать кроссплатформенную производительность без стандартизированного планировщика.

Ответы [ 2 ]

0 голосов
/ 23 декабря 2018

Планирование для C ++ 17 STL-алгоритмов определяется реализацией.Более того, C ++ 17 не гарантирует параллельное выполнение.Он просто допускает параллелизм.

Класс execute :: parallel_policy - это тип политики выполнения, используемый в качестве уникального типа для устранения неоднозначности перегрузки параллельного алгоритма и указания на то, что выполнение параллельного алгоритма может быть распараллелено

0 голосов
/ 19 октября 2018

Насколько я могу сказать из формулировки , такие детали полностью находятся в области спецификации реализации, как и следовало ожидать.Как правило, в стандарте не предпринимается никаких усилий для обеспечения абсолютной производительности любого рода, только требования к сложности.

В конечном счете, хотя ваш исходный код теперь может использовать преимущества параллелизма, будучи полностью стандартным.Определено, фактический практический результат запуска вашей программы зависит от вашей реализации, и я думаю, что это все еще имеет смысл.Целью стандартизации функций является не кроссплатформенная производительность, а переносимый код , который может быть проверен в вакууме.

Я ожидаю, что ваш набор инструментов даст дополнительную информацию о том, как это происходит.вещи работают, и это может даже повлиять на ваш выбор набора инструментов!Но для них имеет смысл иметь свободу в этом отношении, как и в других областях.В конце концов, существует множество целевых платформ (теоретически бесконечных), все со своим собственным потенциалом и причудами.

Возможно, что будущий стандарт накладывает дополнительные ограничения на планирование, чтобы пнуть разработчиков вверхнемного сзади, но лично я бы на это не рассчитывал.

...