misc edits
[pec.git] / physical-evolutionary-computation.tex
blob655218d5b908abfb5216c306e6c75fae5d91f0e0
1 \documentclass{sig-alternate}
2 \usepackage{algorithm}
3 \usepackage{algorithmic}
4 \usepackage{subfigure}
5 \usepackage{graphicx}
6 \usepackage{listings}
7 \input{tikz-setup.tex}
9 % in 2010 there was 8-page maximum
10 \begin{document}
11 \conferenceinfo{GECCO'11,} {July 12--16, 2011, Dublin, Ireland.}
12 \CopyrightYear{2011}
13 \crdata{978-1-4503-0072-8/10/07}
14 \clubpenalty=10000
15 \widowpenalty = 10000
17 \title{Physical Evolutionary Computation}
19 \numberofauthors{2}
20 \author{
21 % \alignauthor
22 % Eric Schulte\\
23 % \affaddr{University of New Mexico}\\
24 % \email{eschulte@cs.unm.edu}
25 % \alignauthor
26 % David H. Ackley\\
27 % \affaddr{University of New Mexico}\\
28 % \email{ackley@cs.unm.edu}
31 \maketitle
32 \newcommand{\Comment}[1]{}
33 \begin{abstract}
34 \noindent
35 Although evolutionary computation (EC) is an ``embarrassingly
36 parallel'' process, it is often deployed on essentially serial
37 machines, and even its parallel implementations typically retain the
38 globally synchronized and regimented style typical of serial
39 computation. We explore a radical `physical evolutionary
40 computation' (PEC) hardware/software framework that is based on real
41 time and real space rather than an abstract sequence of events---for
42 example, the mutation rate is specified in Hertz. PEC supports
43 massive and reconfigurable parallelism, using a prototype hardware
44 `tile' that begins evolutionary computation within three seconds of
45 applying power. Although each tile is a simple computer by today's
46 standards, tiles can be plugged together into a wide variety of size
47 and shape computing grids---even while the computation is running.
49 We present our initial explorations with this framework, defining
50 mechanisms for representing and sharing problems, and mapping
51 between computational spaces and physical ones. We discuss
52 advantages of PEC---such as extremely robust operation---as well as
53 its challenges, and touch on some unexpected, and potentially
54 useful, level-crossing interactions that can be explored when the
55 embedding of the computational within the physical is made real.
56 % levels, such as observing that an \emph{increased} hardware failure
57 % rate can benefically affect the explore/exploit balance of an
58 % evolutionary computation.
60 \Comment{
61 In contrast to conventional, highly abstract, computational models,
62 the \emph{physical computation} framework embraces the concrete
63 properties of space and time. Computational space contains multiple
64 processor/memory elements arranged in some geometry, with sizes,
65 relative positions, and local communications; and computational
66 times---frequencies and intervals, delays and deadlines---are
67 measured in hertz and seconds or milliseconds, rather than steps or
68 generations or simulated days.
70 Within such a framework, \emph{evolutionary computation} (EC) is one
71 natural computational strategy. Though often implemented on a
72 serial computer, ECs such as genetic programming (GP) are fundamentally
73 `embarrassingly parallel' computational strategies, and thus
74 apparently well-suited to such distributed and parallel hardware.
76 In this paper, we introduce and demonstrate a combined hardware and
77 software implementation of \emph{physical evolutionary computation}
78 (PEC), based on small pluggable computers programmed with firmware
79 that performs genetic programming in the physical computation style,
80 and exchanges both problem specifications and evolved individual
81 programs with whatever neighbors may exist. Our `evolution
82 processing tiles' typically begin evaluating individuals less than
83 two seconds after power on;
84 %assuming the 'one shot red boot' technique is in use..
85 in effect, they cannot \emph{not} evolve.
87 We explore the abilities and limitations of systems of such
88 `non-stop evolution' components, which possess rather different
89 properties than serial GP. Some traditionally difficult or ignored
90 problems become easy, such as: Robust operation in the face of
91 software and hardware failures, dynamic utilization of changing
92 hardware resources, and the aligning spatial dimensions of the
93 physical hardware with dimensions of the problem space. On the
94 other hand, some operations that are traditionally trivial or free
95 become more difficult or expensive, such as: Halting computations,
96 repeating a computation exactly, coordinating global goals, and
97 `forgetting' prior solutions.
99 \end{abstract}
101 % A category with the (minimum) three required fields
102 \category{1.2.11}{Computing Methodologies}{Distributed Artificial Intelligence}
103 \category{C.3}{Computer Systems Organization}{Special-Purpose and Application-Based Systems}
104 \category{B.8}{Hardware}{Performance and Reliability}
106 \terms{Reliability}
107 \keywords{Evolutionary Computation, Robustness, Physical Computation}
109 \section{Scalable abstractions}
110 \label{sec:introduction}
112 \Comment{
113 \subsection{Scaling abstractions}
114 \label{sec:abstraction}
116 The ability to abstract is critical to our cognitive abilities, with
117 incredibly deep and productive abstractions such as mathematics and
118 the structures of science and engineering ultimately powering much of
119 our success as a species. That said, it is important to remember that
120 many different abstractions can be drawn from any given situation or
121 events, each with its own biases and limitations as well as emphases
122 and strengths.}
124 \noindent
125 Abstract computational models simplify the natural world to help us
126 understand it, and also serve as outlines for the engineering
127 of---preferably ever-more-powerful---computing machines. Researchers
128 have explored computing models inspired by everything from mathematics
129 and philosophy to the natural and social sciences, but abstractions
130 based \emph{algorithmic software on reliable serial hardware} have
131 dominated computer science and engineering, accruing volumes of
132 widely-understood tools and techniques. The basic \emph{von Neumann
133 machine} `CPU+memory' model abstracts physics into deterministic
134 boolean algebra, and abstracts time into a total ordering of discrete
135 steps from a beginning to an end. Even more aggressively, it
136 eliminates the distances and dimensions of physical space entirely,
137 declaring all memory equally cheap to access by the CPU. Where that
138 assumption is invalid, the von Neumann machine is simply a poor
139 descriptive model. On the other hand, when used for machine design,
140 that assumption has held simply because engineering was commanded to
141 make it so, which it has done spectacularly for decades, scaling clock
142 speed and memory capacity over many orders of magnitude.
144 \Comment{
145 that isn't and can't be true in general plays
146 out in two aspects: Descriptively where it isn't true -- as far as
147 trying to apply it to some observations of actual reality -- this
148 model just doesn't apply and offically has specific to say. And on
149 the other hand prescriptively, where the abstraction is being used as
150 an architecture of or scaffolding for the \emph{design of a machine};
151 in that case the engineer's job is to \emph{make} what the abstraction
152 holds be true, and it was VN that introduced the mathematical study of
153 reliable computing from unreliable organisms, showing how mass
154 quantities of extremely cheap and noisy amplifiers could be engineered
155 to represent and manipulate digital information extremely reliably.
158 he structure of thought and
159 computation, as well as
162 Of course, many different abstractions can be imposed on any situation,
163 and the continued dominance of serial algorithmic computing is
164 now uncertain as its scalability dwindles
165 %ERIC: NEED MORE THAN THAT? TRYING TO SAVE A PARAGRAPH LINE..
166 % -- this looks good to me
167 and it yields ground to alternate models such as cache-coherent
168 multicores \cite{free-lunch}, which offer a degree of parallelism
169 while preserving many of the computational and spatiotemporal
170 abstractions of the classic framework.
172 This paper explores the \emph{physical evolutionary computation} (PEC)
173 framework (Figure \ref{fig:pec}), which abstracts reality quite
174 differently than the classical approach. It retains explicit units of
175 space and time, and it marginalizes brittle, finite, serial algorithms in
176 favor of robust, open-ended, parallel computational processes, capable
177 of filling whatever volume of computational space-time one's hardware,
178 energy, and patience can supply.
180 \Comment{
181 is in some significant ways ``closer to
182 reality''---for example, it is a spatial
183 computing~\cite{DAGSTUHLSPATIAL} model explicitly aware of spatial and
184 temporal distances and relationships.
186 ---at the level of For example, although PEC abstracts the
187 details of local computations in a largely von Neumann style, but
188 programmed as an open-ended, event-based computation
190 , developing
191 an abstraction that emphasizes robust operation and indefinite
192 scalability~\cite{HOTOS11}---
194 a framework
195 we call \emph{physical evolutionary computing}
197 . We
199 spatiotemporal
200 emphasizes \emph{robust indefinite scalability}\cite{HOTOS11}, and
201 retains notions of real time and spatial dimensions and
202 distances to do it.
204 Indefinite scalability, (2)
205 Robust design, and (3) P naturally suited to evolutionary computation,
206 and that has the potential to scale vastly beyond any serial machine.
208 , and
209 introduce a new computational abstraction organizational paradigm for physical
210 evolutionary computation which embeds every computational event in
211 real space time.
214 By anchoring evolutionary computation firmly in space and time---with
215 many `evolution tiles' spatially interconnected in some geometry, and
216 genetic operations occurring not in a global algorithmic lockstep, but
217 independently triggered by hardware timers and arriving local
218 stimuli---we obtain a naturally distributed system that is extremely
219 scalable, without any \emph{a priori} edges or `privileged points',
220 and so inherently robust that, basically, the system can't \emph{not}
221 evolve.
223 \begin{figure*}[htb!]
224 \centering
225 \includegraphics[width=\textwidth]{figures/overview.pdf}
226 \caption{Physical Evolutionary Computation. Prototype overview:
227 Hardware and software in physical space, mapped to sample fitness
228 function in problem space. See text for details.}
229 \label{fig:pec}
230 \end{figure*}
232 This paper presents our initial experiences with a prototype PEC
233 system. Section \ref{sec:pec} motivates and presents the design we
234 have developed. Six sample tasks illustrate the system behavior in
235 Section \ref{sec:pec-demos}. Section \ref{sec:data} provides results
236 and analysis of the performance of the system, and a few anecdotes of
237 some ways in which this system surprised our assumptions drawn from
238 traditional computation. Finally we discuss the application of our
239 findings to alternate hardware systems and problem domains, and review
240 the implications of this model of computation in section
241 \ref{sec:discussion}.
243 \section{Physical Evolutionary\\ Computation}
244 \label{sec:pec}
246 \subsection{Parallel Evolutionary Computation}
247 \label{sec:ec}
249 \noindent
250 \emph{Evolutionary Computation} (EC) is a domain independent
251 stochastic search technique modeled after the biological process of
252 evolution. EC is \emph{scalable} in the population size and number of
253 generations, and famously \emph{embarrassingly parallel}
254 \cite{parallel-gp} in that multiple individuals can generally be
255 evaluated simultaneously on multiple processors, and many researchers
256 have explored such approaches~\cite[e.g.]{subpop,beowulf,stender}.
258 However, perhaps due to their derivations from serial designs, even
259 parallel EC's are typically organized so that their aggregate
260 computation is fully equivalent to a single serial execution path.
261 Such rigid global control can provide the cardinal benefit of
262 repeatability, but it is of course uncharacteristic of real
263 biological systems (and non-trivial real-world systems generally), and
264 it limits the ultimate system scalability by requiring global
265 synchronization points, typically at least once per generation.
267 In the PEC framework, we prioritize the goal of \emph{robust
268 indefinite scalability} over the goal of maintaining a
269 serial-equivalent computational path, so we adopt a design goal of
270 eliminating as far as possible all `privileged points' in space (e.g.,
271 root nodes, dependence on edges or corners) and time (e.g., sequential
272 phases, synchronization points, global clocks). Here we describe our
273 prototype PEC system including hardware evolutionary tiles and the PEC
274 process they support.
276 \subsection{Evolutionary Tiles}
277 \label{sec:ixm}
279 \noindent
280 The hardware layer of a PEC system is composed of a fungible
281 collection of interconnected \emph{evolutionary tiles}, whose quantity
282 and configuration may change during the course of a computation. A
283 group of connected tiles is shown in Figure \ref{fig:ixm}.
285 \begin{figure}[h]
286 \centering
287 \includegraphics[width=0.4\textwidth]{figures/group-crop.png}
288 \caption{37 Evolutionary Tiles. \normalfont With external
289 power connections \emph{left} and an external data connection \emph{top}.}
290 \label{fig:ixm}
291 \end{figure}
293 As part of a research effort in Robust Physical Computation, hardware
294 and support software has been developed for a prototype tilable
295 computer that has been brought to market under the name
296 \emph{Illuminato X Machina} (IXM) \cite{LIQUIDWARE}. The IXM is a
297 self-contained traditional Von Neumann machine with a single
298 processor, a modicum of RAM and persistent memory, and additional
299 hardware such as timers that can be used to trigger computation at
300 specific intervals (details in Figure \ref{fig:pec}). Each of the
301 tile's four edges holds a connector capable of sharing both
302 power and/or information with either a traditional computer or power
303 supply, or more frequently, with a neighboring tile. The support
304 software defines several basic abstractions including a simple but
305 powerful packet format, as well as managing the hardware to perform
306 interrupt-based asynchronous communications via all four tile edges
307 simultaneously. Although the PEC process is certainly not limited to
308 specifically this hardware, all the demonstrations shown in this paper
309 were run on groups of IXM tiles.
311 \Comment{ % save for later
312 \subsection{Computational Space-Time}
313 \label{sec:space-time}
315 \noindent
316 A connected \emph{group} of tiles defines a discrete 2-dimensional
317 space. Each tile in this space performs calculations initiated by
318 hardware timers, resulting in a discrete 3 dimensional grid of
319 computational space-time.
321 Every event in this computational space will fill a 1 dimensional
322 rectangle with one of two possible orientations. Either the event is
323 extended in time on a single tile, or the event extends between two
324 adjacent tiles in a single instant. These two orientations
325 correspond to on-tile calculation and to intertile communication
326 events respectively.
327 % The above relies on the two simplifying
328 % assumptions that clocks are synchronized between tiles, and that
329 % communication between tiles is instantaneous.
331 \Comment{ % some of this can be used below, but not here
332 \begin{description}
333 \item[Spatial Localization] Each tile in the grid houses a subset of
334 the total population. In all variations discussed herein the
335 population size is kept constant and each tile holds an equal
336 fraction of the total population however neither of these need
337 necessarily be the case. On-tile sub-populations are altered
338 through local evolutionary events, and through communication with
339 immediately neighboring tiles -- \emph{Action at a distance} is not
340 allowed. Each tile is aware of its relative position in the grid,
341 this information may influence the portion of the problem domain
342 tackled by the tile. In this way it is possible for the physical
343 dimensions of the 2 dimensional tile arrangement to be leveraged in
344 structuring EC.
345 \item[Temporal Localization] Temporal localization of computation is
346 achieved through the use of hardware timers. Each IXM tile is
347 equipped with sixteen hardware timers. Each timer can be associated
348 with some arbitrary computation, and then scheduled to trigger some
349 number of ms in the future. The time of execution as determined by
350 the local on-tile timer is passed to the associated computation as
351 a parameter. After execution has completed, control is passed back
352 to the CPU. It is customary to implement reoccurring actions at set
353 frequencies by having the final act of the computation associated
354 with some timer to be the re-scheduling of the timer.
355 \end{description}
358 Unlike in traditional algorithmic models of computation, no continuous
359 series of event may span the entire group of tiles or the entire
360 time-span of computation. Rather global computation emerges
361 % scared `emerge' may carry too much baggage, but is seems appropriate
362 from the \emph{communication} between many individually initiated
363 local \emph{calculations}, the nature and relative frequencies of
364 which may be controlled while the exact ordering of which is not
365 specifiable.
367 \subsubsection{Calculation}
369 \noindent
370 All computational operations take place at specific points in
371 space-time. The tile on which an operation occurs determines the
372 spatial coordinates in the 2 dimensional grid of the \emph{group}.
373 The temporal location of a calculation is determined by the
374 cause of the calculation. There are four possible causes of a
375 calculation.
377 On \emph{powerup} a tile will run a series of one-time actions.
378 These may be used to initiate hardware times, configure reflexes, and
379 situate the tile with its neighbors. Once this routine completes the
380 tile drops into an infinite \emph{maintenance loop}, similar to the
381 loop of an operating system. This loop is used exclusively for
382 performing regular hardware maintenance tasks and is not used by the
383 PEC process.
385 The majority of calculations occur as \emph{timed operations} or as
386 \emph{reflexive} responses to external stimuli. Using hardware timers,
387 calculations may be initiated at precise frequencies specified in
388 milliseconds. These calculations are short lived and will generally
389 result in a communication event. \emph{Reflexive} calculations
390 respond to these events and, like timed calculations, reflexive
391 calculations effect group wide computation through the initiation of
392 further communication events.
394 \subsubsection{Communication}
396 \noindent
397 All communication of information in a group is either spatial or
398 temporal. \emph{Spatial} communication between tiles takes the form
399 of lines of text up to 250 bytes long. The receiving tile dispatches
400 on the first byte of such a message, initiating the associated reflex.
401 The message string is passed to the reflex as an argument.
402 \emph{Temporal} communications are transferred through on-tile memory.
403 Assuming discrete units of time, and instantaneous message passing,
404 the entire state of a group between any two moments is exactly the
405 state of the tiles comprising the group.
408 \subsection{The PEC Processing Mechanism}
409 \label{sec:ea}
411 \noindent
412 We present the PEC process in three sections: the processing local to
413 a single hardware tiles and its immediate neighbors, the mechanisms
414 for handling `global' events such as changing the fitness function,
415 and finally housekeeping details. In many cases it will be obvious
416 that other evolutionary computation mechanisms could be substituted
417 for the ones we used without significantly distorting the overall
418 processing structure, but here we discuss only the specific mechanisms
419 we have implemented and tested.
421 \subsubsection{Local Genetic Operators}
422 \label{sec:subpopulation}
424 \noindent
425 Each tile in a PEC system houses a single subpopulation of candidate
426 solutions, so an overall group of tiles evolves using the
427 `island' approach to genetic algorithm
428 parallelism~\cite{demes}. On \emph{power up} the tile
429 subpopulation is initialized with 64 randomly generated individuals,
430 and this subpopulation size is then held constant by all further
431 evolutionary actions.
433 The population serves as both a source and repository for candidate
434 solutions which are accessed and stored through \emph{tournaments} and
435 \emph{incorporation} respectively.
437 \emph{Tournaments} perform selection in the PEC system. In a
438 tournament three individuals are chosen from the population at
439 random, these individuals are then evaluated, their resulting finesses
440 are compared, and the individual with the best fitness is
441 selected. Individuals are only evaluated at the time of selection and
442 their fitness is not stored, so it is possible that a
443 single individual may be evaluated multiple times or not at all. In
444 the presence of a changing problem space the individual's fitness is
445 expected to be valid only at the time of selection.
446 % In the above, could mention that multi-objective EC could be
447 % implemented simply through selecting with different fitness
448 % functions at different frequencies, which seems both practical and
449 % natural -- maybe this is better for the discussion...
451 When new individuals are generated through tournaments and local
452 reproduction, or are received from neighboring tiles, they are
453 \emph{incorporated} into the local population. To maintain a constant
454 population size during such an incorporation, a randomly chosen
455 existing individual is evicted from the population. Incorporation is
456 the only means by which individuals are added to or removed from the
457 population.
458 % Because individuals are randomly selected for removal from the
459 % population it is common for the best individual to be removed from the
460 % population.
462 Subpopulations evolve locally through \emph{mutation} \emph{crossover}
463 and \emph{sharing}, each of which is triggered at a fixed frequency by
464 the hardware clock---although processing pile-ups can cause small
465 delays.
467 The \emph{mutation} operation, occurring twenty times a second ($f_m = 20Hz$)
468 in our experiments, begins by tournament-selecting an individual to
469 copy from the population. Random points along the individual's
470 genotype are chosen---one point per 16 symbols of genotype length, but
471 no less than one point---and then each point is either: Replaced with
472 a randomly chosen value from the underlying symbol set, with a 50\%
473 chance; deleted from the individual, with a 25\% chance; or has a
474 randomly chosen symbol inserted into the individual immediately
475 preceding the point, with a 25\% chance. The resulting individual is
476 then incorporated into the population.
478 In a \emph{crossover} operation, which occurs ten times a second ($f_m =
479 10Hz$), two individuals are selected via independent tournaments and
480 copied from the population. A random point is chosen independently
481 along each genotype, and single point crossover is used to create a
482 new individual, which is then incorporated into the population.
484 Finally, individuals are also \emph{shared} between tiles, at a rate
485 of once every ten seconds ($f_s = 0.1Hz$). When sharing, an
486 individual is tournament-selected and copied into messages sent to
487 every adjacent tile. Upon arrival at a neighboring tile, a sharing
488 message triggers a reflex action that incorporates the shared
489 individual into the recipient's subpopulation. Sharing propagates
490 individual solutions between tiles (see section~\ref{sec:spread},
491 below, for more); note that each successful act of sharing also
492 amounts to up to a fourfold reproduction within the aggregate global
493 population---and that individuals and subpopulations housed in more
494 densely-connected tiles have an advantage in that regard.
496 \subsubsection{Global Coordination}
497 \label{sec:global-coordination}
499 % These include the relative
500 % coordinates assigned to each tile in the group, the EC parameters in
501 % use by the group, as well as the problem space and the scheme by which
502 % it is mapped into the computational space.
504 \noindent
505 Some aspects of a PEC computation, inevitably, need to be coordinated
506 globally across an entire group of tiles, and various \emph{control
507 messages} are defined for this purpose, containing information such as
508 the problem specification (Section \ref{sec:problem-sets}), the scheme
509 for mapping between problem space and computational space (Section
510 \ref{sec:schemes}), and the frequencies of the PEC genetic operators
511 discussed above. Parameter-setting messages may be global in
512 intent---in which case they are propagated throughout the group---or
513 may be sent from one tile to an immediate neighbor in response to a
514 direct request, which occurs when a tile has just rebooted or been
515 added to the group.
517 For purposes of problem space mapping and data collection, each tile
518 in the group also maintains a 2D coordinate specifying its position in
519 the two dimensional spatial configuration of the group, with the
520 origin specified---in our experiments so far---by the location of the
521 external data connection. These coordinates are calculated and
522 maintained using control messages. A reflex action triggered by
523 coordinate message arrival updates the local state to reflect the new
524 coordinates, and forwards appropriately-transformed coordinates to
525 each of its neighbors, using a message serial number to avoid looping.
527 \subsubsection{Housekeeping and Maintenance}
528 \label{sec:housekeeping-and-maintenance}
530 \noindent
531 In addition to the evolutionary operations described previously, there
532 are several maintenance tasks proceeding concurrently, which we touch
533 on briefly here for completeness and intuition.
535 \begin{description}
536 \item[Serial port management] The low-level software frequently sends
537 ``Are you (still) there?'' messages out all serial ports, to allow
538 prompt detection of tile connections and disconnections.
539 \item[Problem data update] If a (partially or completely) new problem
540 data matrix is injected into the group, it propagates from tile to
541 tile incrementally and automatically as a background process.
542 Evolution continues during this process except during
543 erasure of flash sectors which requires a tile reboot.
544 \item[System software update] If a new version of the PEC software
545 itself is made available to the group, it will propagate tile
546 to tile until the whole group is updated, again while evolution
547 continues on the group as a whole.
548 \end{description}
550 This completes the high-level description of the PEC process, though
551 there are a number of details yet to present, such as the mechanism
552 whereby subpopulations determine what portion of a function space they
553 will optimize; these mechanisms are explained in the next section
554 where their application is demonstrated.
556 \section{PEC Demonstrations}
557 \label{sec:pec-demos}
559 \noindent
560 The application of the PEC process is explored through a number of
561 demonstrations. Various fitness functions are satisfied using a variety of
562 group geometries and problem space to computational space
563 mapping schemes.
565 Though PEC scales to any number of tiles, all demonstrations here are performed on a group of 16 tiles
566 connected to a external power supply, and to an external computer
567 (connection shown in Figure \ref{fig:group-shapes}). The external
568 machine is used to collect data from the group, and to send periodic
569 control messages to the group to assert the desired problem and
570 settings of the PEC parameters.
571 % coordinating the execution of multiple
572 %runs covering various combinations of problem set, geometry and
573 %mapping scheme.
575 \subsection{Setup}
576 \subsubsection{Fitness Functions}
577 \label{sec:problem-sets}
579 \noindent
580 Experiments are run against six fitness functions, consisting of
581 matching a set
582 of points in three dimensions. Evolved individual candidate solutions
583 take the form of algebraic expressions over two variables represented
584 as character strings in reverse polish notation (RPN). Individuals
585 are assigned a fitness based on their ability to match
586 the surface of the fitness function. Two of the dimensions of the
587 fitness function are aligned with the two spatial
588 dimensions in which the group of tiles are configured.
590 \begin{figure}[htb]
591 \centering
592 \subfigure[$\frac{(x-y)}{1}$]
593 {\includegraphics{figures/poly0.pdf}\label{fig:poly0}}
594 \subfigure[$\frac{(x-y) \times (x+y)}{2}$]
595 {\includegraphics{figures/poly1.pdf}\label{fig:poly1}}
596 \subfigure[$\frac{(x-y) \times (x+y) \times (x-y)}{3}$]
597 {\includegraphics{figures/poly2.pdf}\label{fig:poly2}}
598 \subfigure[$\frac{(x-y) \times (x+y) \times (x-y) \times (x+y)}{4}$]
599 {\includegraphics{figures/poly3.pdf}\label{fig:poly3}}
600 \subfigure[$10\times\sin{x}+10\times\sin{y}$]
601 {\includegraphics{figures/poly4.pdf}\label{fig:poly4}}
602 \subfigure[Montana gravity data]
603 {\includegraphics{figures/gravity.pdf}\label{fig:grav}}
604 \caption{Problem sets}
605 \label{fig:problems}
606 \end{figure}
608 The six target sets are show in figure \ref{fig:problems}. Four
609 are polynomial equations of increasing degree and
610 complexity which can be exactly matched by RPN individuals. The fifth
611 is a trigonometric equation which can not be exactly matched by the
612 RPN individuals, and the final consists of gravity anomaly data
613 collected from the state of Montana \cite{montata-grav}.
615 \subsubsection{Geometric Configurations}
616 \label{sec:configurations}
618 \noindent
619 Tiles are assembled into groups using the geometric configurations
620 shown in Figure \ref{fig:group-shapes}. The geometry can affect both
621 the portion of the problem space that is sampled by a group, as well
622 as the communication pattern between the group tiles---which has been
623 shown to impact the performance of distributed genetic
624 algorithms~\cite{stender}. For example, due to its extension the line
625 configuration (Figure \ref{fig:line}) will sample more extreme values
626 of the problem space (under most mappings, see
627 section~\ref{sec:schemes} below), and, because each tile has at most
628 two neighbors, it will have more restricted intertile communication
629 which may be beneficial in some circumstances.
631 \begin{figure}[htb]
632 \centering
633 \subfigure[Grid]{
634 \includegraphics[width=0.1\textwidth]{figures/grid.pdf}
635 \label{fig:grid}}
636 \subfigure[Bone]{
637 \includegraphics[width=0.2\textwidth]{figures/bone.pdf}
638 \label{fig:bone}}\\
639 \subfigure[Line]{
640 \includegraphics[width=0.4\textwidth]{figures/line.pdf}
641 \label{fig:line}}
642 \caption{Group Configurations}
643 \label{fig:group-shapes}
644 \end{figure}
646 \subsubsection{Mapping Schemes}
647 \label{sec:schemes}
649 \noindent
650 The PEC practitioner decides how to align the dimensions of the
651 hardware and problem spaces. This work demonstrates the mapping
652 schemes shown in Figure \ref{fig:mapping}.
654 \begin{figure}[htb]
655 \centering
656 \subfigure[Global Same]{
657 \includegraphics[width=0.2\textwidth]{figures/global-same.pdf}
658 \label{fig:global-same}
660 \subfigure[Local Disjoint]{
661 \includegraphics[width=0.2\textwidth]{figures/local-disjoint.pdf}
662 \label{fig:local-disjoint}
664 \subfigure[Global Offset]{
665 \includegraphics[width=0.2\textwidth]{figures/global-offset.pdf}
666 \label{fig:global-offset}
668 \subfigure[Local Overlap]{
669 \includegraphics[width=0.2\textwidth]{figures/local-overlap.pdf}
670 \label{fig:local-overlap}
672 \subfigure[Adaptive]{
673 \includegraphics[width=0.2\textwidth]{figures/adaptive.pdf}
674 \label{fig:adaptive}
676 \caption{Schemes \normalfont mapping hardware to problem space.
677 Shown assuming the `Bone' configuration from
678 figure~\ref{fig:group-shapes}.}
680 \label{fig:mapping}
681 \end{figure}
683 \emph{Global Same} (Figure \ref{fig:global-same}) maps each tile to
684 the same portion of the problem space. This scheme is what many
685 non-spatialized parallel ECs use; it is also one natural choice when
686 there is no obvious match between problem and hardware dimensionality.
687 \emph{Local Disjoint} (Figure \ref{fig:local-disjoint}) maps each tile
688 into a non-overlapping equal-sized portion of the problem space,
689 preserving the neighborhood relationships of the computational space.
690 \emph{Global Offset} (Figure \ref{fig:global-offset}) is similar to
691 global same; however the domain of each tile is slightly offset based
692 upon the tile's position in the computational space. \emph{Local
693 Overlap} (Figure \ref{fig:local-overlap}) is like local disjoint,
694 except the domain of each tile is slightly increased causing overlap
695 in the problem space. Finally, the \emph{Adaptive} (Figure
696 \ref{fig:adaptive}) scheme begins with the same mapping as local
697 disjoint. During the course of an adaptive run, tiles share their
698 mean fitness, and based on their comparative
699 performance, tiles increase or decrease the size of their domain in
700 the problem space, such that the better-performing tiles take on
701 larger portions of the problem space.
703 \subsection{Data}
704 \label{sec:data}
706 \Comment{ %% Not needed -- just a rehashing of the reification stuff
707 \subsection{Metrics}
708 \label{sec:metrics}
710 Both the data learned by the evolutionary algorithm and the space time
711 in which the physical hardware embeds the computation composing the
712 evolutionary algorithm can be related using real units. In terms of
713 kilometers between points of latitude and longitude, centimeters
714 between on-tile CPUs and ms between computational events. This
715 allows the assignment of units and real values to metrics of algorithm
716 performance.
718 For all experiments run we will report.
719 \begin{description}
720 \item[scale] Each tile maps directly from a subset of the hardware
721 space measured in centimeters to a subset of the data space measured
722 in kilometers resulting in a direct scale factor.
723 \item[innovation velocity] The velocity in $\frac{cm}{ms}$ with
724 which candidate solutions move through the physical computational space
725 as well as the velocity in $\frac{kilometers}{ms}$ with which
726 candidate solutions move through data space.
727 \item[error] At every point in time the error can be measures as the
728 integral of error over some subset of the problem domain. The
729 change of error over time will be a useful comparative measure
730 between schemes and physical layouts.
731 \end{description}
734 \subsubsection{Group-wide error by scheme}
735 \label{sec:group-wide-error-by-scheme}
737 \noindent
738 Using the grid configuration, 10 runs were performed for each
739 combination of the first 5 problem sets, and the 5 mapping schemes.
740 The results are shown in Figure \ref{fig:poly-err-over-time}.
742 \begin{figure*}[htb]
743 \centering
744 \subfigure[$x - y$]
745 {\includegraphics[width=0.325\textwidth]{figures/error-over-time-goal-0.pdf}
746 \label{fig:err-prob0}}
747 \subfigure[$\frac{(x - y) \times (x + y)}{2}$]
748 {\includegraphics[width=0.325\textwidth]{figures/error-over-time-goal-1.pdf}}
749 \subfigure[$\frac{(x-y) \times (x+y) \times (x-y)}{3}$]
750 {\includegraphics[width=0.325\textwidth]{figures/error-over-time-goal-2.pdf}}\\
751 \subfigure[$\frac{(x - y)^{2} \times (x + y)^{2}}{4}$]
752 {\includegraphics[width=0.325\textwidth]{figures/error-over-time-goal-3.pdf}}
753 \subfigure{
754 \includegraphics[width=0.325\textwidth]{figures/error-over-time-goal-key.pdf}}
755 \subfigure[$10\sin{x} + 10\sin{y}$]
756 {\includegraphics[width=0.325\textwidth]{figures/error-over-time-goal-4.pdf}
757 \label{fig:err-prob4}}
758 \caption{Error by mapping scheme over polynomial fitness functions}
759 \Comment{
760 The average of 10 runs is shown for each combination of goal and
761 scheme. Runs were terminated when either the perfect solution is
762 found and propagates to all tiles, or after 1 hour of run time. For
763 each second of each run, the best guess of each tile is collected and
764 parsed into a function, these are combined into a single piecewise
765 function representing the entire group's ``best guess'' at that point
766 in time. The integral of the difference between the ``best guess''
767 and the goal function is then calculated to find the total error on
768 the grid at that second. For each total second of run time the
769 average total error over 10 runs is shown with completed runs averaged
770 in as 0
772 \label{fig:poly-err-over-time}
773 \end{figure*}
775 Performance by scheme is consistent across all five problem sets with
776 the three `local' schemes (\emph{local disjoint}, \emph{local overlap}
777 and \emph{adaptive}) resulting in less error than the two `global'
778 schemes (\emph{global same} and \emph{global offset}). Against all
779 but the simplest problem set (Figure \ref{fig:err-prob0}) the
780 \emph{local overlap} scheme outperforms all others, showing consistent
781 improvement over the course of the run even against the most difficult
782 problem set (Figure \ref{fig:err-prob4}) in which many schemes show no
783 improvement after the first one thousand seconds of run time.
785 \Comment{
786 \subsubsection{Time to solution}
787 \label{sec:time-to-solution}
789 In addition to the total error over time, we can look at the time
790 taken to find the optimal solution. While the \emph{local} schemes
791 perform better in terms of group-wide error it seems that the
792 \emph{global} scheme perform better in terms of likelihood of finding
793 the global optimal solution as shown in Table
794 \ref{tab:chance-by-scheme}, however when a solution was found the
795 local schemes generally found their solution in less time than the
796 global schemes as shown in Table \ref{tab:speed-by-scheme}.
798 \begin{table}[htb]
799 \centering
800 \subtable[Chance by scheme]{
801 \centering
802 \begin{tabular}{l|l}
803 global same & 70\% \\
804 local disjoint & 13.33\% \\
805 global offset & 30\% \\
806 local overlap & 13.33\% \\
807 adaptive & 20\% \\
808 \end{tabular}
809 \label{tab:chance-by-scheme}
811 \subtable[Time by scheme]{
812 \centering
813 \begin{tabular}{l|l}
814 global same & 1466.7142 \\
815 local disjoint & 2363.75 \\
816 global offset & 1565.5555 \\
817 local overlap & 2680.25 \\
818 adaptive & 2131.6667 \\
819 \end{tabular}
820 \label{tab:speed-by-scheme}
822 \subtable[Chance by shape]{
823 \centering
824 \hspace{0.25cm}
825 \begin{tabular}{l|l}
826 grid & 83.33\% \\
827 line & 16.67\% \\
828 bone & 46.67\% \\
829 \end{tabular}
830 \hspace{0.25cm}
831 \label{tab:chance-by-shape}
833 \subtable[Time by shape]{
834 \centering
835 \hspace{0.25cm}
836 \begin{tabular}{l|l}
837 grid & 1861.48 \\
838 line & 1535.6 \\
839 bone & 1688.7142 \\
840 \end{tabular}
841 \hspace{0.25cm}
842 \label{tab:speed-by-shape}
844 \caption{Exact matching of the first two goals.
845 \normalfont The percent chance of finding the exact solution and the
846 average time required to find a solution when found in seconds are
847 give broken out by group shape and by scheme.}
848 \label{fig:exact-solution}
849 \end{table}
851 It is also possible to break out the percent chance of finding the
852 optimal solution, and the speed with which such solutions are found as
853 a function of the shape of the group as shown in Tables
854 \ref{tab:chance-by-shape} and \ref{tab:speed-by-shape}. Comparisons
855 between different shapes are less clear given that the shape of the
856 group partially determines the problem.
859 \subsubsection{Group wide error by robustness}
860 \label{sec:group-error-by-robustness}
862 \noindent
863 To explore the robustness of PEC in the face of unreliable hardware,
864 we simulated hardware errors by programming the tiles to reboot
865 probabilistically with an experimenter-specified mean time to failure
866 per tile ($MTTF_{tile}$). We evaluated several levels of hardware
867 instability ranging from ${MTTF}_{tile} = 1000\mathrm{~sec}$ to
868 ${MTTF}_{tile} = 50\mathrm{~sec}$, which---on the 16 tile grid in
869 which these experiments were run---results in a failure somewhere in
870 the grid ranging from about once per a minute, to about once every
871 three seconds. We found that all trials with ${MTTF}_{tile} <
872 5\mathrm{~sec}$ failed in the sense that the group lost its programmed
873 PEC parameters and reverted to default settings (as described in
874 Section \ref{sec:lord-of-the-flies}). The results are shown in Figure
875 \ref{fig:error-by-robust}.
877 \begin{figure}[htb]
878 \centering
879 \subfigure[Best Performers by Robustness]{
880 \includegraphics[width=0.45\textwidth]{figures/gravity-robust-bins.pdf}
882 \subfigure[Error by Robustness]{
883 \includegraphics[width=0.45\textwidth]{figures/robustness-over-gravity.pdf}}
884 \caption{Error by robustness over gravity data}
885 \label{fig:error-by-robust}
886 \end{figure}
888 As shown, more robust hardware is not generally preferable to unstable
889 hardware. In the first 50 seconds the best performing reboot rate is
890 once every 50 seconds per tile, from 50 seconds to 100 seconds the
891 best performing hardware reboots every 100 seconds per tile, from 100
892 to 250 seconds a rate of once every 500 seconds is preferable, and in
893 the final 1000 seconds the perfectly stable hardware was the most
894 consistently successful performer.
896 To the PEC practitioner, hardware robustness becomes just another knob which may
897 be tuned with other PEC parameters to adjust the exploration vs. exploitation
898 trade off of the evolutionary computation. This is understandable given
899 that on reboot the local subpopulation is re-populated with randomly
900 generated individuals. Also, while individuals are lost on reboots, it
901 is likely that fit individuals will spread to multiple tiles
902 increasing their resilience to such loss.
904 \subsubsection{Spread of solutions through the group}
905 \label{sec:spread}
907 \noindent
908 Figure \ref{fig:grid-secs} shows six snapshots of a successful run
909 against the second problem \label{fig:poly1} using the \emph{local disjoint}
910 scheme \ref{fig:local-disjoint}. The exact solution first appears
911 roughly 1900 seconds into the run \ref{fig:grid-1900-sec}, this
912 solution is then immediately lost \ref{fig:grid-1910-sec}, and then
913 quickly recovered \ref{fig:grid-2000-sec} after which it overtakes the
914 entire group \ref{fig:grid-2055-sec}.
916 \begin{figure}[htb]
917 \centering
918 \subfigure[1 second]
919 {\includegraphics[width=0.225\textwidth]{figures/grid-sec-1.pdf}
920 \label{fig:grid-1-sec}}
921 \subfigure[900 seconds]
922 {\includegraphics[width=0.225\textwidth]{figures/grid-sec-900.pdf}
923 \label{fig:grid-900-sec}}\\
924 \subfigure[1900 seconds]
925 {\includegraphics[width=0.225\textwidth]{figures/grid-sec-1900.pdf}
926 \label{fig:grid-1900-sec}}
927 \subfigure[1910 seconds]
928 {\includegraphics[width=0.225\textwidth]{figures/grid-sec-1910.pdf}
929 \label{fig:grid-1910-sec}}\\
930 % \subfigure[1950 seconds]
931 % {\includegraphics[width=0.225\textwidth]{figures/grid-sec-1950.pdf}
932 % \label{fig:grid-1950-sec}}\\
933 \subfigure[2000 seconds]
934 {\includegraphics[width=0.225\textwidth]{figures/grid-sec-2000.pdf}
935 \label{fig:grid-2000-sec}}
936 \subfigure[2055 seconds]
937 {\includegraphics[width=0.225\textwidth]{figures/grid-sec-2055.pdf}
938 \label{fig:grid-2055-sec}}
939 \caption{Spread of the exact solution \normalfont video of this run
940 is available at \texttt{--anonymized--}}
941 % http://cs.unm.edu/~eschulte/research/pec/runs/grid.1.1.4.mp4
942 \label{fig:grid-secs}
943 \end{figure}
945 %\subsection{PEC in Practice: Life on the run}
946 %\subsection{PEC in Practice: Evolution in action}
947 \subsection{Life with PEC}
948 \label{sec:anecdotes}
950 \noindent
951 With their go-go operation and wild-and-woolly parallelism, PEC
952 systems are much like natural systems, and for just that reason they
953 violate typical assumptions of how a computer ``should work.'' Here
954 we offer two brief tales of mistakes we made during development,
955 illustrating some of the perils of carrying serial and synchronous
956 assumptions uncritically into this new context.
958 \subsubsection{Instant Winners}
959 \label{sec:leaking-solutions}
961 \noindent
962 All the data we have presented is gathered over repeated runs in each
963 experimental condition, and performing those separate runs was
964 accomplished using a controlling script running on the external
965 computer, which sent periodic control messages to the connected tile
966 group to begin and end runs and to change PEC parameters.
968 Since it is not possible to communicate with all tiles
969 instantaneously, messages intended for global distribution pass
970 through a group of tiles somewhat like ripples spreading on a pond,
971 and during that process such messages race against all other messages
972 moving in the system. For example, when a `global reset message wave'
973 reaches some tile and causes it to reset, there might still be an
974 in-flight sharing message inbound to that tile from a `downwave'
975 neighbor, which can recreate an evolved individual and the PEC
976 parameters that the global reset was attempting to erase.
978 During early data collection we found that sometimes fit individuals
979 were surviving the `official' end of one experiment and then
980 immediately dominating the next experiment, looking like
981 \emph{extremely rapid} evolution! Now, however, the experiment driver script
982 on the external machine is designed to recheck the state of tiles
983 after a parameter change and to repeatedly ``flood'' the group until
984 all tiles are on board---but without global privileged points in
985 computational space-time there is simply no 100\% reliable hook by
986 which a PEC practitioner may take hold of computation.
988 A robust solution more in the PEC spirit, if one cared more about
989 results than statistical independence, would be to abandon any
990 pretense of dividing time into discrete `experiments' and instead just
991 periodically redrive the currently desired problem and parameters into
992 the grid, whether it has changed or not. Or on the other hand, if
993 independence is \emph{really} critical, then falling back to the
994 `physically privileged point' in PEC---i.e., power-cycling the entire
995 grid, with all the delays and inconvenience that implies---is the way
996 to go.
998 %% In the above example there is no obvious way to
999 %% synchronize the expulsion of previously learned solutions. More
1000 %% generally enforcing consensus between the tiles on items like the
1001 %% current problem to be solved or the current scheme by which to
1002 %% organize evolution requires great care.
1004 \subsubsection{Lord of the Flies}
1005 \label{sec:lord-of-the-flies}
1007 \noindent
1008 When a tile joins a working group, either due to it rebooting or being
1009 a hardware addition, it must learn the goal
1010 and parameters of the group. Immediately upon powering up a tile reads its
1011 own ``inherent parameters'' from persistent memory and begins evolving
1012 using those default settings. It then attempts to acquire the
1013 ``cultural knowledge'' of the goal and scheme in use by its neighbors
1014 in the group
1016 Early versions of our PEC software failed to distinguish
1017 `read from persistent memory' vs `learned from neighbors' parameter
1018 sets. As a result, it could happen that a pair of
1019 adjacent tiles might both reboot in a narrow window of time, then
1020 share their inherent parameters with each other---each convincing the
1021 other that their inherent `state of nature' settings were actually the
1022 `culturally sanctioned' settings of the group as a whole. Small
1023 subgroups formed in this way proved persistent, and, in some cases,
1024 grew to overtake an entire group.
1026 We addressed this by adding a \emph{provenance bit} that tracks the
1027 source of a parameter set and allows a tile to ensure it does not
1028 falsely advertise its inherent parameters as cultural. Still,
1029 however, we observed that in sparsely connected groups
1030 (e.g. configuration \ref{fig:line}), when combined with a high
1031 frequency of hardware reboots, it is possible for isolated subgroups
1032 to lose the sanctioned parameters of the group and to revert to
1033 evolving under their inherent parameters. Similarly, as tiles reboot,
1034 for whatever reason, they temporarily ``drop out'' of the group and
1035 stop passing messages, which can cause the network communication graph
1036 to become temporarily disconnected, exacerbating the global
1037 coordination issues mentioned earlier.
1039 \section{Discussion}
1040 \label{sec:discussion}
1042 \noindent
1043 PEC's inherent scalability stands in stark contrast to the ultimate
1044 unscalability of serial EC strategies. On the other hand, however,
1045 tasks like pausing, restarting, or exactly repeating a
1046 computation---trivial in serial models---are decidedly non-trivial, or
1047 even impossible, with PEC. PEC tiles generate new solutions
1048 spontaneously and steadily, a process that is necessarily destructive
1049 as well as creative;
1050 lacking a synchronous global clock it isn't even easy to
1051 \emph{define}, let alone capture, a consistent global snapshot of an
1052 entire group. Any communications must propagate through the group, at
1053 some finite velocity, while the group as a whole continues to evolve.
1054 Similarly it is impossible to write a complete state to a group of
1055 tiles as the state will change as it is being written.
1057 On the other hand, a potential benefit of the focus on robust
1058 indefinite scalability is that, lacking any requirements for rigid
1059 global control, PEC carries far fewer design commitments than many
1060 parallel EC approaches, making it easier for PEC to `play nice' within
1061 a larger computational system. Give a PEC grid power and a task, and
1062 it gets right to work without a lot of fuss; if the solutions coming
1063 back aren't good enough fast enough, it is easy to try plugging in more
1064 grid: robust indefinite scalability means the new hardware will
1065 automatically be recruited by the group and increase its computational
1066 power.
1068 Indeed, so far our sense has been that those items which proved most
1069 difficult with PEC were often tasks of coordination and measurement
1070 desirable for researching \emph{PEC itself}, while PEC's comparative
1071 strengths---such as non-stop and real-time operation and extreme
1072 robustness---are more likely to benefit `embedded PEC practitioners'
1073 deploying evolutionary computation within a larger system design.
1075 \subsection{Computational Space-Time}
1076 \label{sec:platforms}
1078 \noindent
1079 The prototype hardware layer used in this effort continues a long
1080 history of implementing EC on distributed hardware systems
1081 \cite{beowulf, poli:1999:22par, langdon:2005:metas}. This particular
1082 hardware system is unique in the composability of hardware tiles,
1083 which by the nature of their physical connections ensure both a
1084 spatial location of each calculation, and a locality of each
1085 communication.
1087 The discrete 2 dimensional space created by a group of tiles,
1088 augmented with the temporal dimension defined by tile's hardware
1089 timers, results in a discrete 3 dimensional grid of computational
1090 space-time. Every event in this space-time will fill a 1 dimensional
1091 rectangle with one of two possible orientations. Either the event is
1092 extended in time on a single tile, or the event extends between two
1093 adjacent tiles in a single instant.
1095 Developing software for such computational environments is a difficult
1096 task to which classical algorithmic techniques are not well suited.
1097 However, as computer engineers pack hardware into successively smaller
1098 pockets of space and time it becomes necessarily for computer
1099 scientists to make concessions to the basic rules of the physical
1100 world---spatial orientation, local causality and decreased
1101 reliability. As this work indicates, EC is well suited to such
1102 constraints and may even benefit from the imposed structure.
1104 \subsection{Reification}
1105 \label{sec:reification}
1107 \noindent
1108 The rigid mapping between hardware elements and points in
1109 computational space allow for novel computational metrics. Extensions
1110 in the 3 dimensional grid of computational space-time may be measured
1111 in \emph{real} units. Each tile measures 4.75 centimeters on a side,
1112 and hardware timers are scheduled with millisecond granularity. Due
1113 to this reification of computational metrics, real ratios exist
1114 between measurements in the computational and problem spaces---like
1115 the legend on a map, each centimeter of computational space will
1116 represent a real distance in the problem space. Consequently, real
1117 valued computational metrics such as the maximum rate of spread of a
1118 fit individual through a group (or \emph{innovation velocity}) may be
1119 translated directly into real velocities in e.g., kilometers per hour
1120 in the problem space.
1122 \subsection{Conclusion: Abstract different}
1123 \label{sec:conclusion}
1125 \noindent
1126 In its treatment of space and time, PEC is most aggressively concrete
1127 just where traditional models of computation are most aggressively
1128 abstract. But for all that, PEC still \emph{is} an abstraction,
1129 smoothing over everything from the details of the fitness function and
1130 the specific genome representation and its interpretation, to the size
1131 and geometry of the tile group performing the computation, to the
1132 hardware details of the tile itself. It is just a \emph{different}
1133 abstraction, and, by representing space-as-space and time-as-time, it
1134 is an abstraction that allows studying couplings between the
1135 computational and the physical in a rather direct, and we think rather
1136 refreshing, way.
1138 The separation of levels---such as the disinction between hardware and
1139 software---is at once one of the greatest successes of computer
1140 science, engineering, and the industry, and also a cause of many of
1141 its difficulties.
1143 The Microsoft doesn't know, and doesn't want to know, what the Intel
1144 is doing.
1146 So everybody just agreed to keep making, and using, ever bigger VNs.
1148 But that's ending now, and even if it wasn't, there's increasing
1149 recognition that maybe its possible for a VN to be too big. Like if
1150 biology had scaled the way the von Neumann machine has, something the
1151 size of a person would be one gigantic amoeba.
1153 With the technical knowledge, manufacturing prowess, and cost
1154 reduction gained from decades of VN development combined with
1155 multimillion unit blockbusters such as the cellphone, an new
1156 opportunity is emerging for researchers to investigate substantially
1157 novel computational architectures---reslicing across the traditional
1158 lines of hardware and software, using masses of cheap VN's as a
1159 flexible computational `clay', rather than a scalable goal in itself.
1160 In the evolutionary computing community, as PEC illustrates, we can
1161 push our methods down closer to the hardware, and look towards full
1162 systems with embedded adaptive components, rather than continuing to
1163 strand EC in the isolated environments of the standalone research
1164 tool.
1166 \Comment{
1167 As engineers squeeze computation into ever smaller pockets of space
1168 and time % through further embedding into the physical world
1169 it is
1170 necessary for computational space to make concessions to the basic
1171 rules of the physical world---spatial orientations, local causality
1172 and decreased reliability. As this work indicates, EC is well suited
1173 to such constraints and may even benefit from the imposed structure.
1174 It is our hope to encourage EC practitioners to embrace such
1175 \emph{physical} computational spaces as a viable and inevitable
1176 alternative to traditional \emph{abstract} models of computation.
1179 \bibliographystyle{apalike}
1180 \bibliography{physical-evolutionary-computation}
1182 \end{document}