It is generally recognized that evolution is the only process with a proven ability to generate intelligence. It is less well recognized that evolution also has a proven ability to generate parallel software of great complexity. In making life a metaphor for computation we will think of the genome, the DNA, as the program, and we will think of each cell in the organism as a processor (CPU). A large multi-celled organism like a human contains trillions of cells/processors. The genetic program contains billions of nucleotides/instructions.
In a multi-celled organism, cells are differentiated into many cell types such as brain cells, muscle cells, liver cells, kidney cells, etc. The cell types just named are actually general classes of cell types within which there are many sub-types. However, when we specify the ultimate indivisible types, what characterizes a type is the set of genes it expresses. Different cell types express different combinations of genes. In a large organism, there will be a very large number of cells of most types. All cells of the same type express the same genes.
The cells of a single cell type can be thought of as exhibiting parallelism of the SIMD kind, as they are all running the same ``program'' by expressing the same genes. Cells of different cell types exhibit MIMD parallelism as they run different code by expressing different genes. Thus large multi-cellular organisms display parallelism on an astronomical scale, combining both SIMD and MIMD parallelism into a beautifully integrated whole. From these considerations it is evident that evolution has a proven ability to generate massively parallel software embedded in wetware. The computational goal of evolving multi-cellular digital organisms is to produce such software embedded in hardware.