Задать вопрос

Linux, OpenMP и GCC: многопоточная программа в 5-6 раз медленнее однопоточной?

Изучаю OpenMP, пытаюсь распараллелить нейронную сеть. Но почему-то постоянно получается, что расспараллеленное приложение существенно медленнее, чем обычное. В чем может быть проблема?


Однопоточное приложение:
pastebin.com/22vp3LYU

Компиляция:
g++ -lrt -O0 main.cpp -o nnlv2


Многопоточное:
pastebin.com/w3m01QTK

Компиляция:
g++ -lrt -fopenmp -O0 main_openmp.cpp -o nnlv2_openmp



P.S. Не обращайте внимания на функцию sigmoid, я в курсе, что она должна выглядеть по другому :)
  • Вопрос задан
  • 5648 просмотров
Подписаться 6 Оценить Комментировать
Ответ пользователя Sergey Lerg К ответам на вопрос (7)
Lerg
@Lerg
Defold, Corona, Lua, GameDev
Используйте явные потоки. Например с помощью библиотеки pthread.
Ответ написан