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 上设计并行与分布式进化算法时,需要对传统的进化算法进行特殊编程,使得进化算法在进化过程中包含大量的矩阵运算,而非传统的向量运算。