Parallel programming Paradigm
Parallel Programming algorithm is often implemented to speed-up an applications runtime. Amdahl’s law and Gustafson’s law state that if doubling the number of processing instructions in a given application, it should reduce the runtime to halves; hence the two are inversely proportional to each other. Of course considerable measure in the software engineering must be met when implementing parallel algorithms for an application. Knowledge in the understanding of data dependency must be obtained, understanding how the application shares resources to prevent software instability. Engineering software using parallel programming concept such as thread, which are subtasks, is a challenge for the programmer because of the many risk involved in achieved an optimal application within a defined specification. A programmer must consider a thread safe algorithm in the implementation cycle by considering all possible obstacles such as race conditions, mutual exclusion, synchronization, slow down and data consistencies.
Extensive knowledge of the computer specific domain of expertise must be ascertained such as bit-level parallelism, instruction-level parallelism, data parallelism. Such knowledge will serve well in implementing a successful application.