Research In Motion
Parallel computing solves computationally large problems by partitioning into multiple tasks and running simultaneously on multicore or multiprocessor environment based on shared or distributed memory architectures. New multicore era demands software programmer to develop parallel programs to completely utilize the hardware parallelism. Writing parallel program manually for complex problem is a tedious and time consuming process. Hence, automatic parallelization tools were evolved to automate the process of converting sequential code to parallel. Parallelization techniques like dependency analysis and loop parallelization plays a major role in parallelization process.