Algorithmic Global Time in GUNK through Pulse Synchronization
and its Application to Interprocessor Message Handling

aka. Firefly / Circle Demo
by Wes Beebee

Imagine thousands of fireflies flashing together in the middle of the night. How does this happen? Renato E. Mirollo and Steven H. Strogatz addressed the problem in "Synchronization of pulse-coupled biological oscillators." Their model relies on a monotonically increasing and concave down function which represents the increasing sensitivity of the fireflies to a flash by any other firefly (coupled all-to-all) during the course of one period.

When the fireflies are listening too closely to each other, they synchronize but flash aperiodically. When the fireflies don't spend enough time listening to each other, they flash periodically, but don't synchronize.

Small domains may synchronize, but on the edges of those domains a dynamic equilibrium is established between machines that are "recruited" to a domain and those that leave the domain. The optimal sensitivity function balances both tendencies, allowing the machines to stay synchronized with a minimum of communication.

Extending the model originally proposed by Strogatz, the GUNK demo employs an offset step function to represent sensitivity versus time. Also, the GUNK "fireflies" are coupled some-to-some, not all-to-all. When a GUNK "firefly" hears the flash of its neighbor, it flashes immediately and reduces its own period. When no flash is heard during the course of a period, the "firefly" increases its own period, ultimately eliminating harmonics.

(stuff) Most messages are dropped, cause interference or collisions due to inappropriate timing.)

Point the laser at a light sensor on one of the gunk machines.

Some of the sensors may have a pink piece of paper attached to them.)

The machine you hit sent out a wave that helps the other machines determine their distance in hops. Notice that some change their number after a little while. Messages that must pass through more hops don't necessarily take longer to reach their destinations.

Hit another light sensor. You can propagate two waves at once. They all timed out at the same time (global timing) and returned to flashing. Notice that, thanks to global timing, messages don't "live" forever.

After they time out, they'll start flashing with their internal frequency. If they still remain synchronous, then they have frequency-locked as well as phase-locked.

Look at the current state of research for more information on the firefly problem.