Levels of parallel processing
We could have parallel processing at four levels.
i) Instruction Level: Most processors have numerous execution units and can execute numerous instructions (usually machine level) at the similar time. Good compilers can reorder instructions to capitalize on instruction throughput. Often the processor can do itself. Modern processors even parallelize implementation of micro-steps of instructions within the same tube.
ii) Loop Level: Here, repeated loop iterations are candidates for parallel execution. Moreover, information between subsequent iterations may restrict parallel execution of orders at loop level. There is a lot of capacity for parallel execution at loop level.
iii) Procedure Level: Here parallelism is existing in the form of parallel executable measures. Here is the design of the algorithm plays a crucial role. For example each line in Java can be spawned to run a method or function.
iv) Program Level: This is usually the dependability of the OS, which runs processes concurrently. Different programs are apparently independent of each other. So parallelism can be removed by the operating system at this level.