软件学报
軟件學報
연건학보
JOURNAL OF SOFTWARE
2013年
10期
2432-2459
,共28页
杜延宁%赵银亮%韩博%李远成
杜延寧%趙銀亮%韓博%李遠成
두연저%조은량%한박%리원성
推测多线程%并行化%数据结构%划分方法%执行模型
推測多線程%併行化%數據結構%劃分方法%執行模型
추측다선정%병행화%수거결구%화분방법%집행모형
speculative multithreading%parallelization%data structure%partitioning method%execution model
在对程序进行并行化时,为了保证结果的正确性,并行编译器只能采取一种保守的策略,也就是,如果它不能确定两段代码在并行执行时是否会发生冲突,它就不允许这两段代码并行执行.虽然这种做法保证了正确性,但同时也限制了对并行性的开发.在这种背景下,许多推测多线程方法被提了出来,这些方法通过允许可能冲突的代码段并行执行来把握更多的并行机会,同时,通过从冲突中恢复来保证结果的正确性.然而,传统推测多线程方法所使用的“沿控制流将串行程序划分为多个线程”的做法并不适合不同数据结构上的操作在控制流中相互交错的情况,因为如果沿控制流将程序线性地划分为多个线程,则同一个数据结构上的操作将被分到不同的线程中,从而非常容易发生冲突.为了有效地对这些程序进行并行化,提出了一种基于数据结构的线程划分方法与执行模型.在这种方法中,程序中的对象被划分成多个组,同一组中对象上的操作被分派到同一个线程中去执行,从而降低了在同一个数据结构上发生冲突的可能性.
在對程序進行併行化時,為瞭保證結果的正確性,併行編譯器隻能採取一種保守的策略,也就是,如果它不能確定兩段代碼在併行執行時是否會髮生遲突,它就不允許這兩段代碼併行執行.雖然這種做法保證瞭正確性,但同時也限製瞭對併行性的開髮.在這種揹景下,許多推測多線程方法被提瞭齣來,這些方法通過允許可能遲突的代碼段併行執行來把握更多的併行機會,同時,通過從遲突中恢複來保證結果的正確性.然而,傳統推測多線程方法所使用的“沿控製流將串行程序劃分為多箇線程”的做法併不適閤不同數據結構上的操作在控製流中相互交錯的情況,因為如果沿控製流將程序線性地劃分為多箇線程,則同一箇數據結構上的操作將被分到不同的線程中,從而非常容易髮生遲突.為瞭有效地對這些程序進行併行化,提齣瞭一種基于數據結構的線程劃分方法與執行模型.在這種方法中,程序中的對象被劃分成多箇組,同一組中對象上的操作被分派到同一箇線程中去執行,從而降低瞭在同一箇數據結構上髮生遲突的可能性.
재대정서진행병행화시,위료보증결과적정학성,병행편역기지능채취일충보수적책략,야취시,여과타불능학정량단대마재병행집행시시부회발생충돌,타취불윤허저량단대마병행집행.수연저충주법보증료정학성,단동시야한제료대병행성적개발.재저충배경하,허다추측다선정방법피제료출래,저사방법통과윤허가능충돌적대마단병행집행래파악경다적병행궤회,동시,통과종충돌중회복래보증결과적정학성.연이,전통추측다선정방법소사용적“연공제류장천행정서화분위다개선정”적주법병불괄합불동수거결구상적조작재공제류중상호교착적정황,인위여과연공제류장정서선성지화분위다개선정,칙동일개수거결구상적조작장피분도불동적선정중,종이비상용역발생충돌.위료유효지대저사정서진행병행화,제출료일충기우수거결구적선정화분방법여집행모형.재저충방법중,정서중적대상피화분성다개조,동일조중대상상적조작피분파도동일개선정중거집행,종이강저료재동일개수거결구상발생충돌적가능성.