6. 写TestOMP.py文件
上述两个步骤,相当于把某个python效率瓶颈模块(这之前需要用profile工具来定位)用效率更高的代码写成了python的c扩展形式,接下来,就是要在python代码中调用他们。TestOMP.py就是这个调用的脚本,如下:
from TestOMP import Test Test()
这个就很容易了,import并且调用。在控制台下,输入“python TestOMP.py”,运行。
7. 结果
507569 507570 507571 507572 507573 507574 507575 507576 507577 507578 507579 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216
上面是在控制台上的输出的一个片段。能够看到,的确是prange把1000000这一个大循环分成了两个区间:[0, 500000) 和 (500001,1000000],两个循环并行运行,并交替使用控制台IO进行输出。
8. 对应的c++程序
同时写了一个对等的c++程序,如下:
#includeusing namespace std; void PlayOMP (void) { #pragma omp parallel for num_threads(2) for (int i=0; i<1000000; i++) cout <
同时,在Configuration Properties->C/C++->Language->OpenMP Support,在下拉菜单里选择Yes。并且从C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.OPENMP 和 C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\x86\Microsoft.VC90.DebugOpenMP目录下分别拷贝vcomp90d.dll和vcomp90.dll文件到工程文件当前目录下,或者将上述两个路径设置到环境变量里面。编译、运行,结果和python上面的一样――不过貌似更快!
完。
转载请注明出处:http://blog.csdn.net/xceman1997/article/details/26977483