Previous | Next --- Slide 2 of 66
Back to Lecture Thumbnails
BigFish

I think single instruction stream means that we only feed one instruction to processing units each time. If there are multiple processing units, we execute the same instruction on them with different data, which is called SIMD.

Superscalar execution should not be single-instruction stream since it executes several different instructions in the core by making use of different functioning units.

rohit

@BigFish I think that superscalar execution is meant for the single instruction stream situation. Superscalar execution tries to find independent instructions in an instruction stream and executes them in parallel on multiple processing units.

BigFish

@rohit Yes, you are right. I understand the concept now. In this case, we may not exploit enough ILP in only one instruction stream. So Hyper-threading tries to execute several instruction streams on the core to increase ILP. Here is Kayvonf's explanation.

rflood

It seems to me like the main limiting factors in parallel programming are things which deviate from the serial models, i.e. when you need to communicate between instances instead of having it all in one thread, and when you need to wait for all to finish at before you continue

kayvonf

@rflood. Summarizing your post using terms from the class... you're correctly pointing out that speedup due to parallel execution can be limited by communication and synchronization between processors as well as by workload imbalance.