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