Parallels between Biology and Computing
Computing is driven inexorably toward multi
cell architectures to manage ever-growing complexity
As computing becomes an ever more pervasive part of our modern
lives, we naturally look to understand it in terms of what we
know of other complex phenomena such as biology. And vice versa.
On the one hand, biological systems show computing professionals
the way to the exceedingly sophisticated kinds of collaboration
found in biological organisms: collaborations between cells,
between tissues, between organs and even between organisms
collaborating/competing in an ecology. On the other hand,
computing systems are recent and are human designed. We can
still remember the stages of evolution in computing and thereby
perhaps get insight into the evolution of computing that may
have had parallels in biology in the mists of prehistory.
Parallels between biology and computing systems include:
The most recent, and most obvious parallel is that both rely on multicellularity
enable complexity to grow beyond the limits manageable in a single
cell or single computer. Multicellullarity itself evolves from
single-cell architectures because of its inherent advantages. The
most primitive multicellular systems have few types of specialized
cells. They become more sophisticated and capable by
exploiting more cells and more types of cells. At present we
can only compare the simplest biological examples with the most
complex computing examples because multicellular computing
is in its infancy.
Examples in Biology
Simple Metazoans (i.e., multicellular organisms) include:
- Placozoa -- Thought
to be the simplest Metazoan organism. They are
millimeter-scale discs that contain a few thousand cells. The
cell types are: dorsal cells with flagella, ventral “gland
cells,” ventral flagellar cells, and central “fiber cells”
that have some of the properties of both nerve cells and
- Hydra -- A
milimeter-scale (5-20mm), multi-tentacled Cnidaria (the family
that includes jellyfish). It is estimated to contain 50,000 -
70,000 cells. It has at least 15 cell types including simple
nerves, epidermis (outer layer), gastrodermis (inner layer),
germ cells, and Nematocysts (stinging cells).
(e.g., Cnideria Cyanea) -- Number of cells > 10 million. At
least 22 cell types including neurons, sensors, muscle,
endocrine, and Nematocysts used for capturing prey.
Examples in Computing
Wikipedia, large public database services (e.g., EMBL/EBI Hinxton
GenBank), various "clouds" (Google's Cloud, Amazon's EC2), Social
networks (Facebook, Twitter), Massively Multiplayer Online Role
Playing Games (World of Warcraft, EverQuest, Second Life) and
instant messaging, chat and VOIP systems (e.g., Skype). The
largest and most familiar, and those about which more data is
- Ebay -- Estimated 54K,
At least 5 functional types of servers: database, LDAP, web
servers, application servers, networking switches and routers
- Facebook -- An
estimated 180,000 servers as of mid 2013. There are at least 4
types: proxy servers, web servers, database servers, and
- Google -- uses at
least 1.5 million servers and very likely more than 2 million
servers. Their system uses at least 9 specialized types of
server: crawlers, ad servers, indexing, spelling, documents,
http, search, formatting, and proxy/cache.
Note that Facebook and EBay, while among the largest
multicellular computing systems, are comparable to Placozoa, the
smallest Metazoan. And Google, by far the largest multicellular
computing system is far simpler than a jellyfish. Moreover, a
jellyfish is self organizing, self sustaining, and self
reproducing whereas Google is none of those things.
Neither biological nor computing systems advance just by
growing more and more "cells" of one type. They seem to prefer
to specialize and exploit
more types. The chart below shows the number of "cells/computers"
in a multicellular organism versus the number of "cell/computer"
types in a Log-log plot.
This relationship is based on 2009 data and it has far too few
data points to support a firm conclusion. Yet it suggests a
functional relationship, shared by both biology and
computing realms, that seems similar to the biological relationship between
the number of cell types in an organism and the number of genes that
organism has (see Stuart Kauffman, At Home in the Universe, Oxford
University Press, 1996, Fig. 5.6, pg. 109, or see
Fig 2 in this pdf..
Last revised 3/16/2015