本整合型計畫是一為期三年的計畫,將在分散式記憶體多處理機及分散式 群體計算系統上設計一資料平行程式環境以發展高效能計算。此環境以循序 程式 ( FORTRAN 77) 為輸入,經由資料平行度開發的技巧將其轉換成資 料平行程式 High Performance Fortran (HPF) 。在分散式記憶體多 處理機,則將HPF轉成Single Program Multiple Data (SPMD)程式; 最後再將SPMD程式與通訊指令程式庫連結後轉換成可在 nCUBE/2 上執行 的平行程式。若是所處理的系統是分散式計算系統,則HPF程式再經編譯器 重新編譯後與running libraries連結,轉成可在工作站群上執行的程式。 此外,在程式執行中及執行後所產生的各種訊息,經由視覺化效能分析模組 的分析後,使用者可立即瞭解程式的執行效率及系統資源的利用情形,並可 透過使用者介面微調平行程式的各項參數,以達到最高的執行效能。
本計畫為一三年期整合型計畫中的子計畫。本整合性計畫主要在分散記憶體 多處理機及分散式群體計算系統上設計一資料平行程式環境以發展高效能計算。
此資料平行程式環境將包含平行化編繹器、為分散式環境設計的高效能編繹器 及編繹器執行環境,另外提供了通訊指令最佳化及視覺化效能分析的功能。本 子計畫的工作重點在於平行化編繹器及視覺化效能分析器的設計與製作。此一
計畫負責:
(1)將循序程序轉喚換成平行程式,以便在各種不同的機器上執行。
(2)對搜集的效能資料進行效能分析,並以視覺化的方式表現。
(3)為資料平行程式環境提供友善的使用者介面。
在第一年的計畫中,我們將開發資料的平行度並著手進行效能資料介面設計, 以及資料相依性測試演算法的製作。由於資料具區域性(locality)可減少 處理器間資料的傳輸;工作量均衡(load balance)則可避免某一處理器因 工作負擔太重,而拉長整個工作結束的時間,均可縮短執行時間,以達到高效 能計算的目標。所以在資料平行度開發方面,我們將研究在分散式記憶體多處 理機系統或在分散式群體計算系統中,資料如何分配至各處理器上,可使得資 料具區域性且各處理器的工作量是均衡的。視覺化效能方面將進行效能資料介 面及資料平行化介面的設計,提供使用者微調各項參數的能力而資料相依性測 試演算法,我們將實作GCD-Test,Banerjee-Wolfe Test及 Triangular Banerjee-Wolfe等演算法。
在第二年的計畫中,我們將接續 第一年的研究,產生HPF程式,同時還將針對HPF轉成SPMD模式的各種問題, 諸如資料空間的轉換,計算空間的轉換等進行研究。實作方面除了產生HPF程 式外,還將進行視覺化效能偵視器的設計。
在第三年的計畫中,我們將研究 SPMD至nCUBE Fortran程式,同時著手進行視覺化效能統計分析模組之
設計。最後將整合一、二、三年的研究及製作成果,完成整個子計畫的工作。
本整體計畫為期三年,其目的是發展一個資料平行程式環境:使用者僅需 須輸入一循序程式(Fortran 77),經由本系統之轉換,成為一平行程式,可在 tightly-coupled的分散式記憶體多處理機(nCUBE/2)或loosely-coupled 的分散式系統(workstation farm)上執行,以達高速計算的目的。
在一個平行程式中,子呈程式間不可避免地,有同步協調(synchronization) 、資料收集或變數交換之問題;在分散式記憶體環境中,這需要以處理器間或
工作站間訊息交換來達成,而訊息交換時間,又是否達到高效能計算之關鍵性 因素。因此,本子計畫之目的,就是設計處理器間及工作站間最佳化的通訊, 發展以下三個重要模組:
1.通訊函式庫(communication library):如broadcast,scatter ,gather等呼叫。
2.通訊指令最佳化(communication
instruction optimization): 如message coalescing ,message vectorization等功能。
3.不規則群集通訊(irregular
collective communication)繞徑函式: 如multicast,multi-scatter,many-to-many scatter等。
設計這些模組可以便利其它子計畫通訊問題之設計,支援通訊指令的產生 。同時我們也研究(1)如何減少通訊指令;(2)如何將常用的規則或不規則通訊樣 式予以最佳化;(3)如何平衡網路上的通訊負載,以減少通訊時間,避免通訊問 題成為平行計算之瓶頸。藉著這些模組,我們希望開發使用者程式之通訊平行 度,提高speed-up,達到高效能計算之目的。
本計畫工作排程如下:第一年進行通訊函式庫之設計,第二年進行通訊指 令最佳化之設計,第三年進行不規則群集通訊相關模組之研究設計。
分散式記憶體計算環境(DMCE)近年來漸漸變得重要,DMCE包含MPPS, Workstation cluster,High performance distributed computing environment,它由異質平行機器和如ATM switch的高速網路連結而成。 在distributed memory的環境下,program比在sequential難寫。為了 說服使用者花時間在這種環境下跑應用程式,我們需要軟體工具和軟體標準化。 HPF是HPF forum為了保護使用者的投資而制訂的標準。HPF將成為 Distributed Memory環境下最重要的語言之一。
在這子計畫中,我們將發展一個在Workstation farm上的第二代High Performance Fortran Language。HPF II的一個新的主要功能是支援 irregular aggregate data structure,因為科學應用程式須要比第一代 HPF支援的regular array sturcture更多在這方面的支援。這些包含了對 irregular data structure,parallel I/O,compiler optimization with array operation的支援及compiler和runtime library間的界面 。我們將整合我們的compiler到整個子計畫的軟體系統中,如此一來使用者 將有一個完整的程式環境。
我們認為這個環境將幫助使用者在分散式記憶體計算環境下寫程式並且有 助於本地的workstation公司的發展。這計畫也和國科會在分散式High
Performance Compiler領域的研究與發展計畫密切的相關。
分散式記憶體計算環境(DMCE)的可延展性、有彈性以及效能是最吸引的地方, 但是如何讓使用者方便以及達到好的工作效能是必需被考慮的。為了增進DMCE 的工作效能,以及方便使用者的使用,從Language、Compiler、Library ,以至Runtime Environment皆需考慮它們之間的關聯。由於目前有ATM高速 通訊網路的支援,能夠大大的提高資料傳輸的速率,亦即降低了程式執行時資料 交流的負擔。因此如何好好利用此高速資料傳送的管道,提供一良好的系統支援 便是一最重要的課題。本子計畫主要研究的課題是在Runtime Environment的 部份,如何應用高速網路高資料傳輸率的特性,提供一合適的Runtime Environment與Compiler密切配合以提高系統整體的效能。
首先為了解決一些編繹時期無法決定最佳化的問題,我們將研發負載平衡庫來 支援編譯器,以使編譯器能夠知道甚麼時候在那些Nodes之間需要作負載平衡的
工作、頻率、及使用何種平衡方式。其此委了使Node之間的Communication 更有效率,我們將研發一組多樣化的通訊程式庫而且它可以彼此間相容共同被使用
。再者,我們將更進一步加強過去在清大所發展的DSM的功能及效率,使得經由 Compiler所產生的目的碼有較好的執行效果。由於近來的研究已發現I/O是平行
處理的瓶頸(Amdahl's Law for Parallel Processing),故我們最後將 對平行I/O做深入的研究及探討,然後發展出一套有效率的平行I/O程式庫,來支
援資料的平行存取。