Upcoming SlideShare
×

# Lecture2

791 views

Published on

Published in: Technology
0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total views
791
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
14
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 />