您好,登錄后才能下訂單哦!
1、實現的手段
1.1 MPI
MPI實現并行是進程級;采用的是分布式內存系統,顯式(數據分配方式)實現并行執行,通過通信在進程之間進行消息傳遞,可擴展性好。MPI雖適合于各種機器,但它的編程模型復雜:
需要分析及劃分應用程序問題,并將問題映射到分布式進程集合;
需要解決通信延遲大和負載不平衡兩個主要問題;
調試MPI程序麻煩;
MPI程序可靠性差,一個進程出問題,整個程序將錯誤;
1.2 Pthreads
Pthreads實現并行是線程級;采用的是共享內存系統,只有在POSIX的系統(linux、mac OS X、Solaris、HPUX等)上才有效。它是一個可以連接到C程序中的庫,目前標準的C++共享內存線程庫還在開發中,也許在將來在C++程序中,使用這個庫更加方便。
1.3 OpenMP
OpenMP是線程級(并行粒度);采用的是共享內存系統,隱式(數據分配方式)實現并行執行;可擴展性差;正因為采用共享內存分布系統,意味著它只適應于SMP(Symmetric Multi-Processing 對稱多處理結構),DSM(Distributed Shared Memory 共享內存分布系統)機器,不適合于集群。
1.1 OpenCL
全稱Open Computing Language,開放運算語言。是一個為異構平臺編寫程序的框架,此異構平臺可由CPU,GPU或其他類型的處理器組成。OpenCL由一門用于編寫kernels (在OpenCL設備上運行的函數)的語言(基于C99)和一組用于定義并控制平臺的API組成。OpenCL提供了基于任務分割和數據分割的并行計算機制。OpenCL類似于另外兩個開放的工業標準OpenGL和OpenAL,這兩個標準分別用于三維圖形和計算機音頻方面。
1.5 GPU
GPU是專門為執行復雜的數學和集合計算而設計的,一個GPU內有許多流處理簇(stream Multiprocessor)SM,他們就類似于CPU的核。這些SM與共享(一級緩存)連接在一起,然后又與相當于SM間互聯開關的二級緩存相連。類似于這種設計,都是為計算圖形渲染所必須的。
1.6 Hadoop
是谷歌公司MapReduce框架的一個開源版本。它針對的是linux平臺。其概念是你取來一個大數據集,然后將其切割或映射(map)成很多小的數據塊。然而,并不是將數據發送到各個節點,取而代之的是數據集通過并行文件系統已經被劃分給上百或者上千個節點。因此,歸約(Reduce)步驟就是把程序發送到已經包含數據的節點上,然后輸出結果寫入本地節點并保存在那里。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。