Burbeck
 on
 Computing

Multicellular Computing:
Evolution of Multiple Levels of Complexity
 

 
Web evolutionofcomputing.org

Home    Site Map

Four Principles logo

The Four Principles
Summary table
   Specialization
      in computing
   Polymorphic Messaging
      in computing
           Loading code
           Interpreted code
      in biology
  Stigmergy
     and "self"
     in computing
     in the Internet
  Cell Suicide (Apoptosis)
     in computing
Intertwined principles


Complexity
The problem
Out of control
Characterizing complexity
Dynamic complexity


Why the Biology Metaphor
Parallels with computing
Information processing
Encapsulation


Emergence
Example emergent systems
Multi-level emergence
   in computing
   in biology
Scale and emergence


Evolution
of computing
of multicellularity


Conclusions

Discussion & Comments


Complex systems inevitably evolve multiple levels of complexity which make the systems difficult to understand and make their behavior even more difficult to predict.

In complex, dynamic, adaptive systems, sets of elements tend to form stable, mutually reinforcing (i.e., autocatalytic) interactions. As Stuart Kauffman has shown, the emergence of such sets is virtually inevitable. And the process seldom stops with the formation of just one additional level of interaction. Soon after autocatalytic sets emerge at one level, the sets themselves tend to begin interacting with one another. These higher-level interactions tend to form because each autocatalytic set changes the environment of the others, for example by changing the relative abundance of the elements that participate in the autocatalytic sets.  Moreover, a species of lower level atomic element may play roles in more than one set.  For example, individual humans participate in many higher-level social sets, e.g., families, companies, clubs, markets, tribes, nations, etc.  Each social group is distinct and relies on different kinds of human interaction.  Yet the groups have subtle linkages due to sharing individuals who act as bridges between them.  In general, participation in multiple sets creates linkages between the sets.

As the autocatalytic sets themselves begin to interact with one another, they begin to play the role of atomic elements at a higher level of abstraction. As such, they begin to form new autocatalytic interactions within that higher level.  And so forth.  This phenomenon of ever increasing levels of complexity/abstraction arises in all sorts of complex systems: physical, chemical, biological, social, economic, computational, etc.

Multi-level complex systems are inherently unpredictable

Multi-level emergence is especially important to understanding both multi-level digital and multi-level biological  systems because multi-level emergence poses severe, sometimes insurmountable, challenges for the predictability and manageability of the resulting systems.

Cause and effect in multi-level complex systems does not necessarily reach across levels in a simple way. Both evolved and designed systems tend to use encapsulation mechanisms to restrict unwanted interactions that tend to devolve to chaos.  But encapsulation fundamentally cannot tame all "unwanted" interactions. Most of the biomolecules inside a living cell are isolated from the external environment by cell walls and often also isolated within internal cellular organelles.  Yet some biomolecules must be able to pass through the membranes for the cell to function and the behavior of these molecules once they have crossed the barrier is not always straightforward.  Similarly, modern computers are designed to prevent the inappropriate reading, writing, or execution of memory contents.  Yet some data must be allowed to pass.  Firewalls seek to prevent inappropriate interactions between computers over Internet connections.  But it is not always possible to determine what is or is not appropriate.  And so forth.  In the world of software, Joel Spolsky's Law of Leaky Abstractions points out that levels of abstraction in computing are never foolproof.

Nonetheless, in order to predict and manage the behavior of multi-level complex systems, we must be able to reason about how cause-and-effect crosses the levels -- because it almost always does.  However, tracking cause and effect through multiple levels is exceedingly difficult and often impossible.  The details of a hurricane or tornado are fundamentally not explainable by invoking the physics of individual air and water molecules[1].  Nor can a computer be understood by pondering the behavior of electrons, or logic gates.  Similarly, the behavior of even a single cell cannot yet be predicted by understanding its chemistry at a molecular level. We intuitively recognize these limits, and their consequences for predictability, in business, social, economic and ecological spheres as well as biology and computing.

