So you parallelize with pipelines so that the latency becomes a small
factor
compared to the total throughput right? This distributed computing
paradigm
That was the general concept of fronting a superscalar core with an
optimizing instruction pipeline. Ensure that the instructions are as
parallel as possible and then maximize the work done in one cycle by
executing one or more instructions per cycle.
inter-machine level, things like the Linda system and other distributed
memory
systems make it possible to extend the view of the "system" into
multiple
Haha, that's about 20 years old, too! The master-worker pattern could be
seen as a pipeline but from the opposite approach. Instead of optimizing
the flow of the data/instructions, the goal is to optimize the amount of
workers available to consume the parallel sub-tasks so that there is
never a shortage of workers and there is always room for the
data/instructions.
--
email: [EMAIL PROTECTED]
________________________________
From: [email protected]
[mailto:[EMAIL PROTECTED] On Behalf Of
Gregg Wonderly
Sent: Wednesday, April 04, 2007 8:20 AM
To: [email protected]
Subject: Re: [service-orientated-architecture] Isaacson on High
Performance SOA with Software Pipelines
Bill Barr wrote:
> How come "new" software architectures are beginning to look
like
> advances in hardware architecture made back when RISC
processors were
> the hot, new thing? That was about 20 years ago, right? Most
> introductory computer architecture books illustrate that
pipelines only
> solve one performance problem: throughput. There is still
latency. We
> can always buy more bandwidth but, latency lives forever.
So you parallelize with pipelines so that the latency becomes a
small factor
compared to the total throughput right? This distributed
computing paradigm and
the whole concept of producer and consumer are things that need
specific
consideration in SOA. If there is an operation that you depend
on the
timeliness of, your architecture should facilitate scaling up
that operation in
terms of parallelization of a single task of the operation and
the
parallelization of multiple operations.
There are many things to consider for in process scalability.
The recent
developments in Java's memory model for JDK1.5 are aimed at
providing software
engineers with more tools to control concurrency interactions.
At the
inter-machine level, things like the Linda system and other
distributed memory
systems make it possible to extend the view of the "system" into
multiple
computing devices so that scalability in the form of
parallelization is simply a
matter of plugging in more machines.
Gregg Wonderly