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