计算机科学
計算機科學
계산궤과학
COMPUTER SCIENCE
2013年
9期
38-43
,共6页
自动并行化%OpenMP%DSWP%任务调度机制%GCC
自動併行化%OpenMP%DSWP%任務調度機製%GCC
자동병행화%OpenMP%DSWP%임무조도궤제%GCC
Automatic parallelization%OpenMP%Decoupled software pipelining%Task scheduling mechanism%GCC
多核处理器能够提升多线程程序的性能,但早已存在的诸多单线程程序无法从中获益,程序员也习惯于编写单线程程序.自动并行化技术是将单线程程序移植到多核上的重要手段,但是当循环中存在无法确定的数据依赖或复杂的控制流时,传统的自动并行化技术无法取得良好效果.Ottoni等人针对传统自动并行失败的循环提出了Decoupled Software Pipelining(DSWP)算法用以实现指令级的细粒度并行,但其需要对处理器体系结构的深入了解以及对核间通信队列和专用指令的硬件支持,并行性能和应用广泛性受到限制.基于OpenMP应用编程接口实现的DSWP并行不依赖于硬件上对核间通信队列和专用指令的支持,且不受平台的限制,但现有的OpenMP任务调度机制无法满足DSWP并行中对任务调度的需求.对现有的OpenMP任务调度机制进行扩展,增加了任务与线程绑定的属性,保证了基于OpenMP的DSWP并行程序的正确执行.在GCC的OpenMP运行库libgomp中扩展了任务绑定属性子句的功能,扩展后的GCC作为OpenMP DSWP程序的基础编译器,为自动并行提供支持.通过对基准测试集NPB3.3.1的测试表明,传统自动并行失败的循环,经OpenMP DSWP自动并行后在双核处理器上平均加速比达到1.23以上;使用添加了OpenMP DSWP算法的Open64编译器生成的并行程序,与仅使用传统自动并行方法的Intel 编译器和Open64编译器所得程序相比,平均加速比分别高出22%和26%.
多覈處理器能夠提升多線程程序的性能,但早已存在的諸多單線程程序無法從中穫益,程序員也習慣于編寫單線程程序.自動併行化技術是將單線程程序移植到多覈上的重要手段,但是噹循環中存在無法確定的數據依賴或複雜的控製流時,傳統的自動併行化技術無法取得良好效果.Ottoni等人針對傳統自動併行失敗的循環提齣瞭Decoupled Software Pipelining(DSWP)算法用以實現指令級的細粒度併行,但其需要對處理器體繫結構的深入瞭解以及對覈間通信隊列和專用指令的硬件支持,併行性能和應用廣汎性受到限製.基于OpenMP應用編程接口實現的DSWP併行不依賴于硬件上對覈間通信隊列和專用指令的支持,且不受平檯的限製,但現有的OpenMP任務調度機製無法滿足DSWP併行中對任務調度的需求.對現有的OpenMP任務調度機製進行擴展,增加瞭任務與線程綁定的屬性,保證瞭基于OpenMP的DSWP併行程序的正確執行.在GCC的OpenMP運行庫libgomp中擴展瞭任務綁定屬性子句的功能,擴展後的GCC作為OpenMP DSWP程序的基礎編譯器,為自動併行提供支持.通過對基準測試集NPB3.3.1的測試錶明,傳統自動併行失敗的循環,經OpenMP DSWP自動併行後在雙覈處理器上平均加速比達到1.23以上;使用添加瞭OpenMP DSWP算法的Open64編譯器生成的併行程序,與僅使用傳統自動併行方法的Intel 編譯器和Open64編譯器所得程序相比,平均加速比分彆高齣22%和26%.
다핵처리기능구제승다선정정서적성능,단조이존재적제다단선정정서무법종중획익,정서원야습관우편사단선정정서.자동병행화기술시장단선정정서이식도다핵상적중요수단,단시당순배중존재무법학정적수거의뢰혹복잡적공제류시,전통적자동병행화기술무법취득량호효과.Ottoni등인침대전통자동병행실패적순배제출료Decoupled Software Pipelining(DSWP)산법용이실현지령급적세립도병행,단기수요대처리기체계결구적심입료해이급대핵간통신대렬화전용지령적경건지지,병행성능화응용엄범성수도한제.기우OpenMP응용편정접구실현적DSWP병행불의뢰우경건상대핵간통신대렬화전용지령적지지,차불수평태적한제,단현유적OpenMP임무조도궤제무법만족DSWP병행중대임무조도적수구.대현유적OpenMP임무조도궤제진행확전,증가료임무여선정방정적속성,보증료기우OpenMP적DSWP병행정서적정학집행.재GCC적OpenMP운행고libgomp중확전료임무방정속성자구적공능,확전후적GCC작위OpenMP DSWP정서적기출편역기,위자동병행제공지지.통과대기준측시집NPB3.3.1적측시표명,전통자동병행실패적순배,경OpenMP DSWP자동병행후재쌍핵처리기상평균가속비체도1.23이상;사용첨가료OpenMP DSWP산법적Open64편역기생성적병행정서,여부사용전통자동병행방법적Intel 편역기화Open64편역기소득정서상비,평균가속비분별고출22%화26%.