by Tomi Maila
This article explains the theoretical concept of unlimited parallelism and concurrency that is a consequence of recursion in dataflow based programming languages. Furthermore Tomi presents how worker threads can be reused to manage system resource consumption.
Before detailed study of the dataflow recursion based unlimited parallelism and concurrency, let’s first specify what we mean with these two concepts. Parallelism is all about performance whereas concurrency is about task independence. A parallel program is executed simultaneously by multiple processor cores for performance reasons. A concurrent program consists of multiple independent tasks that need to be executed all at the same time without one task blocking the execution of the others. Concurrent tasks need not to be executed in parallel by multiple processor cores but can be executed sequentially by some scheduling algorithm. Dataflow based language may not really distinguish between the two concepts. In LabVIEW based programs concurrent tasks are executed in parallel by the scheduling system if parallel threads are available.


