Encyclopedia of Parallel Computing

2011 Edition
| Editors: David Padua

PRAM (Parallel Random Access Machines)

  • Joseph F. JaJa
Reference work entry
DOI: https://doi.org/10.1007/978-0-387-09766-4_23


The Parallel Random Access Machine (PRAM) is an abstract model for parallel computation which assumes that all the processors operate synchronously under a single clock and are able to randomly access a large shared memory. In particular, a processor can execute an arithmetic, logic, or memory access operation within a single clock cycle.



Parallel Random Access Machines (PRAMs) were introduced in the late 1970s as a natural generalization to parallel computation of the Random Access Machine(RAM) model. The RAM model is widely used as the basis for designing and analyzing sequential algorithms. The PRAM model assumes the presence of a number of processors, each identified by a unique id, which have access to a single unbounded shared memory. The processors operate synchronously under a single clock such that each processor can execute an arithmetic or logic operation or a memory access operation within a single clock cycle. In general, each processor...

This is a preview of subscription content, log in to check access.


  1. 1.
    Brent R (1974) The parallel evaluation of general arithmetic expressions. JACM 21(2):201–208zbMATHMathSciNetGoogle Scholar
  2. 2.
    Fortune S, Wyllie J (1978) Parallelism in random access machines. In: Proceedings of the tenth ACM symposium on theory of computing. San Diego, CA, pp 114–118Google Scholar
  3. 3.
    Goldschlager L (1978) A unified approach to models of synchronous parallel machines. In: Proceedings of the tenth ACM symposium on theory of computing. San Diego, CA, pp 89–94Google Scholar
  4. 4.
    Greenlaw R, Hoover HJ, Ruzzo WL (1995) Limits to Parallel Computation: P-Completeness Theory. In: Topics in parallel computation. Oxford University Press, OxfordGoogle Scholar
  5. 5.
    Hillis WD, Steele GL (1986) Data parallel algorithms. Commun ACM 29(12):1170–1183Google Scholar
  6. 6.
    JaJa J (1992) An introduction to parallel algorithms. Addison Wesley Publishing Co., Reading, MAzbMATHGoogle Scholar
  7. 7.
    Karp RM, Ramachandran V (1990) Parallel algorithms for shared-memory machines. In: van Leeuwen J (ed) Handbook of theoretical computer science, North Holland, Amsterdam, The Netherlands, Chapter 17, pp 869–942Google Scholar
  8. 8.
    Keller J, Kessler C, Traff J (2001) Practical PRAM programming. Wiley, New YorkGoogle Scholar
  9. 9.
    Ladner R, Fisher M (1980) Parallel prefix computations. JACM 27(4):831–838zbMATHGoogle Scholar
  10. 10.
    Pippenger N (1979) On simultaneous resource bounds. In: Proceedings twentieth annual IEEE symposium on foundations of computer science. San Juan, Puerto Rico, pp 307–311Google Scholar
  11. 11.
    Shiloach Y, Vishkin U (1982) An O(n2 log n) parallel max-flow algorithm. J Algorithms 3(2):128–146zbMATHMathSciNetGoogle Scholar
  12. 12.
    Wen X, Vishkin U (2008) FPGA-based prototype of a PRAM-on-chip processor. In: Proceedings of the 2008 ACM conference on computing frontiers. Ischia, Italy, pp 55–66Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2011

Authors and Affiliations

  • Joseph F. JaJa
    • 1
  1. 1.Department of Electrical and Computer Engineering and Institute for Advanced Computer StudiesUniversity of MarylandCollege ParkUSA