如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
二、并行编程语言与编译器二、并行编程语言与编译器二、并行编程语言与编译器三、并行程序员的工作四、并行程序设计OpenMP概述什么是OpenMPOpenMP的历史OpenMP的目标OpenMP并行编程模型编译制导编译制导作用域并行域结构共享任务结构for编译制导语句for编译制导语句Sections编译制导语句一、Helloworld程序1、关闭病毒扫描和监控程序;2、采用MicrosoftDevStudio工具新建工程,并加入实验程序文件:Helloworlds.c;3、编译,运行程序并记录实验结果;4、在源程序代码中的找到主程序体:printf("HelloWorld\n");for(i=0;i<6;i++)printf("Iter:%d\n",i);;加上OpenMP并行处理结构:#pragmaompparallel{}5、采用/Qopenmp重新编译程序,运行程序,记录并分析结果;6、设定Openmp线程数,运行程序,记录并分析结果:C:\>SetOMP_NUM_THREADS=2;7、使用IntelC++编译器重新编译,记录并比较结果有何不同;C:\>icl/QopenmpHelloWorlds.c;1、关闭病毒扫描和监控程序;2、采用MicrosoftDevStudio工具打开实验程序文件:pi.sln;3、编译,运行程序并记录实验结果;4、在源程序代码中的找到主程序体中进行omp方式优化①需要并行运算的程序体:加上#pragmaompparallel{}段②找到for循环体引入omp并行处理方法③检查所有变量,将需要进行特别声明的变量进行omp处理:#pragmaompparallelprivate(varname,vaname)\reduction(+:varname,varname)\shared(varname,varname){}段④对于特殊的共享变量,进行加锁处理pragmaompcritical{}段5、使用/Qopenmp参数重新编译程序;6、设定Openmp线程数:C:\>SetOMP_NUM_THREADS=?;7、重新运行程序,观测实验结果,并记录,分析采用OpenMP前后程序性能差异;8、程序修改位置及修改依据;9、分析比较程序pi_serial.c和pi.c的差异。