天天看點

《中國人工智能學會通訊》——8.31 并行與分布式進化計算實作方式

近年來,随着計算機技術的發展,各種分布式平台以及高性能平台逐漸興起。如何将并行與分布式進化算法嵌入到這些平台,進而提升并行與分布式進化算法進性能,加快算法運作速度也成為學術界和工業界關心的熱點。目前流行的并 行 與 分 布 式 算 法 實 現 方 式 有 MPI(MessagePassing Interface)、Hadoop 和 GPU(GraphicsProcessing Unit)。

MPI

MPI 1 開始于 1991 年,是一種跨語言的通訊協定,主要用于并行程式的設計。自誕生之日起,其就成為設計高性能計算的主要模型。該協定是一種共享記憶體式協定,主要支援點對點和廣播服務,為高性能計算提供各種接口,幾乎可以支援目前主流的程式設計語言,比如 C、C++、Java、Python 等。文獻 [53,93] 使用該協定設計并行與分布式進化計算算法。

Hadoop

Hadoop 是由 Apache 軟體基金會開發的開源項目,主要用于實作谷歌(Google)公司開發的軟體架構協定—— Mapreduce [94] 。該協定用于大規模資料集的并行計算,主要包含 Map 操作和 Reduce操作。Map 操作用來把一組鍵值對映射為一組新的鍵值對;Reduce 操作主要是對 Map 映射後的新鍵值進行适當的合并。自從 Google 公布該協定後,它已經成為目前設計分布式程式的主流模型,特别是針對大規模資料集的分布式算法。文獻[48,95-97]利用該協定實作并行與分布式進化計算算法。

GPU

GPU 是一種強大的圖形處理單元,特别适合處理矩陣運算。目前英偉達(NVIDIA)公司領銜開發高性能 GPU,并提供程式設計語言 CUDA。一般而言,一個 GPU 可以執行上百甚至上千個線程,十分适合處理資料密集型處理任務。文獻 [98-101] 利用該模型實作并行與分布式進化計算算法。由于 GPU适合處理矩陣運算,在 GPU 上設計并行與分布式進化算法時,需要對傳統的進化算法進行特殊程式設計,使得進化算法在進化過程中包含大量的矩陣運算,而非傳統的向量運算。