High Performance Parallel Computing 高性能平行計算

   

高效能基礎平行計算平台

高效率觸控式人機互動介面

分散式動態群組運算模型

高解析度平行顯示技術模組

GPUs (Graphics Processor Units) – CUDA (Compute Unified Device Architecture)

Clusters – MPI (Message Passing Interface)

Multi-cores – OpenMP (Open Multi-processing)

   

   

 高效能基礎平行計算平台

「多核心叢集GPU混合平行計算」是由本研究團隊於近幾年中發展出一個應用「平行計算」於遙測影像資料特徵萃取的方法,此方法是改進傳統單一核心電腦執行「高資料量資料融合」的方法,應用「平行計算」改善「高維資料」計算效率,提升運算速度,改良高維資料運算慢的缺點。「平行多核心叢集計算」可以大幅減少所需的計算時間,同時所需的記憶體也分散至其它多核心叢集電腦,大幅降低了每台多核心叢集電腦所需的記憶體用量。採用「平行計算」技術來解決「高維遙測資料」龐大資料運算的問題,有著 1.高效益價格比的優點:由於目前多核心叢集電腦已經接近工作站的速度水準,使用多核心叢集電腦來構建高速「平行計算」系統已成為主流。2.投資分散的優點:由於「平行計算」的多核心叢集電腦系統,計算單元數目可以任意增減,因此可以做部份擴增及汰換,分散投資的風險,是以「平行計算」和「平行化程式」將是未來「高維資料」高速運算的主流。由原來演算法中,推導分割出適合「平行計算」的方法,將演算轉換成多個可以「平行計算」(parallel
computing)的「子計算」。藉以改善實際操作上的運算效能,找出「最佳化」的「平行計算」出來,探討一個更適合通用型「平行計算」的「高維資料」演算法。

 高效率觸控式人機互動介面

近年和本研究研究計劃相關之研究主要為「Embedded Linux B32 — 結合智慧型產品查詢系統之虛擬商店 」,這是和國內一家知名上市公司,POS (Point of Sale)系統最大供應商-飛捷科技之產學合作計畫。計畫以商家為對象,使用以觸控螢幕為基礎之查價機,取代傳統的口頭詢價與報價單,所提供的功能如圖一所示。

 

 

查價機以ARM嵌入式系統(B32)為工作平台,其作業系統採用uCLinux,圖形系統為MiniGUI。資料庫用MySQL,遠端的資料存取採用HTTP。如圖二所示。其中觸控螢幕為國內廠商自製之電阻式觸控板+LCD螢幕,而MiniGUI並未支援計畫中所使用的觸控板。所以在本EPS2 研究群中直接修改滑鼠介面,將滑鼠的相對座標輸入格式改為觸控板的絕對座標輸入格式,並完成觸控點選範圍的校準,達到計畫設定之要求。

 

 

分散式動態群組運算模型

傳統上「平行計算」多用於科學運算或商用伺服器等高速計算需求的應用之上。但隨著多核心系統與通訊系統的發展,「平行與分散式計算」的應用將日益重要且更為廣泛。過去數十年間已有許多針對「平行與分散式計算」進行的研究,但傳統「分散式」環境大多侷限於工作站或伺服器等固定電腦之上,除了必須使用大量空間放置這些運算資源外,其運算工作群組也不易於運算期間彈性地調整計算群組內運算節點數量。本研究團隊於近年發展出新的ㄧ套分散式移動計算模型Dynamic Distributed Mobile Computing (Dynamic-DMC) Model,並為實作了一個可移動式計算環境,稱為D2MCE
(Dynamic Distributed Mobile Computing Environment)。透過分散式網路或無線通訊的方式,運行中的分散式計算節點可以動態地連結成為一個動態運算群組(Dynamic Computing Group) (如圖),允許具計算能力的節點以叢集運算(Cluster Computing)的方式進行平行運算(Parallel Computation)或是負載分享(Load Sharing)。本EPS2 研究群將針對高效能平行計算與視覺化應用開發一套以D2MCE技術為基礎之動態平行運算環境。

 

 

高解析度平行顯示技術HIPerDisplay (Highly Interactive Parallelized Display)

隨著軟硬體科技的進步,由科學模擬計算或資料擷取儀器所產生的資料量往往非常龐大,如何快速地去分析這些數據,並以一種直覺的視覺方式呈現給研究人員成為一個重要的研究項目,如果缺乏這些視覺化分析的相關軟硬體支援,研究人員就無法從資料中擷取適當的資訊來進行下一步的分析。要分析處理這些龐大的三維幾何多邊形資料與圖像會面臨解析度不足的問題,目前普遍LCD解析度最高的30吋面板只能提供2,560×1,600 (4 mega-pixel)的解析度,如何顯示這些資料需要新的技術。解決方法可以是建構由多個顯示器所組成的顯示陣列(或稱之為顯示牆)。圖四所見的顯示陣列位於本研究團隊臺北科技大學資工系計算機圖學實驗室,為國內解析度最高的顯示平臺之一,由20部液晶顯示器所組成,解析度為9,600×4,800
(46 mega-pixel)。配合平行顯示演算法將三維模型進行同步平行顯示,大型顯示陣列的優點是不但讓使用者觀看量測資料的局部細節,並且可以兼顧整體資料的宏觀視野。透過平行繪圖(parallel rendering)演算法將龐大的資料顯示於高解析度顯示牆。

 

 

 

GPUs (Graphics Processor Units) – CUDA (Compute Unified Device Architecture)

CUDA(Compute Unified Device Architecture)是一種平行編程模型的軟體環境,且能提供C語言等標準程式語言,讓程式設計者能迅速掌握CUDA的編程方式。CUDA的核心有三種重要的概念:線程層次結構、共享記憶體與遮罩同步(Barrier synchronization),使程式設計者能輕鬆的去設計與管理內部線程。

 

 

Clusters – MPI (Message Passing Interface)

叢集式平行電腦系統通常是將相同等級硬體架構的電腦透過高速網路連結在一起,組成一個大型電腦系統,其架構下圖所示,每台電腦之間若要傳輸資料,只要將協定設定好,就可以透過高速網路經由交換器互相傳輸資料。叢集式平行電腦系統基本上也屬於分散式記憶體多處理器系統(Distributed Memory Multiprocessor System),組成叢集電腦系統的基本單位可以由單處理器電腦或是多處理器電腦所組成,因此叢集電腦在硬體的擴建上較有彈性。

 

 

Multi-cores – OpenMP (Open Multi-processing)

共享式記憶體多處理系統(Shared Memory Multiprocessor System)架構,如下圖所示,共享式記憶體多處理系統利用系統匯流排(System Bus)將CPU、記憶體及輸出入裝置連結起來,所以整個系統裡的CPU將共享所有的系統資源,此一架構的最大優點是容易讓使用者去撰寫平行程式,但是受到系統匯流排頻寬的限制,系統的擴充能力將受到限制。