• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1213
  • Last Modified:

Vector Processing

What is meant by vector processing?.
What is the difference between vector pipeline and mulitple processors?.
0
sreejesh
Asked:
sreejesh
  • 2
1 Solution
 
chris_calabreseCommented:
Vector processing means that a single program can run multiple math operations at the same time on a single special-purpose processor that can run multiple math operations at the same time.  The classic example is the Cray 1 computer, which allows a program to load up a bunch of registers with a bunch of math operations and then let them loose.  This is just the thing for doing things like matrix multiplications.

Pipelining is similar to vector processing in that it also allows multiple operations at the same time.  However 1) it's not math specific 2) the operations can't interact as they can with a vector processor and 3) the operations start at different times (i.e., one starts, then the second starts before the first completes).  I've never hear the term 'vector pipeline', but I'm guessing this is referring to a processor that supports pipelining for math operations.

Multiple processors, on the other hand, are just that.  They are different in that exploiting parallelism on multiple processors requires the program to explicitly split itself into multiple streams of execution that are only loosly coordinated (threads) or for the OS to schedule multiple programs on the multiple processors.
0
 
sreejeshAuthor Commented:
Do you mean that the multiple operations done in vector processing can interact with eachother and is not possible in case of pipelining?. Why the term "Vector" is used for such processing?.
0
 
chris_calabreseCommented:
Yes, the operations in vector processing can intereact with each other and they can't in pipelining.

Actually, I should have clarified one other thing.  In vector processing, you load lots of data into lots of registers, and then you have one set of instructions that operates on all the data at the same time (again, a matrix multiply is the classic example).  Pipelining, on the other hand, is a technique to speedup the execution of a regular stream of instructions operating on independant data.

The reason vector processing allows interaction between the operations is that the operations can be things like "multiply each cell(n) with cell(n*2) and store the result in cell(n*3)", which means that the next instruction gets to see all the new data.

In pipelining, instructions in the pipeline are not complete, so if an instruction tries to operate on a register that's in the process of being changed by another instruction in the pipeline, you'll get indeterminate results.  Therefore, most processors implement what's called "pipeline stalling", which means they will actually block the second instruction from executing until the first completes.

The "vector" comes from the math background of vector processing, though I'm not sure _exactly_ what it refers to (the heyday of the vector machines is long since past and I've never worked on one).  I'm guessing that the vectors are the cells in the register banks that the vector instructions operate on.
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now