按一下以編輯母片標題樣式,按一下以編輯母片,第二層,第三層,第四層,第五層,*,如虎添翼的組合:C+與 MPI平行計算的各種模型,蔡明原,2008/1/27-31,如虎添翼的組合:C+與 MPI平行計算的各種模型蔡明原,1,依硬體架構來分類,SISD(Single Instruction on Single Data)CU 一次取出1個指令作用在1筆資料上,就是一般個人電腦PC架構(Von Neuman),Control,Unit(CU),ProcessorUnit(CPU),MemoryUnit,資料,指令,指令,依硬體架構來分類SISD(Single Instructi,2,依硬體架構來分類,SIMD(Single Instruction on Multiple Data),CU一次取出一個指令同時作用於n個資料上,Program,ControlUnit(CU),Processor 1,Memory 1,Processor 4,Memory 4,Processor 3,Memory 3,Processor 2,Memory 2,Inter-connectionnetwork,內部通訊網路,依硬體架構來分類SIMD(Single Instructi,3,Shared-Memory SIMD Computer,ControlUnit(CU),Processor 1,Processor 4,Processor 3,Processor 2,MM1,MM2,MM3,MM4,MM5,MM6,data stream 1,資料流,data stream 2,data stream 3,data stream 4,instruction stream 指令流,instruction stream,Program,Shared-Memory SIMD ComputerCon,4,內部通訊網路,線形 Linear,矩陣 Mesh,樹狀 Tree,立方體 Cube,完全連接,P0,P1,P2,P3,P0,P1,P2,P3,P4,P5,P6,P7,P8,P1,P2,P3,P4,P5,P6,P7,0,1,2,3,4,5,6,7,8,9,10,11,12,14,13,15,P0,P1,P2,P3,P4,內部通訊網路線形 LinearP0P1P2P3P0P1P2,5,依硬體架構來分類,MIMD(Multiple Instruction on Multiple Data),Program,1,ControlUnit 1,Processor1,Program,2,ControlUnit 2,Processor2,Program,3,ControlUnit 3,Processor3,Program,n,ControlUnit n,Processorn,Shared Memory共享記憶體,And/Or,InterconnectionNetwork內部通訊網路,依硬體架構來分類MIMD(Multiple Instruc,6,依硬體架構來分類,MISD(Multiple Instruction on Single Data),Program,1,ControlUnit 1,Processor1,Program,2,ControlUnit 2,Processor2,Program,3,ControlUnit 3,Processor3,Program,n,ControlUnit n,Processorn,Memory記憶體,依硬體架構來分類MISD(Multiple Instruc,7,幾個結構上的選擇,Control Mechanism,SIMD適合 Data-Parallel Program大量的資料,做重複性的處理,MIMD 適合 Control-Parallel Programs多工作業,每個處理器做不同的事,幾個結構上的選擇Control Mechanism,8,平行電腦的發展問題,硬體/軟體,將多個Processor或多個記憶體模組(Memory Module)放在一台機器裡,線路連接的成本很高,雖然但近年來,多核心的電腦(Dual-Core)開始量產,但CPU的數目仍然算小,只能依原硬體設計架構(內部通訊網路)去設計程式,平行電腦的軟體也與一般個人電腦不同,擴充性/彈性,不能增減Processor數目,或是將效能較差的舊CPU更換成新的都不容易,平行電腦的發展問題硬體/軟體,9,PC Cluster,個人電腦(PC)技術及網路科技的不斷創新,使得個人電腦叢集(PC cluster)與大型主機相比,便具有優異的價格/性能比,再加上可自行建置的優點,以致學研界皆能以可負擔之費用獲取足夠的計算能量,因此降低了進入高速計算領域的門 檻。PC cluster的崛起,有助於高速計算與平行處理相關技術與應用的普及,各個學術或研究單位可依本身的實際需求,以合理的價格架設適合的PC叢集,因而對 於各應用領域的學術發展有莫大助益。,簡單說,PC Cluster就是將數台個人電腦透過網路交換器串連/並連在一起達到平行電腦的目的,PC Cluster個人電腦(PC)技術及網路科技的不斷創新,10,PC Cluster,PC Cluster,11,PC Cluster,PC Cluster,12,PC Cluster NCHC,IBM Cluster 1350,屬於分散式平行電腦系統,採Intel Woodcrest 3.0 GHz 雙核心處理器,擁有512個節點(node)、共2048個CPUs,總計算效能(Rmax)為19.91TF,理論值(Rpeak)為24.86TF,遠超越國網中心現有最大之HP 64Bit Cluster主機。更詳細的,IBM Cluster 1350設施介紹,。,PC Cluster NCHCIBM Cluster 1,13,如虎添翼的组合C与MPI平行计算的各种模型课件,14,Message Passing Interface,MPI,透過訊息傳遞的方式(網路),讓不同的PC(內部的CPU)可以做資料傳輸,提供不同的通訊方式:一對一,一對多,多對一及多對多,提供 C/Fortran 的函式庫,程式設計師可以輕鬆寫程式,Its free,Message Passing InterfaceMPI,15,你的第一個 MPI 程式,請從老師的網頁上下載 MPI-01.c 這個程式,這個程式介紹四個 MPI 最基本的函式,MPI_Init(),MPI_Comm_size(),MPI_Comm_rank(),MPI_Finalize(),請依老師的指示,看看你電腦內的 Dev-Cpp能不能正確編譯(Compile),如果編譯沒問題,請用 MPICH2 附的 wmpiexec.exe 來模擬多個 CPU 運作此程式,你的第一個 MPI 程式請從老師的網頁上下載 MPI-01.,16,