Saturday, 20 July 2013

What is Parallel Programming? Why do you need to care about it ?

Posted by Mahesh Doijade

    
what is parallel programming and why you need to care about it?, parallel programming, parallel computing,
        Parallel Programming involves solving a particular problem by dividing it into multiple independent sub-problems, creating multiple execution entities for them thereafter solving them independently through these execution entities onto different processors and establishing communication amongst them for any coordination if required in order accomplish the given problem. So, it is the mechanism for creating programs which enables one to effectively utilize the available computational resources by executing the code simultaneously on several computational nodes. Though there are numerous parallel programming languages available but the dominant ones  are MPI for distributed memory programming and OpenMP for shared memory programming.
           Parallel programming is historical considered to be one of the difficult areas hackers can tackle. As it comes with several issues such as race conditions, deadlock, non-determinism, scaling limits due to inherent sequential parts in the code, to name a few. If you really require good performance in your application then only you need to care about parallel programming, because performance is the crucial factor for going to parallel programming. If you are not concerned with performance then just write your sequential code and be happy, as it will perhaps be much easier and can be get done relatively faster.

              Some of the reasons for which one need to go for parallel programming are :
  • Firstly, as the commodity processors have completely adopted parallel architecture all the processors nowadays are coming multiple computing cores in a single processor, so this means that writing sequential code and waiting for couple of years for CPUs to get faster is not an option now. Thereby, it can be inferred that Parallel Programming have come to mainstream, so in order to make optimal use of the available resources parallel programming is the way to go.
  • Also, efficient parallel programs will implicitly result into minimal time for execution and also will be cost effective.
  • As there are several limitations of sequential computing such as Power Wall, Limits to miniaturization of transistors, to just name a few.
  •  To solve very large problem such as Weather Forecasting, Medical Imaging, Financial and economic modelling, Bio-Informatics, to name a few.., parallel computing is the only way.

0 comments:

Post a Comment