5 research outputs found
FastFlow tutorial
FastFlow is a structured parallel programming framework targeting shared
memory multicores. Its layered design and the optimized implementation of the
communication mechanisms used to implement the FastFlow streaming networks
provided to the application programmer as algorithmic skeletons support the
development of efficient fine grain parallel applications. FastFlow is
available (open source) at SourceForge
(http://sourceforge.net/projects/mc-fastflow/). This work introduces FastFlow
programming techniques and points out the different ways used to parallelize
existing C/C++ code using FastFlow as a software accelerator. In short: this is
a kind of tutorial on FastFlow.Comment: 49 pages + cove
Autonomic Management of Performance in FastFlow Stream parallel patterns
The thesis introduces autonomic managers in Fasflow pipeline and Farm skeletons optimizing service times and efficiency. Implementation details are discussed and experimental results are shown that validate the the approach.Simple policies are implemented aiming at optimizing service time and efficiency by merging/splitting stages in pipelines and by adding/removing workers in Farm skeletons
Usage of GPU Acceleration within FastFlow Stream Parallel Application
The emergence of stream applications such as multimedia processing and networking made Stream processing to become increasingly important. In a stream programming model, computations are decomposed into stages of sequential computations and input/output i partitioned into chunks where each chunk becomes a stream element. Input streams are then passed through stages of a pipeline, producing output streams. This has the advantage of effectively using the inherent parallelism in the pipeline, i.e., the execution of the stages can be overlapped with each other to exploit task parallelism.
The objective of the thesis is to investigate the suitability of Graphics Processing Unit(GPU) for stream parallel applications and to find out an optimal number of streams so that the computation on a chunk fully utilizes the GPU resources and the completion time of the whole application is the minimum one that can be achieved due to the usage of CUDA streams
Branch and Bound pattern in FastFlow
The thesis describes the development of a FastFlow skeleton implementing a Branch and Bound parallel framework that would be specialized by the user to solve all of the problems type solvable with a Branch and Bound approach. To achieve this scope the skeleton is worked out leaving to the users the task of specifying the application specific code and providing all the needed objects to implement the Branch and Bound framework
Efficient multicore implementation of NAS benchmarks with FastFlow
The thesis describes an efficient implementation of a subset of the NPB algorithms for the multicore architecture with the FastFlow framework. The NPB is a specification of numeric benchmarks to compare different environments and implementations. FastFlow is a framework, targeted to shared memory systems, to sustain parallel algorithms based on structured parallel programming. Starting from the NPB specification, the thesis selects a subset of the NPB algorithms and discerns an efficient implementation for both the sequential and parallel algorithms, through FastFlow. Finally, experiments on state of the art multicore architectures compare the derived code with the reference implementation, provided by the NPB authors