  This paper presents an approach for reducing the memory requirements of
dataflow applications, while minimizing the execution period when deployed on a
many-core target. Often, straightforward implementations of dataflow
applications suffer from data duplication if identical data has to be processed
by multiple actors. In fact, multi-cast actors can produce huge memory
overheads when storing and communicating copies of the same data. As a remedy,
so-called Multi-Reader Buffers (MRBs) can be utilized to forward identical data
to multiple actors in a FIFO manner while storing each data item only once.
However, MRBs may increase the achievable period due to communication
contention when accessing the shared data. A novel multi-objective design space
exploration approach is proposed that selectively replaces multi-cast actors
with MRBs and explores actor and FIFO channel mappings to find trade-offs
between the objectives of period, memory footprint, and core cost. Our approach
considers (i) memory-size constraints, (ii) hierarchical memories to implement
the buffers, (iii) supports heterogeneous many-core platforms, and (iv)
optimizes the buffer placement and overall scheduling to minimize the execution
period by proposing a novel combined actor and communications scheduling
heuristic for period minimization called CAPS-HMS. Our results show that the
explored Pareto fronts improve a hypervolume indicator over a reference
approach by up to 66 % for small to mid-size applications and 90 % for large
applications. Moreover, selectively replacing multi-cast actors with
corresponding MRBs proves to be always superior to never or always replacing
them. Finally, it is shown that the quality of the explored Pareto fronts does
not degrade when replacing the efficient scheduling heuristic CAPS-HMS by an
exact integer linear programming (ILP) solver.
