Почему мне следует использовать Grand Central Dispatch вместо OpenMP?
-
21-09-2019 - |
Вопрос
Apple представила Grand Central Dispatch (пул потоков) в Snow Leopard, но не уточнила, почему его следует использовать поверх OpenMP, который является кроссплатформенным и также работает в Leopard.Они оба довольно просты в использовании и выглядят схожими по возможностям.Итак, есть идеи?
Решение
GCD гораздо лучше справляется с оценкой соответствующего уровня ресурсов, необходимых для решения проблемы, во время выполнения — OpenMP решает, сколько потоков вызывать для набора параллельных задач, на основе такой информации, как переменные среды.GCD анализирует текущую загрузку системы и количество доступных ядер и разрешает запуск соответствующего количества потоков, увеличивая и уменьшая масштаб по мере изменения использования ресурсов в реальном времени.Это означает, что программа НОД должна давать лучшие результаты в общем случае.Конечно, если вы купили кластер выделенных блоков для запуска своего кода, то это спорный вопрос, поскольку вашему коду больше не с чем будет конфликтовать.
Другие советы
Теперь, когда исходный код GCD открыт, нужно поставить оба инструмента рядом и посмотреть, кто в итоге выживет.
Интеграция производительности и уровня ОС?