Lably
Skip to content

Parallel algorithm

Algorithm which can do multiple operations in a given time

  • 4 min read
  • 4 chapters

Related on Lably

Through Computer science, Algorithm and Numerical analysis

Many parallel algorithms are executed concurrently – though in general concurrent algorithms are a distinct concept – and thus these concepts are often conflated, with which aspect of an algorithm is parallel and which is concurrent not being clearly distinguished. Further, non-parallel, non-concurrent algorithms are often referred to as "sequential algorithms", by contrast with concurrent algorithms.

Parallelizability

Algorithms vary significantly in how parallelizable they are, ranging from easily parallelizable to completely unparallelizable. Further, a given problem may accommodate different algorithms, which may be more or less parallelizable.

Some problems are easy to divide up into pieces in this way – these are called embarrassingly parallel problems. Examples include many algorithms to solve Rubik's Cubes and find values which result in a given hash.

Some problems cannot be split up into parallel portions, as they require the results from a preceding step to effectively carry on with the next step – these are called inherently serial problems. Examples include iterative numerical methods, such as Newton's method, iterative solutions to the three-body problem, and most of the available algorithms to compute pi (π). Some sequential algorithms can be converted into parallel algorithms using automatic parallelization.

In many cases developing an effective parallel algorithm to solve a task requires developing new ideas and methods not needed in the design of a sequential algorithm to solve the same problem. Examples of such cases include the practically important problems of searching for a target element in a data structure and the evaluation of an algebraic expression.

Sign in to keep reading

3 more chapters are free with a Lably account.

More in Computing and communication