Distributed-Memory FastFlow Building Blocks - Tonci, Nicolò; Torquati, Massimo; Mencagli, Gabriele; Danelutto, Marco (International journal of parallel programming, 2023)
We present the new distributed-memory run-time system (RTS) of the C++-based open-source structured parallel programming library FastFlow . The new RTS enables the execution of FastFlow shared-memory applications written using its Building Blocks (BBs) on distributed systems with minimal changes to the original program. The changes required are all high-level and deal with introducing distributed groups ( dgroup ), i.e., logical partitions of the BBs composing the application streaming graph. A dgroup , which in turn is implemented using FastFlow ’s BBs, can be deployed and executed on a remote machine and communicate with other dgroups according to the original shared-memory FastFlow streaming programming model. We present how to define the distributed groups and how we faced the problem of data serialization and communication performance tuning through transparent messages’ batching and their scheduling. Finally, we present a study of the overhead introduced by dgroups considering some benchmarks on a sixteen-node cluster.