基于共享和形狀標(biāo)注的并行語言程序分析與變換
發(fā)布時(shí)間:2021-02-04 09:11
多核多處理新一代體系結(jié)構(gòu)的迅猛發(fā)展,引發(fā)了軟件開發(fā)方式上的巨變,為了能夠充分地發(fā)揮體系結(jié)構(gòu)上帶來的優(yōu)勢,越來越需要并行編程和并發(fā)軟件設(shè)計(jì),但是,當(dāng)前并行編程依然是件困難的事情。本課題組已經(jīng)設(shè)計(jì)并實(shí)現(xiàn)了一種共享資源使用聲明的并行程序語言SPC-II,它是基于共享內(nèi)存模型的一種并行程序語言。與現(xiàn)有的并行語言不同,它最大特點(diǎn)在于為程序員提供一種訪問控制的高級抽象,程序員不需要自己管理并發(fā)控制,而只需要聲明所使用的共享資源,讓編譯器分析所使用的共享資源的保護(hù)區(qū)間,根據(jù)共享資源的保護(hù)區(qū)間插樁訪問控制代碼。本文在課題組的并行語言基礎(chǔ)上,著重研究含有指針類型的鏈狀數(shù)據(jù)結(jié)構(gòu)訪問控制,論文的主要研究內(nèi)容有以下幾個(gè)部分:1.一種鏈狀數(shù)據(jù)結(jié)構(gòu)自動(dòng)細(xì)粒度加鎖方法就細(xì)粒度并發(fā)訪問鏈狀數(shù)據(jù)結(jié)構(gòu)提出一種自動(dòng)方法,這些鏈狀數(shù)據(jù)結(jié)構(gòu)目前是單鏈表和雙鏈表,通過分析SPC-II程序中的共享鏈狀數(shù)據(jù)結(jié)構(gòu)的形狀信息來分析程序中共享數(shù)據(jù)單元的保護(hù)信息。2. SPC-II語言翻譯器的實(shí)現(xiàn)在SUIF編譯框架上,實(shí)現(xiàn)了一個(gè)并行語言SPC-II的編譯器,該編譯器實(shí)質(zhì)上是一個(gè)源語言(SPC-II語言)到源語言(基于Pthread多線程庫的...
【文章來源】:中國科學(xué)技術(shù)大學(xué)安徽省 211工程院校 985工程院校
【文章頁數(shù)】:71 頁
【學(xué)位級別】:碩士
【部分圖文】:
指針變量2-3整形變量
=p; t->next=p; unLock(p);=p; q->next=p;unLock(q);1; return 1;)源程序 } (b)目標(biāo)程圖 2-5 SPC-II 的鏈表插入實(shí)例語法式化的討論本文的分析方法,圖 2-6 給出了 SPC-III 程序 由一個(gè)全局的類型環(huán)境 和代碼片段 S 組型定義和一組變量聲明組成。為了能夠讓程序員描述和指定變量共享性,SPC-II 在結(jié)構(gòu)體類型定義引入引入了共享性 。句 S 包括賦值語句,控制流語句,并支持顯式地動(dòng)了 并行語句。在源語言級,每個(gè)賦值語句和行,也叫做原子命令(Atomic command)。
圖 2-7 SPC-II 抽象機(jī)2 操作語義SPC-II 的操作語義由下面的轉(zhuǎn)換規(guī)則的歸納定義給出::一個(gè)特定線程的一步轉(zhuǎn)換初始狀態(tài)是:,其中,初始共享狀態(tài)的共享存儲(chǔ)時(shí)根據(jù)全局共享變量,初始的線程局部狀態(tài)是由全局環(huán)境中的非共享變量構(gòu)建。最終狀態(tài)時(shí):,其中,“_”表示不關(guān)心此次的值。.1 并行語句規(guī)則 DFORK 描述執(zhí)行一個(gè) fork-join 并行語句的要求,TiSi表示第 i 個(gè)子線源代碼,spawn(Ti,Si)表示創(chuàng)建一個(gè)新的子線程,這個(gè)子線程將會(huì)在線程環(huán)境 Ti下執(zhí)行代碼 Si。一旦一個(gè)子線程被創(chuàng)建時(shí),父線程必須等待直到子完成其代碼的執(zhí)行,規(guī)則 DSUB_THRD 描述一個(gè)子線程的一步執(zhí)行。
本文編號:3018074
【文章來源】:中國科學(xué)技術(shù)大學(xué)安徽省 211工程院校 985工程院校
【文章頁數(shù)】:71 頁
【學(xué)位級別】:碩士
【部分圖文】:
指針變量2-3整形變量
=p; t->next=p; unLock(p);=p; q->next=p;unLock(q);1; return 1;)源程序 } (b)目標(biāo)程圖 2-5 SPC-II 的鏈表插入實(shí)例語法式化的討論本文的分析方法,圖 2-6 給出了 SPC-III 程序 由一個(gè)全局的類型環(huán)境 和代碼片段 S 組型定義和一組變量聲明組成。為了能夠讓程序員描述和指定變量共享性,SPC-II 在結(jié)構(gòu)體類型定義引入引入了共享性 。句 S 包括賦值語句,控制流語句,并支持顯式地動(dòng)了 并行語句。在源語言級,每個(gè)賦值語句和行,也叫做原子命令(Atomic command)。
圖 2-7 SPC-II 抽象機(jī)2 操作語義SPC-II 的操作語義由下面的轉(zhuǎn)換規(guī)則的歸納定義給出::一個(gè)特定線程的一步轉(zhuǎn)換初始狀態(tài)是:,其中,初始共享狀態(tài)的共享存儲(chǔ)時(shí)根據(jù)全局共享變量,初始的線程局部狀態(tài)是由全局環(huán)境中的非共享變量構(gòu)建。最終狀態(tài)時(shí):,其中,“_”表示不關(guān)心此次的值。.1 并行語句規(guī)則 DFORK 描述執(zhí)行一個(gè) fork-join 并行語句的要求,TiSi表示第 i 個(gè)子線源代碼,spawn(Ti,Si)表示創(chuàng)建一個(gè)新的子線程,這個(gè)子線程將會(huì)在線程環(huán)境 Ti下執(zhí)行代碼 Si。一旦一個(gè)子線程被創(chuàng)建時(shí),父線程必須等待直到子完成其代碼的執(zhí)行,規(guī)則 DSUB_THRD 描述一個(gè)子線程的一步執(zhí)行。
本文編號:3018074
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3018074.html
最近更新
教材專著