本文主要是探討如何在敘述平行層次(statement level parallelism) 及在SIMD和MI MD等架構下,有效的平行執行迴圈(loops) 之運算。之所以要採用在敘述平行層次下 平行執行迴圈運算,主要目的是希望發揮在敘述平行層次下的平行性 (parallelism) ,如此便能同時擷取這兩種層次的優點。 為了能提高平行電腦執行的效益 (performance),針對不同的硬體,需要設計出不同 的平行運算方法。由於目前在平行電腦中以SIMD和MIMD兩種架構使用較為普遍,且這 兩種架構在組織和特性上截然不同;因此本文針對這兩種架構,分別提出兩種迴圈平 行運算方法。 在SIMD架構中,本文將CHEN等[20]所提出應用於遞迴平行層次(iteration level pa- rallelism)的線性帶法(linear band method)加以延伸,並應用於敘述平行層次。不 但可以發揮其平行性,亦能達到和遞迴平行層次下的運算量,且在執行速度上要比CH EN等[20]所提出在遞迴層次及KUCK等[2] 所提之波前法(wavefront) 都要快。 另外,在MIMD架構中,由於溝通的負荷(communication overhead)較為嚴重,本文提 出同類法(Groups)來減低資料的溝通量,同時可以提高每個處理器的計算量(granul- arity)。至於如何找尋同類 (group),以使同類的數目和處理器的數目相同,本文亦 作說明。
|