一种自动流水并行的实现方法

    公开(公告)号:CN101944014A

    公开(公告)日:2011-01-12

    申请号:CN201010281797.9

    申请日:2010-09-15

    Applicant: 复旦大学

    Abstract: 本发明属于程序编译技术领域,具体为一种自动流水并行的实现方法。本发明方法主要包括:(1)流水并行的识别,具有跨循环迭代的依赖且依赖距离向量为常量的循环结构;(2)线程间同步,依据依赖距离向量插入同步,删除具有相同距离向量的冗余同步;(3)静态步长的线程调度,为了平衡各个线程的工作负载,减少通讯开销,自定义了线程调度策略。对于循环结构的类型识别依赖传统的数组数据流分析和依赖性测试,流水并行只处理后向跨循环迭代的规则循环结构。流水并行的同步开销较大,因而只对嵌套循环的最外层展开流水并行。流水并行的收益依赖程序本身,循环迭代数目越大,依赖距离越长,则性能提升越大。流水并行的实现增强了自动并行优化的能力,有利用进一步提高科学计算类程序的性能。

    一种基于高级中间表示的结构优化方法及系统

    公开(公告)号:CN101923472A

    公开(公告)日:2010-12-22

    申请号:CN201010283182.X

    申请日:2010-09-16

    Applicant: 复旦大学

    Abstract: 本发明属于程序编译优化技术领域,具体为一种基于高级中间表示的结构优化方法及系统。主要包括:(1)WHIRLSSA的生成,通过遍历WHIRL节点生成SSA信息并将SSA信息标注在WHIRL节点中;(2)PHI节点的插入,将PHI节点插入到WHIRL结构的合适位置;(3)WHIRLSSA的更新与验证,WHIRLSSA更新采用按需更新策略,通过将局部范围的SSA更新合并到一起,实现对整个SSA更新的目的。系统的总体构架包括:WHIRLSSA管理模块、DU/UD管理模块、更新模块、验证模块、生成模块和读写接口。WHILRSSA是一个同时包含了数据流和控制流信息的基于树结构高级中间表示的优化架构。WHIRLSSA优化架构继承了WHIRL和SSA两种中间表示的优点,提高了编译器的优化效果和扩展性。

    一种自动流水并行的实现方法

    公开(公告)号:CN101944014B

    公开(公告)日:2013-08-21

    申请号:CN201010281797.9

    申请日:2010-09-15

    Applicant: 复旦大学

    Abstract: 本发明属于程序编译技术领域,具体为一种自动流水并行的实现方法。本发明方法主要包括:(1)流水并行的识别,具有跨循环迭代的依赖且依赖距离向量为常量的循环结构;(2)线程间同步,依据依赖距离向量插入同步,删除具有相同距离向量的冗余同步;(3)静态步长的线程调度,为了平衡各个线程的工作负载,减少通讯开销,自定义了线程调度策略。对于循环结构的类型识别依赖传统的数组数据流分析和依赖性测试,流水并行只处理后向跨循环迭代的规则循环结构。流水并行的同步开销较大,因而只对嵌套循环的最外层展开流水并行。流水并行的收益依赖程序本身,循环迭代数目越大,依赖距离越长,则性能提升越大。流水并行的实现增强了自动并行优化的能力,有利用进一步提高科学计算类程序的性能。

    一种基于谓词的自动并行优化方法

    公开(公告)号:CN101944040A

    公开(公告)日:2011-01-12

    申请号:CN201010281799.8

    申请日:2010-09-15

    Applicant: 复旦大学

    Abstract: 本发明属于程序编译技术领域,具体为一种基于谓词的自动并行优化方法。该方法主要包括:(1)谓词的构建,通过用户程序的多种已知信息,构建程序的并行谓词,消除程序的简单依赖;(2)构建并行循环结构,在谓词条件的约束下,展开后续并行化分析,判断是否需要采纳并行谓词。并行谓词的构建基于传统的数组数据流分析和循环依赖性测试。通过构建谓词,消除由循环信息不精确而导致的循环简单依赖,从而扩大传统自动并行优化的分析范围和并行优化效果。在程序的实际执行中,如果谓词不满足,则程序执行原始串行版本,增加的判断和跳转操作对程序的总体性能几乎没有影响;如果谓词满足,则执行循环结构的并行版本,能够显著的提升程序性能。

Patent Agency Ranking