TW525090B - Multi-entry threading method and apparatus for automatic and directive-guided parallelization of a source program - Google Patents

Multi-entry threading method and apparatus for automatic and directive-guided parallelization of a source program Download PDF

Info

Publication number
TW525090B
TW525090B TW90109532A TW90109532A TW525090B TW 525090 B TW525090 B TW 525090B TW 90109532 A TW90109532 A TW 90109532A TW 90109532 A TW90109532 A TW 90109532A TW 525090 B TW525090 B TW 525090B
Authority
TW
Taiwan
Prior art keywords
code
patent application
scope
original program
item
Prior art date
Application number
TW90109532A
Other languages
English (en)
Inventor
Xin-Min Tian
Knud J Kirkegaard
Milind B Girkar
Paul M Grey
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of TW525090B publication Critical patent/TW525090B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/456Parallelism detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Description

525090
五、發明說明(1) ,而更明確而 始程式自動與指 本發明通常係有關於編譯器最佳化技術 言,係有關一多重入口執行緒方法及一 令導引平行化之裝置。 ” 發明背i =的ϊί:題的持續增加複雜度是反映在電腦的 = 理2統建構倍增·,程式 而且 '為#及執仃原始程式的有效方法必須 平行處理报快變成主流技術,而影響到 到商業應用的結構與軟體料。+行應用是透^重處理 :!腦=、统執行,•包括複數互接處理器,以致皮此 交換資料。 圖1Α是:分散型記憶體多重處理器電腦系統的方塊圖。 :圖1Α所二,-電腦系統1〇〇包括多重處理模組12〇。每個 處理模組120包括一處理器122及—記憶體124。在電腦系 統1 00中’任何4數量的處理模組可如圖所示而互接。 圖1Β是一共享記憶體多重處理器電腦系統的方塊圖。如 圖1 Β所述 電知系統1 5 〇包括多重處理器1 6 0,其是連接 到一共莩記,體170。在一具體實施例中,記憶體'171包括 由每個處理器1 6 0佔用的專屬區域及由所有處理器存取的 一共同匾域/在電腦系統1 5 0中,有限數量的處理器丨6 〇可 互接,由於受到共享記憶體1 70使用的限制。 平行處理方法可使用例如自動平行處理編譯器的自動工 525090 五、發明說明(2) 具’其可編譯原始程式及有助於程式的平行處理。一編譯 器可看見整個原始程式、蒐集及重組指令,並且將原始程 式轉換成電腦可執行的目的碼。 一編譯器技術包括外廓技術的使用,其可將—程式的選 取區域轉換成外廓或分開的副常式。每個外廓副常式可傳 送給在一平行執行處理器中的一執行緒。使用外靡1術的 平行化是由Jyh-Herng Chow等人在1996年11月12〜14日於 加旱大多倫多市的Proceedings of CASC0N,96名稱 Automatic Parallelization for Symmetric Shared-Memory Multiprocessors"中詳細描述。然而,使 用外廓技術的一原始程式的平行化會提高用以產I 執 ; 譯器複雜度。因為原始瑪是分開成個別的副常 =:斤以束初運用於單一副常式的許多不同程度最佳化必 :奐起數個不同副常式,而建立會產 序,而且耗時。 卞1旧狂 簡單說明 本發明是藉由範例及附圖而描述, 類似元件,其中: 相冋爹考數子疋表不 圖1 A是一分散型記憶體多重處理器 例方塊圖。 电月囱糸統的具體貝施 圖1 B是一共享記憶體多重處理器 方塊圖。 電恥糸統的具體實施例 圖2是一具體實施例或電腦系統方塊圖。 圖3A是用以在一電腦系統中獲得 ^ 可執行程式處理的一
第6頁 525090 五、發明說明(3) 具體實施例方塊圖。 圖3 B是用以在一電腦系統中獲得一平行可執行程式處理 的一具體實施例方塊圖。 圖4是一原始程式的自動與指令導引平行化的多重入口 執行緒方法的一具體實施例流程圖。 圖式之詳細說明 下列本發明的具體實施例是參考附圖而詳細描述,相同 參考數字係表示類似元件,而且是經由本發明可實施的特 殊具體實施例顯示。 許多特殊細節的發表是為了要提供對本發明的完全了 解。然而,對於在技藝中熟諳此技者顯然可實施本發明, 而無需這些特殊細節。在某些範例中,眾所週知的結構與 裝置是以方塊圖形式顯示,而非詳細描述,為了要避免對 本發明模糊。這些具體實施例的詳細描述而使技藝中熟諳 此技者可實施本發明,而且了解到其他具體實施例可利 用,而且邏輯、機械、與電氣及其他Μ變化並未違背本發明 的範圍。 某些部分的詳細描述是從一電腦記憶體内的資料位元操 作的演算法與符號表示的觀點提供。這些演算法的描述與 表示可由資料處理技藝中熟諳此技者使用,以便能有效 將他們的工作内容傳達給技藝中其他熟諳此技者。在此的 演算法通常認為是一不自相矛盾序列的行為,而可導致一 想要的結果。這些行為需要實際量的實際處理。通常,雖 然不必然,但是這些量是採用電或磁信號的形狀,而可儲
第7頁 525090 發明說明(4) 存、傳輸、組合、比較、及直他 的主要理由是將這些信號視為位;、i有時:明-般使用 疋、項式、數字等。 值 70件、符號、字 量字=,所有的這些及類似術語是與適當w-:的數子有關,而且只運用於這 =” &表不 確描述,否則從下列討論可顯除非明 例如處理"或”運算"或"計管" ^ 正個描述是利用 的術語,豆可禎Α / 5 ’、疋或"顯示"或類似箄 作及處理,以處理及將在電腦系、统十算裝置的動 :(電。子)量表示的資料轉換成類似“::系=内的實 暫存益、或其他此資訊儲存、傳輪 壯、晉^體、或 他資料; Μ貞不衣置内表示的其 本發明亦有關於用以執行在此操作 了需要目的而特別構成,或它可包含一般:置是為 以在電腦中儲存的一的電腦程式選擇性動戈會=,而能 ,-電腦程式可儲存在一電腦可讀取儲存=重=構。 疋未侷限於)任何類型的碟片,包括軟碟/光碟、° (但 CD-ROMs、與磁光學碟片、唯讀記憶體(r〇Ms)、' 呂己憶體(RAMs) 'EPROMs、EEPROMs、磁或光學卡、為存取 儲存電子指令的任何類型媒體,而且每個人或適於 系統匯流排。 两5到一電腦 在此提出的演算法與顯示本質是與任何特殊带、 裴置無關。各種不同一般目的系統可根據在此或其他 程式使用,或證明可方便構成更特殊裝詈 况明而與 置以執仃所需的方
第8頁 525090 五、發明說明(5) 法。例如,根據本發明的任何方法透過將一般目的产 或硬體與軟體的任何組合而以硬體配執行緒電路每="° 藝中的一技術可"了解到本發明可使用除了下述之从 / 7卜的的雷 月向系統建構實施,包括手持裝置、多處理器系統、p μ 理機為基礎或矸糕式化消費者電子裝置、網路個人^ $處 迷你電腦、主電腦等。本發明亦可在分散式計算環境^ 施,其中工作玎透過藉由一通信網路連結的遠端處置 執行。各種不同這些系統的所需結構將在下面描述。衣 、本發明的方法是從電腦軟體的觀點描述。如果寫入的 式語言符合一公認的標準,在設計方面可實施該等方法的 指令序列可在各種不同硬體平台上編譯執行及與各種不同 作業$統形成界面。此外,本發明的描述是與任何特殊程 i::ΐ關。可了解到各種不同程式語言可用來實施在: 田a、本發明說明。此外,在技藝中通常一般對軟俨古 是隨著不同應用而有不同形式(例如,程式、程序、1應° 用…)。此表示是直接說明透過一電腦的軟體執 腦處理哭勃并a , ^ ^ γ轨仃一動作或產生一結果。 圖2疋一電腦系統2 0 0的具體實施例方塊圖。電腦系統 2 〇 〇包括一系統匯流排20 1、或類似系統匯流排的其他通作 、’ 災1/、資訊通信使用;及例如處理器2 0 2的一處理 模组,盆县造枝 、、一 /、 是接到匯流排2 0 1或處理資訊。電腦系統2 〇 〇是 進一步包括7如隨機存取記憶體(RAM)或其他動態儲存裂 置的主°己匕體2 〇 4,其是連接到匯流排2 0 1,用以儲存由 處理态2 0 2執行的資訊與指令。主記憶體2 04亦可在處理器
第9頁 525090 發明說明(6) 3 \的/曰7執行期間用於儲存暫時變數或其他中間資訊。 ^ ί ί、先2 〇 〇亦包括一唯讀記憶體(R 0M) 2 0 6、及/或其他類 -9 Π Ο ΛΛ ^ 置 其疋連接到匯流排2 0 1 ’用以儲存處理 為2 0 2的#態資訊與指令。 狀t Ϊ 磁碟或光碟的可選擇資料儲存裝置2 0 7及其對應 衣’、、可連接到電腦系統2 0 0,用以儲存資訊與指令。系 η匯:2非201是連接到一外部匯流排210,其是將電腦系統 連接_到其_他裝置。電腦系統2 〇〇亦可經由匯流排210而 、接f 顯不裔裝置2 2 1,例如一陰極射執行緒管(CRT )或 液b曰,、、、員示态(L c D ) ’用以將資訊顯示給電腦使用者。例 如,繪圖或文字資訊可提出給在顯示器裝置22工上的使用 ^。典^上,例如包括文數字及其他按鍵之一鍵盤的文數 入衣置2 2 2疋連接到匯流排2 1 〇,以便與處理器2 〇 2進 Λ及/或命令選擇的通信。另一類型的使用者輸入裝 ,疋游標控制裝置223,例如一傳統滑鼠的、觸摸式滑 鼠、執跡球、或其他類型的游標方向按鍵,其可用以盥處 理,20 2進行方向資訊與命令選擇的通信及用以控制在顯 不β 221上的游標移動。一完全負載電腦系統可選擇性包 括視訊、照相冑Κ '音效卡、及許多其他類 統選 項。 一通信裝置22 4亦連接到匯流排210,其可經由例如網際 網路而存取遠端電腦或伺服器。通信裝置224可包括一數 據機、一網路介面卡、或其他眾所周知的介面裝置,例如 用於乙太網路、符號環、或其他類型網路的介面。無論如
525090 ^— 發明說明(7) 何,在此方法中,電腦系統2 〇n 連接到許多伺服器。 可經由一傳統網路結構而 >圖3A是在一電腦系統中獲尸— 施例方塊圖。根據圖3a,^二、,可執行程式處理的具體實 高階程式語言撰寫的原始程^檣案3 1 0包括由程式師使用、 程式碼指令必須翻譯成機^ ^ ,例如FORTRAN或C。原始 步驟,並且包括原始程二。翻譯處理包括數個處理 在—具體實施例中,的'編繹。 程式碼會傳遞給一編譯器(田禾310内的高階語言原始 階指令轉換成在目的檔;32 0内:工顯示)。編譯器可將高 實施例中,考慮一平行電腦系統,子的上的碼。在—具體 行執行形式的目的碼。在一星髀每 '、> 澤為需要產生適於平 重模組’每個模組結合一或;個二::中’目1碼包括多 在執行程式庫3 4 0。 式。一些模組可儲存 最後,目的碼是傳遞給一連、纟士 組合模組,並且將實際值提供哈在^ 。連結程式3 3 0可 生-可執行程式35。。 在板組内的㈣,藉此產 圖3 Β是在一電腦系統中獲得一平^ 一 體實施例方塊圖。如圖3B,一連續屙:行程式處理的具 ^、、、員原始程式;^ $蚀用 (^61^?指令3 65的一連續原始程式編譯器 (未在圖中顯示)編譯’其可建立平扞 ° ^ 吃 卞仃可執行碼3 7 0。平行
可執行碼370然後連結到一平行執粁ρ斗、士 T 丁灯m仃矛王式庫3 8 0。執行程式 庫3 8 0可建立多重執行緒入口 3 8 5,麸接爲 , 3 9 0 執行。 ㈣
第11頁 525090 五、發明說明(8) 圖4是一原始程式的自動與指令導引平行化多重入口執 行緒方法的一具體實施例流程圖。 在一具體實施例中,透過一多重處理器電腦系統編譯及 執行的一原始程式需要平行化,為了要充份利用系統資 源。因此,多重執行緒必須產生,以平行執行原始程式, 其是因處理器的數量而定。
原始程式包括碼的多重迴路,其亦已知是平行區域。一 平行區域或迴路是定義成一程式碼區塊,而可由多重執行 緒平行執行。包括多重平行區域或迴路的一原始程式範例 是如下所示: # i nc1ude <s td i o. h> #define NSIZE 200 na i n() { i n t x, i, j ; float a[NSIZE], b[NSIZE], c[NSIZE]; /* parallel loop */
#pragma omp parallel for schedule(static)private (i)shared(a,b) f〇r(i二0; i<NSIZE ; i++) { b[i]二(fl〇at)(i * 2);
第12頁 525090 五、發明說明(9) a[i]二b[ i] + 100; } /* parallel region氺/ #pragma omp parallel shared(b,c) { x = 1 0 0 ; /氺 work—sharing loop*/ #pragma omp for schedule (dynamic) firstprivate (x)pri vate (i)
for(j=100; j<200; j++) { b[j]二(fl〇at)(j * 2); c[j]二b[j]+100 * x;
每個執行緒可接收一部分的迴路及執行與其他執行緒平 行的部分。平行區域或迴路是碼序列,其係表示程式碼平 行執行的基本平行建構。 請即參考圖4,在處理方塊4 1 0,原始程式或原始程式碼 可透過編譯器接收及讀取。在處理方塊42 0,在平行執行 常式内的一第一平行建構是由編譯器指定。 在處理方塊4 3 0,一開始碼可由編譯器產生。在一具體 實施例中,開始碼是一新的執行緒進入碼,其係表示一平
第13頁 525090 五、發明說明(ίο) _ 行建構的開始。在處理方綠a」n ^ Α 生。在一具體實施:中ϊ4;°二=可由編譯器產 的執行緒進入瑪所識別的執行緒入口傳遞給在多重處】! 系統上用以平行執行的多重執行緒執行系、统。處理" 在處理方塊4 5 0,靳的妯V- a & ^ 0 /々的執仃緒進入碼疋在原始程式 行建構之前插入。在一具體實施例中,新的進入碼是在 行建構的一第一指令前插入。在處理方塊4 6 〇,實施指令 是在原始程式的新執行緒進入碼之前插入。 7 /在處理方塊47 0,一停止碼是在原始程式的平行建構之 後插入。在一具體實施例中,停止碼是/執行緒返回指 令’其是在平行建構的一最後指令之後插入。執行緒 指令可發信給執行系統,以執行同步及返回主程式。 目^ ί理方塊48 Q ’ —新位置指令可由編譯器產生。在-具體貫施例中,位置指令是 甘本-山夕# 系統執行的下-指♦。在戴指令,其表不由多處理器 行緒返回指令之後插入在處理方塊4δ5,位置指令是在執 在處理方塊4 9 0 ’ 一跳® -tt入 行緒入口之前插入,以7上令/產生,而且可在新的執 程式。纟-具體實施例中:”置指令上持續執行原始 在新執行緒進入碼之前插入。%指令可隨後在貫施指令及 在處理方塊4 9 5,~決仝π 平行建構。如果常式包含/一判斷常式是否包含任何新的 495便重新處理有關於新平行建構,那麼方塊42 0至 含任何新的平行建構仃構。否則,如果常式不包 桎序便會停止。
第14頁 525090 五、發明說明(11) 在前述的規格中,本發明已描述特殊具體實施例。然 而,可了解到各種不同修改與變化將不致於違背在附錄申 請專利中所發表本發明的精神與範圍。因此,規格與圖式 只用於說明而非限制。
第15頁

Claims (1)

  1. 525090 _案號90109532 年月I i曰 修正$_ 六、申請專利範圍 1 . 一種用以編譯一原始程式之方法,其包含: 指定在該原始程式内的複數預定序列; 將一開始碼在該等複數預定序列的每個序列的一第一 指令之前插入該原始程式; 將一實施碼在該開始碼之前插入該原始程式,該實施 碼可定址該開始碼,並且將該每個序列傳輸給一系統而執 行;及 將一停止碼在該等複數序列的該每個序列的一最後指 令之後插入該原始程式,該停止碼可發信給該系統,以停 止執行該每個序列。 2 .如申請專利範圍第1項之方法,其進一步包含: 將一位置指令在該停止碼之後插入; 產生一跳躍指令,以便在該位置指令上開始執行該原 始程式;及 將該跳躍指令在該開始碼之前及該實施碼隨後插入。 3. 如申請專利範圍第1項之方法,其進一步包含: 接收該原始程式;及 讀取該原始程式。 4. 如申請專利範圍第1項之方法,其中該等複數預定序 列的每個序列是一平行建構。 5 .如申請專利範圍第1項之方法,其中該系統是一多重 執行緒執行系統,其可平行執行該每個序列。 6 .如申請專利範圍第1項之方法,其中該等複數預定序 列的該每個序列是一 0 p e η Μ P平行建構。
    O:\70\70709-911213.ptc 第18頁 525090 _案號90109532 t丨年月丨3曰 修正_ 六、申請專利範圍 7 .如申請專利範圍第1項之方法,其中將該開始碼插入可 進一步包含產生供插入的該開始碼。 8 .如申請專利範圍第1項之方法,其中將該實施碼插入 可進一步包含產生供插入的該實施碼。 9 .如申請專利範圍第2項之方法,其中將該位置指令插 入可進一步包含產生供插入的該位置指令。 10. —種包含可執行指令之電腦可讀取媒體,當在一處 理系統執行時,可使該系統執行用以編譯一原始程式之方 法,該方法包含: 指定在該原始程式内的複數預定序列; 將一開始碼在該等複數預定序列的每個序列的一第一 指令之前插入該原始程式; 將一實施碼在該開始碼之前插入該原始程式,該實施 碼可定址該開始碼,並且將該每個序列傳輸給一系統而執 行;及 將一停止碼在該每個序列的一最後指令之後插入該原 始程式,該停止碼可發信給該系統,以停止該每個序列的 執行。 1 1.如申請專利範圍第1 0項之可讀取電腦媒體,其中該 方法進一步包含: 將一位置指令在該停止碼之後插入; 產生一跳躍指令,以便在該位置指令上開始執行該原 始程式;及 將該跳躍指令在該開始碼之前及該實施碼隨後插入。
    O:\70\70709-911213.ptc 第19頁 525090 _案號90109532 ίί年/2月/3日 修正夺_ 六、申請專利範圍 1 2.如申請專利範圍第1 0項之可讀取電腦媒體,其中該 方法進一步包含: 接收該原始程式;及 讀取該原始程式。 1 3.如申請專利範圍第1 0項之可讀取電腦媒體,其中該 等複數預定序列的該每個序列是一平行建構。 1 4.如申請專利範圍第1 0項之可讀取電腦媒體,其中該 系統是一多重執行緒執行系統,其可平行執行該每個序 列。 1 5.如申請專利範圍第1 0項之可讀取電腦媒體,其中該 等複數預定序列的該每個序列是一 〇 P e η Μ Ρ平行建構。 1 6.如申請專利範圍第1 0項之可讀取電腦媒體,其中將 該開始碼插入可進一步包含產生供插入的該開始碼。 1 7.如申請專利範圍第1 0項之可讀取電腦媒體,其中將 該實施碼插入可進一步包含產生供插入的該實施碼。 1 8.如申請專利範圍第1 1項之可讀取電腦媒體,其中該 位置指令插入可進一步包含產生供插入的該位置指令。 1 9. 一種用以編譯一原始程式之裝置,其包含: 一記憶體,以儲存一原始程式;及 一處理器,其是耦合到該記憶體, 以指出在該原始程式内的複數預定序列; 以便將一開始碼在該等複數預定序列的該每個序列 的一第一指令之前插入該原始程式; 以便將一實施碼在該開始碼之前插入該原始程式,
    O:\70\70709-911213.ptc 第20頁 525090 _案號90109532 巧丨年月ί2/曰 修正_ 六、申請專利範圍 該實施碼可定址該開始碼,並且將該每個序列傳輸給供執 行的一系統;及 以便將一停止碼在該等複數序列的該每個序列的一 最後指令之後插入該原始程式,該停止碼可發信給該系 統,以停止該每個序列的執行。 2 0 .如申請專利範圍第1 9項之裝置,其中該處理器可進 一步: 將一位置指令碼在該停止碼之後插入; 產生一跳躍指令,以便在該位置指令上開始執行該原 始程式;及 將該跳躍指令在該開始碼之前及該功碼的隨後插入。 2 1 .如申請專利範圍第1 9項之裝置,其中該處理器進一 步: 接收該原始程式;及 讀取該原始程式。 2 2 .如申請專利範圍第1 9項之裝置,其中該等複數預定 序列的該每個序列是一平行建構。 2 3.如申請專利範圍第1 9項之裝置,其中該系統是一多 重執行緒執行系統,其可平行執行該每個序列。 2 4.如申請專利範圍第1 9項之裝置,其中該等複數預定 序列的該每個序列是一 0 p e η Μ Ρ平行建構。 2 5 .如申請專利範圍第1 9項之裝置,其中在插入該開始 碼之前,該處理器可進一步包含產生供插入的該開始碼。 2 6.如申請專利範圍第1 9項之裝置,其中在插入該實施
    O:\70\70709-911213.ptc 第21頁 525090 _案號90109532 1 I年(2月丨3日 修正_ 六、申請專利範圍 碼之前,該處理器可進一步產生供插入的該實施碼。 2 7.如申請專利範圍第2 0項之裝置,其中在插入該位置 指令之前,該處理器可進一步產生供插入的該位置指令。
    O:\70\70709-911213.ptc 第22頁
TW90109532A 2000-06-30 2001-04-20 Multi-entry threading method and apparatus for automatic and directive-guided parallelization of a source program TW525090B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US60808700A 2000-06-30 2000-06-30

Publications (1)

Publication Number Publication Date
TW525090B true TW525090B (en) 2003-03-21

Family

ID=24434971

Family Applications (1)

Application Number Title Priority Date Filing Date
TW90109532A TW525090B (en) 2000-06-30 2001-04-20 Multi-entry threading method and apparatus for automatic and directive-guided parallelization of a source program

Country Status (6)

Country Link
CN (1) CN1210650C (zh)
AU (1) AU2001266796A1 (zh)
DE (1) DE10196389T1 (zh)
GB (1) GB2381356B (zh)
TW (1) TW525090B (zh)
WO (1) WO2002003194A2 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1569104A3 (en) * 2004-01-09 2006-05-03 Interuniversitair Microelektronica Centrum Vzw An automated method for performing parallelization of sequential code and a computerized system adapted therefore
US7478376B2 (en) * 2004-12-02 2009-01-13 International Business Machines Corporation Computer program code size partitioning method for multiple memory multi-processing systems
US7487496B2 (en) * 2004-12-02 2009-02-03 International Business Machines Corporation Computer program functional partitioning method for heterogeneous multi-processing systems
US8869126B2 (en) * 2009-10-20 2014-10-21 Bull Hn Information Systems Inc. Method and apparatus enabling multi threaded program execution for a Cobol program including OpenMP directives by utilizing a two-stage compilation process
US8370820B2 (en) * 2009-10-20 2013-02-05 Guenthner Cynthia S Method and apparatus for enabling parallel processing during execution of a Cobol source program using two-stage compilation

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8610658D0 (en) * 1986-05-01 1986-06-04 British Petroleum Co Plc Flow control
US5278986A (en) * 1991-12-13 1994-01-11 Thinking Machines Corporation System and method for compiling a source code supporting data parallel variables
GB9305263D0 (en) * 1993-03-15 1993-05-05 Univ Westminster Parrallel computation

Also Published As

Publication number Publication date
CN1210650C (zh) 2005-07-13
GB0301568D0 (en) 2003-02-26
WO2002003194A3 (en) 2003-01-23
DE10196389T1 (de) 2003-06-18
WO2002003194A2 (en) 2002-01-10
GB2381356B (en) 2004-09-22
GB2381356A (en) 2003-04-30
AU2001266796A1 (en) 2002-01-14
CN1446334A (zh) 2003-10-01

Similar Documents

Publication Publication Date Title
US20190087164A1 (en) Technique for inter-procedural memory address space optimization in gpu computing compiler
JP4923240B2 (ja) プログラム処理装置、並列処理プログラム、プログラム処理方法、並列処理コンパイラ、並列処理コンパイラを格納した記録媒体およびマルチプロセッサシステム
US8572588B2 (en) Thread-local memory reference promotion for translating CUDA code for execution by a general purpose processor
CN103858099B (zh) 用于执行应用的方法和系统、具有机器指令的电路
US9485303B2 (en) Cluster system based on parallel computing framework, and host node, computing node and method for executing application therein
US9361079B2 (en) Method for compiling a parallel thread execution program for general execution
US9632761B2 (en) Distribute workload of an application to a graphics processing unit
US8341615B2 (en) Single instruction multiple data (SIMD) code generation for parallel loops using versioning and scheduling
US8694962B2 (en) Aspect-oriented parallel programming language extensions
EP2815313B1 (en) Rasterization of compute shaders
TWI221250B (en) Multi-processor system
US9367306B2 (en) Method for transforming a multithreaded program for general execution
WO2018196345A1 (zh) 图形化编程的自动编译方法
US20130305021A1 (en) Method for convergence analysis based on thread variance analysis
JP2010086319A (ja) コンピュータプログラム、マルチプロセッサシステム及びグルーピング方法
US20120166772A1 (en) Extensible data parallel semantics
KR20200014378A (ko) 직무 관리
Pllana et al. On customizing the UML for modeling performance-oriented applications
US20170147299A1 (en) System and method for optimizing multiple invocations of graphics processing unit programs in java
TW525090B (en) Multi-entry threading method and apparatus for automatic and directive-guided parallelization of a source program
Kristensen et al. Fusion of parallel array operations
Jesshope μ TC–an intermediate language for programming chip multiprocessors
JP2007193423A (ja) プログラム処理装置、並列処理プログラム、プログラム処理方法、並列処理コンパイラおよび並列処理コンパイラを格納した記録媒体
Miyoshi et al. FLAT: A GPU programming framework to provide embedded MPI
Dennis et al. Determinacy and repeatability of parallel program schemata

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MM4A Annulment or lapse of patent due to non-payment of fees