代码
#include "omp.h"
#pragma omp parallel for
环境配置build.gradle
externalNativeBuild {
cmake {
cppFlags "-fopenmp"
}
}
#CMakeList.txt
target_link_libraries( # Specifies the target library.
native-lib
# Links the target library to the log library
# included in the NDK.
omp
}
如果提示缺少libomp.so.将ndk(我使用的是ndk21)里面的libomp.so复制到jniLibs/armeabi-v7a
armeabi-v7a需要自己配置选择不同的文件名.
对于提升效果比较,clock函数在ctime中,用于统计cpu时钟时间,在程序是单线程时,相对准确,但是如果开启多线程,则会出现很大误差。可以使用下面函数记录时间差.
gettimeofday
armv7 测试 for循环, 频繁操作内存反而慢, 也许可以改成每个线程操作一个连续的地址,彼此不要重叠。
本文地址:https://blog.csdn.net/a302792317/article/details/111030160
该博客探讨了如何使用OpenMP进行代码并行化,包括在Android环境下配置OpenMP,解决缺少libomp.so的问题,以及针对多线程环境下clock函数精度下降的问题。文章还提到了gettimeofday函数作为替代时间测量选项,并建议通过调整并行化策略来优化内存操作性能。
2010

被折叠的 条评论
为什么被折叠?



