CS-416 Parallel and Distributed Systems<br />JawwadShamsi<br />Lecture #2 <br />19th January 2010<br />
How Much of Parallelism<br />Decomposition: The process of partitioning a computer program into independent pieces that ca...
Scalar Instruction<br />Single Instruction at a time<br />Load R1 @ 1000<br />Vector Instruction<br />Vector operations<br...
Pipelining<br />Pipelining overlaps various stages of instruction execution to achieve performance. <br />At a high level ...
Pipeline-limitations<br />Pipelining, however, has several limitations. <br />The speed of a pipeline is eventually limite...
Pipelining and Superscalar Execution <br />One simple way of alleviating these bottlenecks is to use multiple pipelines. <...
Super Scalar Execution<br />Issue multiple instructions during the same CPU cycle<br />How?<br />By simultaneously dispatc...
Difference Between Vector Instruction and Pipelining<br />
Parallel Processing <br />Computer speed / output is increased through parallel processing<br />Increase hardware<br />Inc...
Types of Parallelism - explained<br />
Data Parallelism<br />Same code segment runs concurrently on each processor<br />Each processor is assigned its own part o...
Upcoming SlideShare
Loading in …5
×

Lecture2

791 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
791
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lecture2

  1. 1. CS-416 Parallel and Distributed Systems<br />JawwadShamsi<br />Lecture #2 <br />19th January 2010<br />
  2. 2. How Much of Parallelism<br />Decomposition: The process of partitioning a computer program into independent pieces that can be run simultaneously (in parallel).<br />Data Parallelism<br />Task Parallelism<br />
  3. 3. Scalar Instruction<br />Single Instruction at a time<br />Load R1 @ 1000<br />Vector Instruction<br />Vector operations<br />C(1:100)=A(1:100)+B(1:100)<br />Super computer<br />Vector Instructions with pipelined floating point arithematic<br />
  4. 4. Pipelining<br />Pipelining overlaps various stages of instruction execution to achieve performance. <br />At a high level of abstraction, an instruction can be executed while the next one is being decoded and the next one is being fetched. <br />This is akin to an assembly line for manufacture of cars. <br />
  5. 5. Pipeline-limitations<br />Pipelining, however, has several limitations. <br />The speed of a pipeline is eventually limited by the slowest stage. <br />For this reason, conventional processors rely on very deep pipelines (20 stage pipelines in state-of-the-art Pentium processors). <br />However, in typical program traces, every 5-6th instruction is a conditional jump! This requires very accurate branch prediction. <br />The penalty of a misprediction grows with the depth of the pipeline, since a larger number of instructions will have to be flushed.<br />
  6. 6. Pipelining and Superscalar Execution <br />One simple way of alleviating these bottlenecks is to use multiple pipelines. <br />The question then becomes one of selecting these instructions. <br />
  7. 7. Super Scalar Execution<br />Issue multiple instructions during the same CPU cycle<br />How?<br />By simultaneously dispatching multiple instructions to redundant units<br />not a separate CPU core <br />but an execution resource within a single CPU e.g. ALU<br />
  8. 8. Difference Between Vector Instruction and Pipelining<br />
  9. 9. Parallel Processing <br />Computer speed / output is increased through parallel processing<br />Increase hardware<br />Increase cost<br />Tech advancements<br />Increase in cost is minimal<br />
  10. 10. Types of Parallelism - explained<br />
  11. 11. Data Parallelism<br />Same code segment runs concurrently on each processor<br />Each processor is assigned its own part of the data to work on<br />

×