https://software.intel.com/en-us/intel-tbb This lecture discusses the importance of building robust systems by mapping the actor/agent paradigm to your algorithm or code and implementing the system using the new flow graph feature introduced in Intel® Threading Building Blocks (Intel® TBB) 4.0.
The hardware landscape has changed from being mostly serial to mostly parallel in the past 5-10 years. A lot of effort has gone into enabling software to take advantage of the increase in computing power in modern parallel machines, but most software available today offer limited scalability. Developers have spent a lot of time adding incremental parallelism, mostly addressing the data parallel code regions, but the rest of application remains serial. A robust design of a concurrent system is applicable to many areas of engineering from embedded systems to scientific computing. Designing such systems using dataﬂow-oriented models can expose large amounts of concurrency to system implementation that otherwise go unharnessed. Utilizing this concurrency effectively enables distributed or parallel execution and increased throughput, or reduced power usage at the same throughput. This lecture discusses the importance of building such robust systems by mapping the actor/agent paradigm to your algorithm or code and implementing the system using the new flow graph feature introduced in Intel® Threading Building Blocks (Intel® TBB) 4.0. TBB flow graph feature allows users to easily create flow graphs and dependency graphs that execute on top of Intel TBB tasks. Users programmatically create nodes and edges that express the computations performed by their application and the dependencies between these computations. The Intel TBB library is then able to exploit the parallelism that is implicit in the graph structure, and the resources available on the target machine, to speed up the application. Flow graphs are applicable across a wide range of domains, including media, gaming, finance, portable/low-power computing, big data analytics and technical computing. An overview of the Actor/Agent paradigm will be presented and the audience will be walked through the details of simple and complex examples that demonstrate the power and flexibility of this parallel programming abstraction.