If you were curious enough to take a college-level course in Astrophysics, you have probably heard of quantum mechanics - the idea that the Universe is served up in tiny little packets of energy called quanta - and how it is impossible to observe the state of a system without affecting its state.  

For example, it is impossible to view an electron without moving that electron to a different energy state. This is called the observer effect, and it has to do with photons (little packets of light) changing the energy level of a lepton such as an electron, and therefore making it impossible to determine both the position and velocity of that electron.  

In this post, I will talk about how quantum observer effects apply not only at the subatomic level, but also in the operations of a computer system.

Quantum Superposition

When we talk about quantum superposition, we are referring to the idea of a system being in two or more separate states at the exact same time.  These are called eigenstates, and represent some or all of the possibilities of a system.  From a quantum mechanics standpoint, the most visible illustration of this is the attribute of light being both a particle and a wave.  When you observe individual light packets, or photons, the wave function collapses due to the thermodynamically irreversible interactions with the surrounding medium.

Schrödinger's Cat

Erwin Schrödinger posited a hypothetical paradoxical experiment in which a cat was trapped in a steel container exposed to a radioactive substance, that would decay and release a poisonous capsule.  Arguably, there would be no way of knowing if the cat were alive or dead without observing it.  The cat would exist in two eigenstates, alive and dead.  Note the use of the 'and' word and not the 'or' word in the preceding sentence.  This is due to the quantum superposition of the cat.

Double Slit Experiment

An easier-to-observe experiment known as the double slit experiment involves shining an electron gun through two slits in an opaque plate.  The expected result under classical mechanics should be two lines on the surface on the opposite side of the opaque plate roughly congruent with the holes.  However, instead we see a line of "bubbles" on the surface behind the plate perpendicular to the slits, because of the dual nature of light.  We see the lines that are projected due to light's particle properties, and we see the "bubbles". This is an exciting and fun experiment that you can do with a laser pointer on your own.

Observability and Monitoring

Here's where it matters.  There are two major types of system management.  Observability, the realtime viewing of the activities of a system, and monitoring, the realtime viewing of the end results of an invocation of software on that system.

Observability involves attaching a probe to an application, and viewing the interior of that application, whereas monitoring involves passively looking at log files.  Surprisingly enough, they can both affect the operation of the application, but in different ways.

How Observability Can Affect the Operation of a System

Computers are, for all intents and purpose, treated like finite state machines under classical mechanics.  You insert ones and zeros and you get ones and zeros.  They are extraordinarily boring, and anyone who thinks computers might take over the planet is encouraged to look at a Java stack trace.

Where this gets interesting is that the addition of a probe to a running application immediately takes CPU cycles from that application.  However small that application probe might be, those CPU cycles have to come from somewhere, and this can affect performance.  Something running a few million times per second will absolutely notice some measurable delays.  Please visit my article on Embedded Systems to understand why this is important:  https://www.embedded.com/develop-an-rtos-on-solaris-with-rtems/

In a sense, we can see that observation of the system affects its outcome.  Computer systems, which are much more complex than a single lepton, exhibit the same level of uncertainty on a macro state, as subatomic particles do at their scale, but it's less noticeable because we aren't conditioned to look for them.

Monitoring involves taking outcomes and sending them to logging facilities, which in and of themselves can affect the network, disk and CPU by taking resources away from the operations of the system.  This is evident any time a system is set to verbose logging and that starts eating up CPU.  As resources are starved, the monitoring process also affects the operation.

The Myth of Determinism

Computers are treated like finite state machines, but are they?  Will they operate exactly the same way every time?  Will beta particle emissions affect memory checksums and cause bits to flip?  Will thermodynamic entropy affect the speed and operation of a CPU?

While there hasn't been a lot of theoretical study into the quantum observer effects of a computer system, it's pretty clear that determinism, and the idea of a computer as a finite state machine is an outmoded idea that no longer can apply in the face of modern observability and monitoring systems.

Minimum Number of Eigenstates

I've developed a calculation which can illustrate the minimum number of eigenstates for a system.  It's incomplete but it looks like the following.

C = Memory Capacity in bits

D = Disk Capacity in bits

R = Aggregate CPU register capacity in bits

M = 2^(C+D+R)

For instance, a system with 16GB of RAM, 1TB of disk space, and 1024 bits of register capacity, has at a minimum of 2^8933531983872 eigenstates, which in base 10 is a number that is just under 2.7 trillion digits in size.  Every single bit change changes the eigenstate of the system.  These don't even take into account other variables such as temperature, network activity, and clock speed due to transverse Doppler effect.

The Impossibility of Impartial Observability

All of this is to say that it is impossible to observe a computer system without affecting its operations.  There is no such thing as impartial observability.  Observability by itself is not possible anywhere in the Universe, not just at the quantum level, but at the macro scale as well.