Почему мне следует использовать Grand Central Dispatch вместо OpenMP?

StackOverflow https://stackoverflow.com/questions/1368875

Вопрос

Apple представила Grand Central Dispatch (пул потоков) в Snow Leopard, но не уточнила, почему его следует использовать поверх OpenMP, который является кроссплатформенным и также работает в Leopard.Они оба довольно просты в использовании и выглядят схожими по возможностям.Итак, есть идеи?

Это было полезно?

Решение

GCD гораздо лучше справляется с оценкой соответствующего уровня ресурсов, необходимых для решения проблемы, во время выполнения — OpenMP решает, сколько потоков вызывать для набора параллельных задач, на основе такой информации, как переменные среды.GCD анализирует текущую загрузку системы и количество доступных ядер и разрешает запуск соответствующего количества потоков, увеличивая и уменьшая масштаб по мере изменения использования ресурсов в реальном времени.Это означает, что программа НОД должна давать лучшие результаты в общем случае.Конечно, если вы купили кластер выделенных блоков для запуска своего кода, то это спорный вопрос, поскольку вашему коду больше не с чем будет конфликтовать.

Другие советы

Теперь, когда исходный код GCD открыт, нужно поставить оба инструмента рядом и посмотреть, кто в итоге выживет.

Интеграция производительности и уровня ОС?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top