Thank you for recommending "".
Your recommendation has been successfully processed.
The Multicore Era Seeks A Parallel Paradigm
Scalability, simpler debugging, and easier coding are essential to developing a successful parallel-programming approach.
Date Posted: February 28, 2008 12:00 AM
Likewise, Scheme, a dialect of Lisp,
employs the functions delay and force to
implement the idea of futures. A function’s
computation can be delayed until a result is
forced, though it may only be the part of the
result that’s being examined. If the result is a
list and the value of the first item is forced,
then only that item needs to be computed.
This approach as well as other parallelprogramming
methods such as scattergather
are used in a range of applications
already, from database servers to
disk queuing to memory caching, with
the well-accepted look-ahead methods.
These features need to be incorporated
into programming languages, but deciding
how and when is a difficult task. Various
features do find their way into the mainstream
eventually. For example, lambda
expressions are cropping up in C# and Java
(see “Lambda: Reclaiming An Old Concept,” ED Online 18099).
While researchers may be scurrying
to move parallel language enhancements
into the mainstream, some platforms are
already there. National Instruments’ Lab-
VIEW has been supporting parallel dataflow
semantics since its inception, as well
as time-based programming aspects that
blend well because of LabVIEW’s graphical
nature.
LabVIEW isn’t the only graphical programming
language that supports dataflow
semantics, but it’s one of the more
mature products. It brings parallel processing
semantics down to the graphical
statement level. In fact, LabVIEW tends
to push parallel processing to the other
extreme, where hundreds of expressions
may be pending evaluation.
Prioritizing computation tends to be
more difficult compared to sequential textbased
programming languages, but that’s
the tradeoff. Every language has its own
advantages and disadvantages, and none of
them—not even LabVIEW—answers all
problems equally well.
One aspect handled well by National
Instruments with its LabVIEW implementation
is splitting a model/program across
platforms. This is critical for parallel programming
because many architectures are
hybrids with multiple instances of multiplecore
platforms. Multiple-core platforms are
normally linked by shared memory while
instances are normally linked using other
techniques. Many other approaches tend to
fall down in this area because they address
only a single architecture.
microcontrollers | multicore