Jump to content

Cannon's algorithm

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 74.193.81.121 (talk) at 02:42, 20 July 2012. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In computer science, Cannon's algorithm is a distributed algorithm for matrix multiplication for two-dimensional meshes first described in 1969 by Lynn Elliot Cannon.[1][2]

It is especially suitable for computers laid out in an N × N mesh.[3] While Cannon's algorithm works well in homogeneous 2D grids, extending it to heterogeneous 2D grids has been proven to be difficult.[4]

The main advantage of the algorithm is that its storage requirements remain constant and are independent of the number of processors.[2]

The Scalable Universal Matrix Multiplication Algorithm (SUMMA) [5] is a more practical algorithm that requires less workspace and overcomes the need for a square 2D grid. It is used by the ScaLAPACK, PLAPACK, and Elemental libraries.

See also

References

  1. ^ Lynn Elliot Cannon, A cellular computer to implement the Kalman Filter Algorithm, Technical report, Ph.D. Thesis, Montana State University, 14 July 1969.
  2. ^ a b Gupta, H.; Sadayappan, P.: Communication Efficient Matrix-Multiplication on Hypercubes, dbpubs.stanford.edu
  3. ^ 4.2 Matrix Multiplication on a Distributed Memory Machine, ipp.mpg.de
  4. ^ Research, graal.ens-lyon.fr
  5. ^ Robert A. van de Geijn and Jerrell Watts, " SUMMA: scalable universal matrix multiplication algorithm, Concurrency: Practice and Experience. Volume 9, Issue 4, pages 255–274, April 1997.