BSF-skeleton: A template for parallelization of iterative numerical algorithms on cluster computing systems

MethodsX. 2021 Jul 3:8:101437. doi: 10.1016/j.mex.2021.101437. eCollection 2021.

Abstract

This article describes a method for creating applications for cluster computing systems using the parallel BSF-skeleton based on the original BSF (Bulk Synchronous Farm) model of parallel computations developed by the author earlier. This model uses the master/slave paradigm. The main advantage of the BSF model is that it allows to estimate the scalability of a parallel algorithm before its implementation. Another important feature of the BSF model is the representation of problem data in the form of lists that greatly simplifies the logic of building applications. The BSF-skeleton is designed for creating parallel programs in C++ using the MPI library. The scope of the BSF-skeleton is iterative numerical algorithms of high computational complexity. The BSF-skeleton has the following distinctive features. • The BSF-skeleton completely encapsulates all aspects that are associated with parallelizing a program. • The BSF-skeleton allows error-free compilation at all stages of application development. • The BSF-skeleton supports OpenMP programming model and workflows.

Keywords: C++; Higher-order function; MPI; Map/Reduce; Master/slave framework; Parallel computation model; Scalability boundary prediction.