Occasionally, multi-level phenomena become explicit and our inability to manage them has profound consequences.  For example, pharmaceutical drug discovery is a biological area in which we face many levels of complexity between the “cause” and the “effect.”  We seek to find a small-molecule, i.e., drug, that modulates some intracellular chemical pathway in a way that desirably affects the human body (or even the human mind) yet does not affect any other cellular process in a deleterious manner.  The major reason it is so difficult to find drugs and even more difficult to determine that they are safe and effective is that there are so many levels of complexity between cellular chemical reactions and whole-body effects and side-effects.  Similarly, in the computing realm, multi-level problems account for some of the most recalcitrant bugs we face.  Perhaps the most egregious example in computing is the prevalence of buffer-overrun exploits in Windows.  A buffer-overrun takes place, essentially, at the machine language level, i.e., the necessary code for array-bounds checking translates to perhaps a dozen extra machine instructions.  Yet the effects of buffer-overruns can be Internet-wide.  The “SQL Slammer” denial of service worm that slowed or blocked 80% of all Internet traffic for a few hours January 25th, 2003, was due to a buffer-overrun in Microsoft SQL Server software.   And today, the third largest viral botnet in the world, known as Bobax, "...bores open a back door and downloads files onto the infected machine, and lowers its security settings.  It spreads via a buffer overflow vulnerability in Windows, and inserts the spam code into the IE browser so that each time the browser runs, the virus is activated." (see here)  So much of the spam that bedevils the entire Internet is due to a few incompetently-written machine instructions in Windows that allow a buffer overflow.

The “three-level rule”

There are cognitive, and even physical, limits to our ability to trace cause-and-effect through multiple levels. We can focus on the elements of one particular level and contemplate the “part/whole” relationships in two directions.  For example, we can think about how the elements, say molecules or machine instructions, are made up of atoms or orchestrated gates and how the properties of those atoms or gates affect the properties of the molecules or instructions.  With a switch of cognitive repertoire, we can also contemplate how the molecules interact with other molecules to form crystals or various chemical reactions or how machine instructions cooperate to carry out a function or subroutine.  A skilled practitioner – a chemist or programmer – may be able to think about interactions in both directions at once.  That is, a skilled practitioner may be able to reason simultaneously about three levels of abstraction.  But it is quite difficult and seldom even useful to do so.  Reasoning about four levels of abstraction at one time is, arguably, beyond the ability of the human mind.

Multiple levels place constraints on the freedom to evolve

As we have seen repeatedly in the evolution of computing, interactions between levels can constrain the possible evolutionary paths of adjacent levels.  Every level other than the “highest” (i.e., most recently evolved) level of abstraction is at least somewhat constrained to evolve more slowly because changes that invalidate an implicit “contract” with the higher level tend not to survive long.  In biology, single-cell organisms and viruses can mutate rapidly because their behavior is free from a higher-level constraint.  Individual cells within multi-cell organisms are not so free to explore new behavior.  Similarly, unconnected digital devices, PDAs or cell phones for example, change at a dizzying pace whereas PCs become more powerful and cheaper but must generally retain the ability to run almost all applications from the prior generation.  In multicellular computing, we see most innovations happening at the highest level where new kinds of collaboration emerge -- new programming practices such as AJAX, new mashups in Web2.0, Google's AdSense ecology, etc.  These innovations seldom require changes to the underlying ecology of computers, operating systems, or Internet/Web protocols.  Those that do, tend to fail.

So, now, while multicellular computing is in its relatively early stages is the time for rampant innovation.  Also it is the time when architectural decisions -- good or bad -- will have the most effect in steering the future evolution of multicellular computing.  The architectural principles upon which new systems are based will tend to settle into accepted patterns.  Those systems that already support the winning principles will be more likely to prevail.


[1] Weather is inherently very sensitive to initial conditions so there is a limit to the detailed accuracy with which it can be predicted.  Moreover, some perturbations involve positive feedback so small changes can give rise to very large effects.




Last edited 1/9/2008