您好、欢迎来到现金彩票网!
当前位置:21点 > 自动并行化 >

如何利用VS的代码优化和openmp并行计算提高程序运行速度

发布时间:2019-07-04 03:58 来源:未知 编辑:admin

  以前利用多线程为拥有较大量计算的程序提速过,但也深知多线程的同步和程序的调试是一大坑,最近为实验室的项目学习了一点VS下优化代码的设置以及利用openmp加速运算,都是些很基本的提升程序速度的方法,只要稍微修改下代码和设置,就可使程序加速。配合多线程,经过clock()函数验证,我的程序运行可提高60%的速度,详细如下:

  属性-配置属性-C/C++-优化:可选用 使速度最大化 (/O2) 进行优化。全程序优化选择是(/GL),在debug版本下不能这样设置,必须在release版本

  在vs2012下,项目属性-》C/C++-》语言,openmp支持,选是,包含头文件“omp.h”,对基于数据分集的多线程程序设计,OpenMP是一个很好的选择。

  for:用于for循环之前,将循环分配到多个线程中并行执行,必须保证每次循环之间无相关性

  parallel for:parallel 和 for语句的结合,也是用在一个for循环之前,表示for循环的代码将被多个线程并行执行

  single:用在一段只被单个线程执行的代码段之前,表示后面的代码段将被单线程执行

  barrier:用于并行区内代码的线程同步,所有线程执行到barrier时要停止,直到所有线程都执行到barrier时才继续往下执行

  omp_get_num_procs:返回运行本线程的多处理机的处理器个数

http://mervynsons.com/zidongbingxinghua/202.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有