Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17


Vector Processing

Posted on 1999-06-29
Medium Priority
Last Modified: 2008-02-26
What is meant by vector processing?.
What is the difference between vector pipeline and mulitple processors?.
Question by:sreejesh
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
LVL 14

Accepted Solution

chris_calabrese earned 40 total points
ID: 2011258
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.

Author Comment

ID: 2011259
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?.
LVL 14

Expert Comment

ID: 2011260
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.

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Installing FreeBSD… FreeBSD is a darling of an operating system. The stability and usability make it a clear choice for servers and desktops (for the cunning). Savvy?  The Ports collection makes available every popular FOSS application and packag…
Using libpcap/Jpcap to capture and send packets on Solaris version (10/11) Library used: 1.      Libpcap ( Version 1.2 2.      Jpcap( Version 0.6 Prerequisite: 1.      GCC …
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
Suggested Courses

721 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question