MIPSpro的自动并行功能MIPSproAutoParallelizingOption课件

上传人:29 文档编号:242117164 上传时间:2024-08-13 格式:PPTX 页数:27 大小:555.94KB
返回 下载 相关 举报
MIPSpro的自动并行功能MIPSproAutoParallelizingOption课件_第1页
第1页 / 共27页
MIPSpro的自动并行功能MIPSproAutoParallelizingOption课件_第2页
第2页 / 共27页
MIPSpro的自动并行功能MIPSproAutoParallelizingOption课件_第3页
第3页 / 共27页
点击查看更多>>
资源描述
,Subtitle,First level bullet,Second level (dash),Third level (small bullet),Click to edit Master title style,2019年4月3日,#,TM,2024年8月13日,1,APO,概述,MIPSpro APO,是,MIPSpro,编译器的扩展,并融合到其中,MIPSpro APO,不是源到源的预编译器,不需要或很少需要人为的干预,2023年8月23日1APO概述MIPSpro APO是MI,2024年8月13日,2,激活,APO,使用-,apo,选项,使用,-,pfa,选项,f77,options,-apo list|keep -mplist,filename,f90,options,-apo list|keep,filename,cc,options,-apo list|keep -mplist,filename,CC,options,-apo list|keep,filename,2023年8月23日2激活APO使用-apo选项,2024年8月13日,3,Options,-,apo,-apo list,产生.,l,文件,-,apo keep,产生.,l,.w2f.f,或.,w2c.c,.m,,和 .,anl,文件,-,mplist,产生.,w2f.f,或.,w2c.c,文件,2023年8月23日3Options-apo,2024年8月13日,4,APO,注意事项,APO,只能用于-,n32, -64,和-,n64,的编译器,如果分别链接,命令行需要下列选项之一,-,apo,-mp,下面选项不能同时使用:,-,apo keep,-mplist,2023年8月23日4APO注意事项APO只能用于-n32,2024年8月13日,5,APO,的输出文件,.,l,文件,.,w2f.f,文件和,.,w2c.c,文件,.,m,文件,和.,anl,文件,2023年8月23日5APO的输出文件.l文件,2024年8月13日,6,Example,2023年8月23日6Example,2024年8月13日,7,.,l,文件,2023年8月23日7.l文件,2024年8月13日,8,.,w2f.f,文件和,.,w2c.c,文件,2023年8月23日8.w2f.f文件和.w2c.c文件,2024年8月13日,9,.,m,文件,和.,anl,文件,2023年8月23日9.m文件和.anl文件,2024年8月13日,10,程序运行,设置环境变量:,setenv,OMP_DYNAMIC FALSE,setenv OMP_NUM_THREADS n,2023年8月23日10程序运行设置环境变量:,2024年8月13日,11,MIPSpro APO,的辅助功能,辅助,APO,的方法,自动并行编译制导语句,2023年8月23日11MIPSpro APO 的辅助功能辅,2024年8月13日,12,为什么,APO,需要辅助?,实际编程中不利于自动并行的问题:,循环中调用函数,循环中使用,GOTO,语句,不明确的数组下标,2023年8月23日12为什么APO需要辅助?实际编程中不利,2024年8月13日,13,辅助,APO,的方法,改动程序结构,使之便于,APO,编译器分析,在源程序中加入人工并行制导语句(,manual parallelization directives),在源程序中加入自动并行编译制导语句(,automatic parallelization compiler directives),2023年8月23日13辅助APO的方法改动程序结构,使之便,2024年8月13日,14,自动并行编译制导语句,C*$*NO CONCURRENTIZE,C*$*CONCURRENTIZE,C*$*ASSERT DO(CONCURRENT),C*$*ASSERT DO(SERIAL),C*$*ASSERT CONCURRENT CALL,C*$*ASSERT PERMUTATION,C*$*ASSERT DO PREFER(CONCURRENT),C*$*ASSERT DO PREFER(SERIAL),2023年8月23日14自动并行编译制导语句C*$*NO C,2024年8月13日,15,C*$*NO CONCURRENTIZE,作用:阻止循环并行执行,其作用域取决于其所在的位置:,位于子程序或函数中,位于子程序或函数外,2023年8月23日15C*$*NO CONCURRENTI,2024年8月13日,16,C*$*CONCURRENTIZE,作用:克服,C*$*NO CONCURRENTIZE,的影响,用法:放在子程序内,指明该子程序内部的循环需并行执行,2023年8月23日16C*$*CONCURRENTIZE作,2024年8月13日,17,C*$*ASSERT DO(CONCURRENT),作用:指定下面的循环并行执行,注意事项:,使用不当可能会产生错误的执行码,对于一个循环内部的多个循环,该语句指定紧随其后的循环并行执行,如果指定一个内部循环并行执行,编译器可能将该循环提到最外层,不影响编译器对循环内,CALL,的分析,该语句在不使用-,apo,选项时仍然起作用,如果存在明显的依赖关系,编译器将忽略该语句,2023年8月23日17C*$*ASSERT DO(CONC,2024年8月13日,18,Example forC*$*ASSERT DO(CONCURRENT),C*$*ASSERT DO(CONCURRENT),DO I = 1, N,A(I) = A(I + M),END DO,2023年8月23日18Example forC*$*AS,2024年8月13日,19,C*$*ASSERT DO(SERIAL),作用:指定紧随其后的循环串行执行,对其它循环不起作用,2023年8月23日19C*$*ASSERT DO(SERI,2024年8月13日,20,C*$*ASSERT CONCURRENT CALL,作用:忽略循环内,CALL,调用对并行处理的影响,注意事项:,作用域:作用于紧随其后的循环及该循环内部的所有循环,使用不当可能会产生错误的执行码,该语句在不使用-,apo,选项时仍然起作用,2023年8月23日20C*$*ASSERT CONCURR,2024年8月13日,21,Example forC*$*ASSERT CONCURRENT CALL,C*$* ASSERT CONCURRENT CALL,DO I = 1, M,CALL FRED(B, I, T),CALL WILMA(A, I, T),END DO,SUBROUTINE FRED(B, I, T),REAL B(*),T = B(I),END,SUBROUTINE WILMA(A, I,T),REAL A(*),A(I) = T,END,2023年8月23日21Example forC*$*AS,2024年8月13日,22,Example forC*$*ASSERT CONCURRENT CALL,C$ DOACROSS SHARED(A,B), LOCAL(I,T),C*$* ASSERT CONCURRENT CALL,DO I = 1, M,CALL FRED(B, I, T),CALL WILMA(A, I, T),END DO,SUBROUTINE FRED(B, I, T),REAL B(*),T = B(I),END,SUBROUTINE WILMA(A, I,T),REAL A(*),A(I) = T,END,2023年8月23日22Example forC*$*AS,2024年8月13日,23,C*$*ASSERT PERMUTATION,用法:,C*$*ASSERT PERMUTATION,(arr),作用:为编译器指明数组,arr,的每个元素都有不同的值,注意事项:,作用域:整个子程序内部,该语句在不使用-,apo,选项时仍然起作用,2023年8月23日23C*$*ASSERT PERMUTA,2024年8月13日,24,Example for C*$*ASSERT PERMUTATION,SUBROUTINE SUB1,DO I = 1, N,A(IB(I) = ,END DO,C*$*ASSERT PERMUTATION(IB),DO I = 1, N,A(IB(I) = ,END DO,END,2023年8月23日24Example for C*$*A,2024年8月13日,25,C*$*ASSERT DO PREFER(CONCURRENT),作用:建议编译器对该语句后面的循环进行并行处理,注意事项:,不会因为该语句的存在而对不安全的循环进行并行处理,优先并行紧随其后的循环,如果编译器认为该语句指定的循环不能安全并行,则考虑并行处理后面的循环,如果指定一个内部循环并行执行,编译器可能将该循环提到最外层,2023年8月23日25C*$*ASSERT DO PREF,2024年8月13日,26,C*$*ASSERT DO PREFER(SERIAL),作用:该语句建议编译器对紧随其后的循环进行串行处理,DO I = 1, M,C*$* ASSERT DO PREFER (SERIAL),DO J = 1, N,A(I, J) = B(I, J),END DO,END DO,2023年8月23日26C*$*ASSERT DO PREF,2024年8月13日,27,Summary,APO,的优点:,简单易学,使用方便,对程序改动小,或不需要改动,APO,的不足:,并行效率取决于程序的结构,2023年8月23日27SummaryAPO的优点:,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!