What is Parallel Algorithm?

Computer ArchitectureComputer ScienceNetwork

Parallel algorithms are those specially devised for parallel computers. The idealized parallel algorithms are those written for the PRAM models if no physical constraints or communication overheads are imposed. In the real world, an algorithm is considered efficient only if it can be cost-effectively implemented on physical machines. In this sense, all machine-implementable algorithms must be architecture-dependent. This means the effects of communication overhead and architectural constraints cannot be ignored.

Characteristics of Parallel Algorithm

There are various characteristics of parallel algorithm which are as follows −

  • Deterministic versus nondeterministic − It is only deterministic algorithms are implementable on real machines. Our study is confined to deterministic algorithms with polynomial time complexity
  • Computational Granularity − Granularity decides the size of data items and program modules used in the computation. In this sense, we also classify algorithms as fine-grain, medium-grain, or coarse-grain.
  • Parallelism profile − The distribution of the degree of parallelism in an algorithm reveals the opportunity for parallel processing. This often affects the effectiveness of the parallel algorithms.
  • Communication patterns and synchronization requirements − Communication patterns address both memory access and interprocessor communications. The patterns can be static or dynamic, depending on the algorithms. Static algorithms are more suitable for SIMD or pipelined machines, while dynamic algorithms are for MIMD machines. The synchronization frequency often affects the efficiency of an algorithm.
  • Uniformity of the operations − This refers to the types of fundamental operations to be performed. If the operations are uniform across the data set, the SIMD processing or pipelining may be more desirable. In other words, randomly structured algorithms are more suitable for MIMD processing. Other related issues include data types and precision desired.
  • Memory requirement and data structures − In solving large-scale problems, the data sets may require huge memory space. Memory efficiency is affected by data structures chosen and data movement patterns in the algorithms. Both time and space complexities are key measures of the granularity of a parallel algorithm.
Published on 30-Jul-2021 14:15:42