Nov
10

Unlimited parallelism & concurrency with recursive dataflow

by Tomi Maila, Nov 10, 2009 at 4:09 pm
1 Star2 Stars3 Stars4 Stars5 Stars (4 votes, average: 4.50 out of 5)
Loading ... Loading ...

In my previous post I introduced the design pattern of worker pool based on dataflow recursion. In this post the pattern is revisited. I explain the theoretical concept of unlimited parallelism and concurrency that is a consequence of recursion in dataflow based programming languages. Furthermore I present how worker threads can be reused to manage system resource consumption.

more…

Print This Post Print This Post

Nov
04

Worker pool – a design pattern for parallel task execution in LabVIEW

by Tomi Maila, Nov 4, 2009 at 2:00 pm
1 Star2 Stars3 Stars4 Stars5 Stars (8 votes, average: 4.75 out of 5)
Loading ... Loading ...

Creating parallel code in LabVIEW is simple; simply place parallel tasks parallel on VI block diagram and the tasks are executed in parallel. However this design doesn’t bend to use cases when the number of parallel tasks is not known at development time but needs to be specified at runtime.  In this post I present simple design pattern for parallel code execution based on recursion. In my next post I study the recursive concurrency in more detail.

more…

Print This Post Print This Post

Nov
12

Two Paths to Concurrency – Comparing Erlang and LabVIEW

by Tomi Maila, Nov 12, 2007 at 11:46 pm
1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 4.60 out of 5)
Loading ... Loading ...

The clock speed of computer processors has reached the ceiling and the processor manufactures have moved from developing even faster single core processors into developing processors with increasing number of cores on a single chip. The increasing number of parallel processors is a challenge for software industry as writing parallelly executing software with mainstream programming languages is a challenging job. This dilemma is sometimes referred to as the multicore crisis.

Even though writing parallel programs with languages like C++, Java or C# is a rather complicated job, programming for parallel environments doesn’t necessarily have to be a challenge. Two programming languages both having their roots in the end of 80′s, Erlang and LabVIEW, have both been inherently concurrent from the very beginning. Both languages have started as special purpose programming languages and during the last two decades evolved into full featured general purpose programming languages. Although being both inherently concurrent languages, Erlang and LabVIEW solve the problem of concurrency in rather different ways.

more…

Print This Post Print This Post

Get Adobe Flash playerPlugin by wpburn.com wordpress themes