Изучаю 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, я в курсе, что она должна выглядеть по другому :)