# Limits of computation

The limits of computation are governed by a number of different factors. In particular, there are several physical and practical limits to the amount of computation or data storage that can be performed with a given amount of mass, volume, or energy.

## Hardware limits or physical limits
### Processing and memory density

* The Bekenstein bound limits the amount of information that can be stored within a spherical volume to the entropy of a black hole with the same surface area.
* Thermodynamics limit the data storage of a system based on its energy, number of particles and particle modes. In practice, it is a stronger bound than the Bekenstein bound.

### Processing speed

* Bremermann's limit is the maximum computational speed of a self-contained system in the material universe, and is based on mass–energy versus quantum uncertainty constraints.

### Communication delays

* The Margolus–Levitin theorem sets a bound on the maximum computational speed per unit of energy: 6 × 10$^{33}$ operations per second per joule. This bound, however, can be avoided if there is access to quantum memory. Computational algorithms can then be designed that require arbitrarily small amounts of energy/time per one elementary computation step.

### Energy supply

* Landauer's principle defines a lower theoretical limit for energy consumption: kT ln 2 consumed per irreversible state change, where k is the Boltzmann constant and T is the operating temperature of the computer. Reversible computing is not subject to this lower bound. T cannot, even in theory, be made lower than 3 kelvins, the approximate temperature of the cosmic microwave background radiation, without spending more energy on cooling than is saved in computation. However, on a timescale of 10$^9$ – 10$^{10}$ years, the cosmic microwave background radiation will be decreasing exponentially, which has been argued to eventually enable 10$^{30}$ as much computations per unit of energy. Important parts of this argument have been disputed.

## Building devices that approach physical limits

Several methods have been proposed for producing computing devices or data storage devices that approach physical and practical limits:
* A cold degenerate star could conceivably be used as a giant data storage device, by carefully perturbing it to various excited states, in the same manner as an atom or quantum well used for these purposes. Such a star would have to be artificially constructed, as no natural degenerate stars will cool to this temperature for an extremely long time. It is also possible that nucleons on the surface of neutron stars could form complex "molecules", which some have suggested might be used for computing purposes, creating a type of computronium based on femtotechnology, which would be faster and denser than computronium based on nanotechnology.
* It may be possible to use a black hole as a data storage or computing device, if a practical mechanism for extraction of contained information can be found. Such extraction may in principle be possible (Stephen Hawking's proposed resolution to the black hole information paradox). This would achieve storage density exactly equal to the Bekenstein bound. Seth Lloyd calculated the computational abilities of an "ultimate laptop" formed by compressing a kilogram of matter into a black hole of radius 1.485 × 10$^{−27}$ meters, concluding that it would only last about 10$^{−19}$ seconds before evaporating due to Hawking radiation, but that during this brief time it could compute at a rate of about 5 × 10$^{50}$ operations per second, ultimately performing about 10$^{32}$ operations on 10$^{16}$ bits (~1 PB). Lloyd notes that "Interestingly, although this hypothetical computation is performed at ultra-high densities and speeds, the total number of bits available to be processed is not far from the number available to current computers operating in more familiar surroundings."
* In The Singularity Is Near, Ray Kurzweil cites the calculations of Seth Lloyd that a universal-scale computer is capable of 10$^{90}$ operations per second. The mass of the universe can be estimated at 3 × 10$^{52}$ kilograms. If all matter in the universe was turned into a black hole, it would have a lifetime of 2.8 × 10$^{139}$ seconds before evaporating due to Hawking radiation. During that lifetime such a universal-scale black hole computer would perform 2.8 × 10$^{229}$ operations.

## Abstract limits in computer science

In the field of theoretical computer science the computability and complexity of computational problems are often sought-after. Computability theory describes the degree to which problems are computable, whereas complexity theory describes the asymptotic degree of resource consumption. Computational problems are therefore confined into complexity classes. The arithmetical hierarchy and polynomial hierarchy classify the degree to which problems are respectively computable and computable in polynomial time. For instance, the level $\Sigma _{0}^{0}=\Pi _{0}^{0}=\Delta _{0}^{0}$ of the arithmetical hierarchy classifies computable, partial functions. Moreover, this hierarchy is strict such that at any other class in the arithmetic hierarchy classifies strictly uncomputable functions.

### Loose and tight limits

Many limits derived in terms of physical constants and abstract models of computation in computer science are loose. Very few known limits directly obstruct leading-edge technologies, but many engineering obstacles currently cannot be explained by closed-form limits.