At the time of this writing, there have been three evolutionary tests of network Tierra, each for a few days, in November 1996, December 1996, and January 1997. The tests involved about 140 participating machines, located at ATR in Japan, Aizu University in Japan, The University of Delaware, The Santa Fe Institute, The Free University of Brusells, Sussex University in England, and the Swiss Federal Institute (EPFL) in Lausanne.
We are expecting the heterogeneity in available CPU cycles to provide selective forces for maintaining cell differentiation. Availability of CPU cycles is reflected in the Speed (virtual instructions per second) field of the TPing data structure. In the December test, we examined the distribution of this variable. Over a 48 hour period, these values were collected after every million instructions executed on our point of view node (at ATR), from all the other nodes on its MapFile. This generated 504,589 values of Speed data, of which 188,594 (37%) were zero values. Zero Speed values indicate that the Tierra process is sleeping on the associated node. If genomes migrate to a sleeping Tierra process, their packets will be lost in the net, and they will die. This should provide a strong selective force for avoiding migration to sleeping nodes.
In addition to the high percentage of sleeping nodes, there is also a very wide distribution of (non-zero) CPU speeds. Organisms on fast nodes can reproduce faster than organisms on slow nodes, thus there should be selection to discriminate and migrate to fast nodes. The frequency distribution of the 504,589 values of the Speed data is illustrated in Figures A (sorted into 100 bins) and B (sorted into 10 bins). The horizontal axis is CPU speed in thousands of instructions per second, the vertical axis is frequency in thousands.
Some examples of the distribution of Speed values over a 24 hour period are shown in Figures C, D, E, F, G, H. In each figure, the vertical axis shows the CPU Speed, in thousands of instructions per second, over time for one node. The horizontal axis is time, in hours, on the point-of-view node (not the node being observed).
The Tierra process runs as a low priority background process, by using a ``Nice'' value of -19. This causes the Speed of Tierra to mirror the load of non-Tierra processes on the machine (the Tierra Speed is high when the load from other processes is low). Thus the Speed of Tierra will vary with the load on the machine.
When the user of a machine touches the keyboard, or the mouse, Tierra immediately goes to sleep for ten minutes (from the last hit). This is reflected in Figures C -- H by the Speed value dropping to zero. The machine in the Figure C was evidently only touched once by a user. The other Figures reflect varying patterns of user activity. Figures F -- H evidently show sustained periods of user activity.
In each of these runs, the differentiated seed organism has gradually degenerated through evolution into a single cell type. Early in the run, the TPing sensory algorithm degenerated into just incrementing through the TPing list, causing migrations roughly at random to the nodes on the list, as illustrated by the organism 1060aaa. A little later in the run, the sensory thread was eliminated completely. In this case, the random number generator was used to provide the IP address for migrations, as illustrated by 2652aan.