请看这段代码。
单线程程序: http: //pastebin.com/KAx4RmSJ。编译:
g++ -lrt -O2 main.cpp -o nnlv2
多线程与 openMP:http ://pastebin.com/fbe4gZSn 编译:
g++ -lrt -fopenmp -O2 main_openmp.cpp -o nnlv2_openmp
我在双核系统上对其进行了测试(所以我们有两个并行运行的线程)。但是多线程版本比单线程版本慢(并且显示不稳定的时间,请尝试运行几次)。怎么了?我在哪里犯错了?
一些测试:
单线程:
Layers Neurons Inputs --- Time (ns)
10 200 200 --- 1898983
10 500 500 --- 11009094
10 1000 1000 --- 48116913
多线程:
Layers Neurons Inputs --- Time (ns)
10 200 200 --- 2518262
10 500 500 --- 13861504
10 1000 1000 --- 53446849
我不明白出了什么问题。