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