浙江大学多核计算课件06

上传人:bin****86 文档编号:52408030 上传时间:2018-08-20 格式:PPT 页数:39 大小:178KB
返回 下载 相关 举报
浙江大学多核计算课件06_第1页
第1页 / 共39页
浙江大学多核计算课件06_第2页
第2页 / 共39页
浙江大学多核计算课件06_第3页
第3页 / 共39页
浙江大学多核计算课件06_第4页
第4页 / 共39页
浙江大学多核计算课件06_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《浙江大学多核计算课件06》由会员分享,可在线阅读,更多相关《浙江大学多核计算课件06(39页珍藏版)》请在金锄头文库上搜索。

1、单击此处编辑母版标题样式单击此处编辑母版副标题样式*1OpenMP: A Portable Solution for ThreadingZJU-Intel Embedded Technology Centerhttp:/苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务What Is OpenMP*?pCompiler directives for multithreaded programmingpEasy to create threaded Fortran and C/C+ codespSupports data parallelism m

2、odelpIncremental parallelismnCombines serial and parallel code in single sourceZJU-Intel Embedded Technology Centerhttp:/苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务What Is OpenMP*?omp_set_lock(lck)#pragma omp parallel for private(A, B)#pragma omp criticalC$OMP parallel do shared(a, b, c)C$OMP

3、PARALLEL REDUCTION (+: A, B)call OMP_INIT_LOCK (ilok)call omp_test_lock(jlok) setenv OMP_SCHEDULE “dynamic”CALL OMP_SET_NUM_THREADS(10)C$OMP DO lastprivate(XX)C$OMP ORDEREDC$OMP SINGLE PRIVATE(X)C$OMP SECTIONS C$OMP MASTERC$OMP ATOMICC$OMP FLUSHC$OMP PARALLEL DO ORDERED PRIVATE (A, B, C)C$OMP THREAD

4、PRIVATE(/ABC/)C$OMP PARALLEL COPYIN(/blk/)Nthrds = OMP_GET_NUM_PROCS()!$OMP BARRIERhttp:/www.openmp.orgCurrent spec is OpenMP 2.5250 Pages (combined C/C+ and Fortran)ZJU-Intel Embedded Technology Centerhttp:/苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务OpenMP* ArchitecturepFork-join modelpWork-s

5、haring constructspData environment constructspSynchronization constructs pExtensive Application Program Interface (API) for finer controlZJU-Intel Embedded Technology Centerhttp:/苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务Programming Model Fork-join parallelism: Master thread spawns a team of

6、threads as needed Parallelism is added incrementally: the sequential program evolves into a parallel programParallel RegionsMaster ThreadZJU-Intel Embedded Technology Centerhttp:/苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务OpenMP* Pragma SyntaxpMost constructs in OpenMP* are compiler directives

7、 or pragmas.nFor C and C+, the pragmas take the form:p#pragma omp construct clause clauseZJU-Intel Embedded Technology Centerhttp:/苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务 Parallel RegionspDefines parallel region over structured block of codepThreads are created as parallel pragma is crosse

8、dpThreads block at end of regionpData is shared among threads unless specified otherwise#pragma omp parallelThread 1Thread 2Thread 3C/C+ : #pragma omp parallel block ZJU-Intel Embedded Technology Centerhttp:/苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务How Many Threads?pSet environment variable

9、for number of threadsset OMP_NUM_THREADS=4pThere is no standard default for this variablenMany systems: p# of threads = # of processorspIntel compilers use this defaultZJU-Intel Embedded Technology Centerhttp:/苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务Work-sharing ConstructpSplits loop iterat

10、ions into threadspMust be in the parallel regionpMust precede the loop#pragma omp parallel #pragma omp for for (I=0;IZJU-Intel Embedded Technology Centerhttp:/苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务 Programming with OpenMP Whats Been CoveredpOpenMP* is:nA simple approach to parallel progra

11、mming for shared memory machinespWe explored basic OpenMP coding on how to:nMake code regions parallel (omp parallel)nSplit up work (omp for)nCategorize variables (omp private.)nSynchronize (omp critical)pWe reinforced fundamental OpenMP concepts through several labs单击此处编辑母版标题样式单击此处编辑母版副标题样式*30Advan

12、ced ConceptsZJU-Intel Embedded Technology Centerhttp:/苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务More OpenMP*pData environment constructsnFIRSTPRIVATEnLASTPRIVATEnTHREADPRIVATEZJU-Intel Embedded Technology Centerhttp:/苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务pVariables initialized from

13、 shared variablepC+ objects are copy-constructedFirstprivate Clauseincr=0; #pragma omp parallel for firstprivate(incr) for (I=0;I=MAX;I+) if (I%2)=0) incr+; A(I)=incr; ZJU-Intel Embedded Technology Centerhttp:/苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务pVariables update shared variable using v

14、alue from last iteration pC+ objects are updated as if by assignmentLastprivate Clausevoid sq2(int n, double *lastterm) double x; int i;#pragma omp parallel #pragma omp for lastprivate(x)for (i = 0; i n; i+)x = ai*ai + bi*bi;bi = sqrt(x);lastterm = x; ZJU-Intel Embedded Technology Centerhttp:/苏教版初三语

15、文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务pPreserves global scope for per-thread storagepLegal for name-space-scope and file-scopepUse copyin to initialize from master threadThreadprivate Clausestruct Astruct A; #pragma omp threadprivate(A) #pragma omp parallel copyin(A)do_something_to( #pragma omp parallel do_something_else_to(Private copies of “A” persist between regionsZJU-Intel Embedded Technology Centerhttp:/苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号