The fossil record indicates that the evolutionary increase in complexity did not occur gradually, but rather that the bulk of the increase occurred in a small number of major transitions . These major transitions included: origin of chromosomes, origin of eukaryotes, origin of sex, origin of multi-cellular organisms, origin of social groups.
Of these major transitions, perhaps the most dramatic, and best known, was the rapid origin and diversification of large multi-cellular organisms from micro-scopic single celled ancestors, in what has come to be known as the Cambrian explosion of diversity [1, 2]. It has understandably been called evolution's ``big bang'', when there was a dramatic inflation of complexity of organisms, and species diversified rapidly into an ecological void.
Because the Cambrian explosion generated the largest of organic life's complexity increases, it is interesting to consider what its digital analogy may be. At its most fundamental level, the Cambrian explosion arose out of the transition from single-celled to differentiated multi-cellular organisms. Multi-cellularity alone does not permit the formation of large complex organism. Differentiation into cell types is also required.
In organic life, the program is the genome, based on nucleic acid sequences. In humans this program has roughly three billion bases, expressed as roughly one hundred thousand genes. Each cell contains a complete copy of the genome, however, no individual cell expresses all the genes in the genome. Each cell expresses a small subset of the genes, and this subset defines which ``cell type'' the cell is. It may be a skin cell, liver cell, brain cell, etc., depending on what subset of genes it expresses. The human body is thought to have at least several hundred distinct cell types, with a total of trillions of cells. With so many more cells than cell types, it is obvious that there are many cells of any given cell type. We can define a ``tissue'' as a collection of cells of the same type, which have in common that they express the same sub-set of the genome.
The features of multi-cellularity that are captured in the digital implementation presented here are : 1) That multi-cellular organisms originate as single cells, which develop into multi-celled forms through a process of binary cell division. 2) That each cell of a multi-celled individual has the same genetic material as the original cell from which the whole developed. 3) That the different cells of the fully developed form have the potential for differentiation, in the sense that they can express different parts of the genome.
In the digital analogy, the nucleotide sequence is replaced by a sequence of bits. Whereas the nucleotide sequence is interpreted as sixty-four codons (groups of three nucleotides), the bit sequence is interpreted as sixty-four machine instructions (groups of six bits). The CPU corresponds to the cell, thus the multi-celled digital organism is a parallel program. The genome is the executable machine code program.
In organic biology, there is at least one copy of the genome for each cell, because genetic information can not easily be shared across cell membranes. In most parallel computers, the same holds: there is an area of memory associated with each processor (cell), and there must be at least one copy of program code in the memory of each processor, because the memory is not shared.
However, if the parallel computer is a shared memory machine, making copies of the genome for each processor (cell) would be wasteful of memory and processing time (for copying the genetic information), and is simply not necessary. In this context it is highly unlikely that evolution by natural selection would favor such wasteful duplication of the genome. Thus the logical and evolutionarily more efficient implementation in this context is that a single copy of the program (genome) is shared by multiple processors (cells). In this implementation then, different cells correspond only to the different processors. These may still develop from a single original processor through splitting. They may also exhibit differentiation by executing different parts of the program. And obviously all cells will contain the same genetic material, since there will actually be only one copy per multi-cellular individual. The work presented in this paper is based on this shared memory implementation of multi-cellularity.
It should be noted that this system is implemented on serial rather than parallel hardware. Thus the parallelism associated with multi-cellularity is simulated in the software by time-slicing. For this reason, it may be more appropriate to speak of multi-threaded programs, rather than parallel programs.