Embarrassingly parallel

From Wikipedia, the free encyclopedia
(Redirected from Pleasingly parallel)
Jump to navigation Jump to search

Template:Short description In parallel computing, an embarrassingly parallel workload or problem (also called embarrassingly parallelizable, perfectly parallel, delightfully parallel or pleasingly parallel) is one where little or no effort is needed to split the problem into a number of parallel tasks.[1] This is due to minimal or no dependency upon communication between the parallel tasks, or for results between them.[2]

These differ from distributed computing problems, which need communication between tasks, especially communication of intermediate results. They are easier to perform on server farms which lack the special infrastructure used in a true supercomputer cluster. They are well-suited to large, Internet-based volunteer computing platforms such as BOINC, and suffer less from parallel slowdown. The opposite of embarrassingly parallel problems are inherently serial problems, which cannot be parallelized at all.

A common example of an embarrassingly parallel problem is 3D video rendering handled by a graphics processing unit, where each frame (forward method) or pixel (ray tracing method) can be handled with no interdependency.[3] Some forms of password cracking are another embarrassingly parallel task that is easily distributed on central processing units, CPU cores, or clusters.

Etymology

"Embarrassingly" is used here to refer to parallelization problems which are "embarrassingly easy".[4] The term may imply embarrassment on the part of developers or compilers: "Because so many important problems remain unsolved mainly due to their intrinsic computational complexity, it would be embarrassing not to develop parallel implementations of polynomial homotopy continuation methods."[5] The term is first found in the literature in a 1986 book on multiprocessors by MATLAB's creator Cleve Moler,[6] who claims to have invented the term.[7]

An alternative term, pleasingly parallel, has gained some use, perhaps to avoid the negative connotations of embarrassment in favor of a positive reflection on the parallelizability of the problems: "Of course, there is nothing embarrassing about these programs at all."[8]

Examples

A trivial example involves serving static data. It would take very little effort to have many processing units produce the same set of bits. Indeed, the famous Hello World problem could easily be parallelized with few programming considerations or computational costs.

Some examples of embarrassingly parallel problems include:

Implementations

  • In R (programming language) – The Simple Network of Workstations (SNOW) package implements a simple mechanism for using a set of workstations or a Beowulf cluster for embarrassingly parallel computations.[16] Similar R packages include "future", "parallel" and others.

See also

References

  1. Script error: No such module "citation/CS1".
  2. Section 1.4.4 of: Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Matloff, Norman (2011). The Art of R Programming: A Tour of Statistical Software Design, p.347. No Starch. Template:ISBN.
  5. Script error: No such module "citation/CS1".
  6. Script error: No such module "citation/CS1".
  7. The Intel hypercube part 2 reposted on Cleve's Corner blog on The MathWorks website
  8. Kepner, Jeremy (2009). Parallel MATLAB for Multicore and Multinode Computers, p.12. SIAM. Template:Isbn.
  9. Script error: No such module "citation/CS1".
  10. Script error: No such module "citation/CS1".
  11. Script error: No such module "Citation/CS1".
  12. Script error: No such module "Citation/CS1".
  13. How we made our face recognizer 25 times faster (developer blog post)
  14. Script error: No such module "citation/CS1".
  15. Script error: No such module "citation/CS1".
  16. Simple Network of Workstations (SNOW) package

External links

Template:Sister project

Template:Parallel computing