A BSPlib-style API for Bulk Synchronous Parallel ML

A BSPlib-style API for Bulk Synchronous Parallel ML
复制标题

用于批量同步并行 ML 的 BSPlib 风格 API

DOI:
10.12694/scpe.v18i3.1306
复制
发表时间:
2017
期刊:
Scalable Comput. Pract. Exp.
影响因子:
--
通讯作者:
F. Loulergue
F. Loulergue
中科院分区:
--
文献类型:
--
作者:
F. Loulergue

文献摘要

被引文献

相似文献

批量同步并行(BSP)提供了一个抽象和简单的并行模型,但允许考虑到现实的并行算法的通信成本。BSP已经在许多应用领域得到了广泛的应用。BSPlib及其变体是支持BSP风格的C语言编程库。 Bulk Synchronous Parallel ML(BSML)是一个使用函数式语言OCaml进行BSP编程的库。它提供了一个名为并行向量的数据结构上的并行操作。BSML提供了程序的全局视图,即BSML程序可以被视为在并行数据结构上工作的顺序程序(seq of par),而BSPlib程序以SPMD风格编写,并被理解为通信顺序程序的并行组合(par of seq)。BSML和BSPlib的通信风格也有很大的不同。 本文的贡献是在BSML之上实现了一个BSPlib风格的通信API。它的设计没有扩展BSML,而只是使用了底层函数式语言OCaml的命令式特性。使用此API实现的程序在语法上非常接近于使用C语言的BSPlib库实现的程序。这表明BSML对于BSP模型是通用的。
Bulk synchronous parallelism (BSP) offers an abstract and simple model of parallelism yet allows to take realistically into account the communication costs of parallel algorithms. BSP has been used in many application domains. BSPlib and its variants are programming libraries for the C language that support the BSP style. Bulk Synchronous Parallel ML (BSML) is a library for BSP programming with the functional language OCaml. It offers parallel operations on a data structure named parallel vector. BSML provides a global view of programs, i.e. BSML programs can be seen as sequential programs working on a parallel data structure (seq of par) while a BSPlib program is written in the SPMD style and understood as a parallel composition of communicating sequential programs (par of seq). The communication styles of BSML and BSPlib are also quite different. The contribution of this paper is a BSPlib-style communication API implemented on top of BSML. It has been designed without extending BSML, but only using the imperative features of the underlying functional language OCaml. Programs implemented using this API are syntactically very close to programs implemented using a BSPlib library for the C language. It therefore shows that BSML is universal for the BSP model.