高效并行化遗留顺序软件及测试用例优先级排序方法
一、遗留顺序软件并行化
- 系统环境与前期准备
- 目标系统配备 512 个 CUDA 核心,频率在 993 - 1072 MHz 之间,拥有 4GB GDDR5 内存,频率为 5000 MHz,总线宽度 128 位。
- 现有代码基于 C++11 开发,使用 Visual Studio 2015(v140 平台工具集)和 Microsoft 的 VC++ 编译器,编译时使用‘-O2’优化标志。
- 为实现任务和数据并行,分别使用 C++11 线程库和 OpenMP 在 CPU 上表达并发;因目标系统有支持 CUDA 的 GPU,所以使用 NVIDIA 的 CUDA 在 GPU 上表达并发,此阶段花费 8 小时。
- 分析阶段
- 定位可并行部分 :根据应用程序的控制流和操作间的依赖关系,发现两个可并行的位置。一是模型环境过程中,机器人移动和将图像点云添加到环境点云这两个操作无依赖,可并行;二是拍摄放置区域图片并计算放置位置后,规划到拾取区域的无碰撞路径,这两个操作也可并行。
- 识别热点函数 :使用 Visual Studio 分析工具对代码进行自动(动态)分析,确定 13 个频繁访问且消耗大量计算资源的函数,经手动分析,确定 4 个可并行函数:模型环境、提取环境、对齐对象和边缘检测。
- 可行性分析 <
超级会员免费看
订阅专栏 解锁全文

930

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



