3. Why Dataflow Programming Languages are Ideal for Programming Parallel
Hardware (according to ni company)
Dataflow programming models contrast to the control flow model (implemented in languages such as C).
Because of the top-down sequential programming approach, applications written in C have inherent limitations when
mapping to parallel hardware. In contrast, with a dataflow model, nodes on a block diagram are connected to one another to
express the logical execution flow, and they can be used to easily express parallelism. When a block diagram node receives
all required inputs, it produces output data and passes that data to the next node in the dataflow path. The movement of data
through the nodes determines the execution order of the functions on the block diagram.
SOURCE: www.ni.com/multicore
This document is part of the
Multicore Programming Fundamentals Whitepaper Series
Page 3 of 4
4. “process” is an instance of a computer program that is being executed. While a program itself is just a
passive collection of instructions, a process is something which actually executes those instructions.
Several processes can be associated with the same program - each would execute independently.
Modern computer systems allow multiple processes to be loaded into memory at the same time and,
through time-sharing (or multitasking), give an appearance that they are being executed at the same
time even if there is just one processor.
In modern operating systems, each process can have several threads of execution (or threads for short).
Multiple threads share the same program code, operating system resources (such as memory and file
access) and operating system permissions (for file access as the process they belong to). A process that
has only one thread is referred to as a single-threaded process, while a process with multiple threads is
referred to as a multi-threaded process. Multi-threaded processes have the advantage that they can
perform several tasks concurrently without the extra overhead needed to create a new process and
handle synchronized communication between these processes.
Threads can be thought of as lightweight processes, offering many of the advantages of processes
without the communication requirements that separate processes require. Threads provide a means to
divide the main flow of control into multiple, concurrently executing flows of control.
Application / Program
Task
Proces
Threa
Series of Related Instructions
Page 4 of 4