MarketEmbarrassingly parallel
Company Profile

Embarrassingly parallel

In parallel computing, an embarrassingly parallel workload or problem is one where little or no effort is needed to split the problem into a number of parallel tasks. This is due to minimal or no dependency upon communication between the parallel tasks, or for results between them.

Etymology
"Embarrassingly" is used here to refer to parallelization problems which are "embarrassingly easy". 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." The term is first found in the literature in a 1986 book on multiprocessors by MATLAB's creator Cleve Moler, who claims to have invented the term. 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." ==Examples==
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: • Monte Carlo method • Distributed relational database queries using distributed set processing. • Numerical integration • Bulk processing of unrelated files of similar nature in general, such as photo gallery resizing and conversion. • The Mandelbrot set, Perlin noise and similar images, where each point is calculated independently. • Rendering of computer graphics. In computer animation, each frame or pixel may be rendered independently . • Some brute-force searches in cryptography. Notable real-world examples include distributed.net and proof-of-work systems used in cryptocurrency. • BLAST searches in bioinformatics with split databases. • Large scale facial recognition systems that compare thousands of arbitrary acquired faces (e.g., a security or surveillance video via closed-circuit television) with similarly large number of previously stored faces (e.g., a rogues gallery or similar watch list). • Computer simulations comparing many independent scenarios. • Genetic algorithms. • Ensemble calculations of numerical weather prediction. • Event simulation and reconstruction in particle physics. • The marching squares algorithm. • Sieving step of the quadratic sieve and the number field sieve. • Tree growth step of the random forest machine learning technique. • Discrete Fourier transform where each harmonic is independently calculated. • Convolutional neural networks running on GPUs. • Parallel search in constraint programming ==Implementations==
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. Similar R packages include "future", "parallel" and others. ==See also==
tickerdossier.comtickerdossier.substack.com