Я реализовал несколько обычных циклических приложений в OpenMP, TBB и OpenCL. Во всех этих приложениях OpeCL дает гораздо лучшую производительность, чем другие, когда я запускаю его только на ЦП без каких-либо специальных оптимизаций в ядрах. OpenMP и TBB также дают хорошую производительность, но намного меньше, чем OpenCL, что может быть причиной этого, потому что они оба являются специализированными платформами для ЦП и должны обеспечивать производительность, по крайней мере, равную OpenMP/TBB.
Моя вторая проблема заключается в том, что когда дело доходит до OpenMP и TBB, OpenMP всегда лучше по производительности, чем TBB в моих реализациях, в которых я не настроил его для очень хорошей оптимизации, поскольку я не настолько эксперт. Есть ли причина, по которой OpenMP обычно лучше по производительности, чем TBB? Потому что я думаю, что они оба или даже OpenCL тоже используют один и тот же пул потоков на низком уровне ... Есть мнения экспертов? Спасибо