Description

 

Lecture Notes Syllabus Description References Change Logs

本專題課程首先將平行計算作一概括式介紹。介紹方法將是以叢集計算作為理論及實驗平台。介紹內容將包括平行計算模型(parallel computation model),包括了PRAMparallel random access machine model),分散式及共享記憶體計算模式(distributed/shared memory models),特殊連結網路計算模式(special interconnection network model)。另外本課程也將介紹在各個計算模型下適用的程式撰寫模式,包括了共享記憶體程式撰寫模式(shared memory programming model),單一指令複合資料模式(SIMDsingle instruction multiple data),複合指令複合資料模式(MIMDmultiple instruction multiple data),及單一程式複合資料模式(SPMDsingle program multiple data)。

 

本專題課程再進一步會介紹平行計算所使用的各種演算法(parallel algorithms),以及他們與一般循序演算法(sequential algorithms)的差別。各種效能評估指標包括速度增益(speedup)及平行效率(parallel efficiency)也將在本課程中提出討論。本課程同時會在本課程組所提議之個人電腦叢集實作部分在課堂上所討論的平行演算法,用已驗證演算法所提出的理論部分。在實作方面將會使用平行計算程式庫包括PthreadPOSIX thread library),MPIMessage passing interface),及PVMParallel virtual machine)。修習本課程學生將會在此一提議之個人電腦叢集獲得充分平行程式撰寫經驗,來和理論比較驗證。

 

本專題課程進一步將著重在平行處理中通訊最佳化的問題討論,尤其是在個人電腦叢集中如何處理集體通訊(collective communication)的課題。在平行計算中處理節點(processing node)之間的通訊往往對平行處理的效率有極大的影響。隨著微處理機的發展日新月異,計算時間相形之下可大幅縮短,但是處理節點之間的通訊往往造成效能提升上的瓶頸。如何在個人電腦叢集中頻寬有限的情況下仍能有效的提升通訊效能就成為一個重要課題。

 

平行處理中往往需要使用集體通訊在處理節點之間傳遞資訊。這些集體通訊包括了點對所有點單一資訊廣播(broadcast),點對多點單一資訊廣播(multicast, 所有點對所有點客制資訊傳播(all to all personalized communication),以及所有點對單點資訊歸納(reduction)。這些通訊模式(communication pattern)都有其特殊性而且在平行處理中被普遍使用,所以這些通訊模式在實作上的效能對平行處理的整體效能有極大影響。

 

因應個人電腦叢集中可能會有不同種類的處理節點,傳統應用於同質性叢集系統(homogeneous cluster system)的通訊模式最佳化演算法必須加以調整。新的通訊模式最佳化演算法必須針對異質性叢集系統(heterogeneous cluster system)中不同種類的處理節點會有不同的計算速度及通訊頻寬而設計。這對通訊最佳化演算法設計帶來了新的挑戰與研究課題。本課程也將對此一問題作深度探討。