The BSFC++ Library


F. Dabrowski, F. Loulergue


If parallel programming is to become as widespread as sequential programming, the languages supporting it should incorporate all the standard abstraction mechanisms including pure functions and recursion. Yet for such languages to be practical scalable programming tools, abstraction should not come at the price of predictable performance. Unfortunately many parallel languages don't describe data placement so that performance is not predictable as a function of the source program. This is because data placement depends on the language implementation, not its semantics.

On the contrary, the bulk synchronous parallel (BSP) computing paradigm demonstrates that programs explicitly written for a static number p of processors can have predictable execution costs on a wide variety of architectures. But the combination of BSP algorithms with high-level language features is not well understood so that the evolution of BSP languages is hindered.  We are investigating this question from a functional programming perspective.

The BSFC++ Library is a library for the C++ language for Functional Bulk Synchronous Parallel Programming. The functional part of the library is based on the FC++ Library (version 1.3). The parallel functions are similar to the parallel functions of the BSMLlib library. This library needs a MPI library to compile.


The BSCF++ Library version 0.11


Please read the following papers for further information: