  Quantum information processing is the emerging field that defines and
realizes computing devices that make use of quantum mechanical principles, like
the superposition principle, entanglement, and interference. In this review we
study the information counterpart of computing. The abstract form of the
distributed computing setting is called communication complexity. It studies
the amount of information, in terms of bits or in our case qubits, that two
spatially separated computing devices need to exchange in order to perform some
computational task. Surprisingly, quantum mechanics can be used to obtain
dramatic advantages for such tasks.
  We review the area of quantum communication complexity, and show how it
connects the foundational physics questions regarding non-locality with those
of communication complexity studied in theoretical computer science. The first
examples exhibiting the advantage of the use of qubits in distributed
information-processing tasks were based on non-locality tests. However, by now
the field has produced strong and interesting quantum protocols and algorithms
of its own that demonstrate that entanglement, although it cannot be used to
replace communication, can be used to reduce the communication exponentially.
In turn, these new advances yield a new outlook on the foundations of physics,
and could even yield new proposals for experiments that test the foundations of
physics.
