From charlesreid1

Link to powerpoint presentation on the lono computing concept: File:LonoComputing.pdf

Lono Computing

LoNo (short for low-power no-power) Computing is the idea of building a computer that is extremely low power. It is the attempt, inspired by nature, to build efficient computers by harnessing the natural behavior of natural systems. There already exist computers composed of DNA and proteins that can perform such complex tasks as playing tic tac toe or storing an image. Fluonics, the field of building devices that utilize fluids in "circuits," did not catch on for the purposes of performing calculations or rivaling the electronic computer, but are useful in certain specialized situations. The same principles behind the design of electronic circuits and components applies to the design of fluonic circuits and components: if you can design components for a few simple operations, such as AND, OR, XOR, and NOT, it is possible to build fluonic circuits that can process, amplify, or otherwise transform a signal.

Like Alan Turing's original design for a computer, the Turing Machine, which was an extremely simple device that need only be capable of using a (for all intents and purposes infinite) piece of paper tape with cells to store information, the capability to move the tape forward or backward as needed, and the ability to mark or unmark cells on the tape. From these simple operations, and the logical components of circuits, the first electronic computer was born.

The Physical System

Imagine, for instance, that you have a small wire frame consisting of a wire cube with its diagonal corners connected to form a complex shape. If you dip that wire frame into a bath of soapy water and pull it out, the surface of the soap bubbles will conform to the wire frame and form extremely intricate shapes. This happens instantaneously, and is the natural state of the system, despite the fact that it requires significant computational power to solve free-surface energy minimization equations for a fluid solution of macromoleules shifting in space and time.

Another example of a complex physical system would be particles released into a turbulent jet - the ultimate trajectory of the particles, a complex function of the conditions of the jet and subject to influence from small scale motion, is a difficult and computationally expensive quantity to predict that requires many coupled physical equations. And yet, a solution, a path, is "found" instantaneously by the particle.

If one has really technically penetrated a subject, things that previously seemed in complete contrast, might be purely mathematical transformations of each other.

- John Von Neumann, quoted by András Bródy, Proportions, Prices, and Planning (1970)

What if we could harness these natural systems and their behaviors to solve our equations for us? What if we found a transformation that could be applied to real, practical problems of interest to map them onto a real physical "computer" system? It could provide specialized "hardware" that could solve difficult problems in the blink of an eye. For example, the Traveling Salesperson Problem is an optimization problem to find the minimum path through all nodes in a graph (akin to a shortest path through a set of cities). What if the Traveling Salesperson Problem could be mapped to a particular geometric configuration, a complicated tangle of wires fashioned to correspond to a particular problem, and the problem solved by dipping the structure in soapy water and determining the resulting shape?

It's a far cry from the kind of direct physical simulation you get when you test a miniature aircraft in a wind tunnel, but it isn't so far off the mark. Exploring this avenue could be a rich source of insights about the transformation process between problems of interest and real, physical systems. When building a miniaturized physical model of an aircraft, to be tested in the same fluid, there are certain non-dimensional numbers that must be kept the same for solutions to apply across scales.

Perhaps there are eigenvalues or characteristic non-dimensional numbers that characterize a system that could be extracted from a problem description and turned into, say, a wire frame.

I'm imagining something like this (this is actually Python 4.7 syntax):

Computer: How many I help you today?

>>> Help me solve the traveling salesperson problem

Computer: Certainly. I see you have an adjacency matrix defined in a file. Reading that now... 

Computer: Okay, I've created a Traveling Salesperson Problem.

>>> 3D print a soap bubble wireframe for this problem

Computer: 3D printing, please wait...

Computer: 3D printing complete.

>>> Activate bubble measurement system

Computer: Bubble measurement system activated. Drop your sample into the soapy water.

>>> Go time, give me a solution

Computer: Removing wireframe from soapy water. Please wait...

Computer: Measuring bubble surface locations. Please wait...

Computer: Measuring bubble intersection points. Please wait...

Computer: Reticulating splines...

Computer: The shortest route through the graph is:

2.5 miles 

[1 2 9 4 18 22 3 23 17 14 8 ... ] 

World as Simulation

If you strip away the grandiose imagery, though, and examine the nuts and bolts of this idea, it boils down to using the world as a computer. That, in turn, is linked to the idea that the world itself is a computer.

If the world itself is a hyper-tuned computing machine, why not use it?

If we are living in a simulation, then the atoms or subatomic particles or quarks form the information currency of the simulation universe. The entire universe is one long random walk in a Monte Carlo simulation composed of all of these subatomic particles. (And if the universe is a simulation, is it written in a functional language, or is it object-oriented?) Occasionally, the random configurations that the system reaches in local regions form pockets of unusually low entropy, like a planet that's at just the right location in orbit, or atoms organized to compose a sleek new iPhone; but for the most part it's just vast, empty space, with giant expanses of pure, utter, and literal chaos.

(You might even think about it as a complicated version of the Game of Life, invented by mathematician John Conway.)

Why LoNo Computing

LoNo computing sounds hard! Mapping a real problem to a physical system, then finding a solution, then one problem onto a physical system, and mapping a solution back into the original problem space, seem. Why focus any effort on such a wild and crazy idea?

For a few reasons:

  • Cheap and free computing power. The LoNo Computer concept can be applied to traditional computing tasks like storing information or performing calculations about the weather across a giant grid of distributed computing - it doesn't have to be tiny, specialized hardware manufactured in a clean room.
  • If solutions to classical Np-hard problems like the Traveling Salesperson Problem could be solved (essentially) instantaneously by specialized LoNo computing hardware, it would be revolutionary to the field of computing. The burden would then shift to experimentalists "measuring" the physical solutions, and to instrument manufacturers to make faster and more accurate measurement devices.
  • Our current paradigm of computing and computer architecture (electrical signals, silicon chips, computer chip architecture) is just one of many possible ways things could have developed. Modern CPUs are very highly tuned to perform tasks that CPUs are good at. This makes them inefficient for many other problems. Specialized computing devices and architectures (like GPUs or FPGAs) can help by solving certain kinds of problems much more efficiently. LoNo computing takes that to approach to its logical extreme, swapping out the physical world for the silicon chip layer. LoNo computing has the potential to usher in a new paradigm of computing, and whole new classes of computing devices.
  • Implementing a fluid computing device helps investigate the nature of computing, contemplate its impacts, and reduce energy usage.

Our present analytical methods seem unsuitable for the solution of the important problems arising in connection with nonlinear partial differential equations and, in fact, with virtually all types of nonlinear problems in pure mathematics. The truth of this statement is particularly striking in the field of fluid dynamics...

- John von Neumann

Gravitational Computers

Let's examine a few examples of LoNo computers, starting with fluid-based gravitational computers.

Many LoNo computers could be built on a large scale by utilizing existing infrastructure, like transmission towers scattered through the desert or large mountainsides. The LoNo computer would be tailored to each environment: design decisions like upward flow (air as the working fluid) vs downward flow (water as the working fluid) or the computing task best suited to the architecture.

Manipulating the fluid in the fluonic circuit would require a mechanical (as opposed to an electrical) driving force. This can take different forms: pressure-volume (compression) energy, kinetic energy (motion), internal energy (chemical reactions and heat), or potential energy (gravity). The abundance of the latter in urban landscapes, on towers and skyscrapers, and on geophysical landmarks like mountains, cliffs, and glacial valleys make them ideal locations for fluid-based gravitational computers.

To solve a given problem with a given structure, a fluonic circuit to solve the computing task at hand would be designed from various segments or components. Much like electrical components, these might be simple components (the fluonic analogues of resistors, diodes, or capacitors) or they may be assemblies smaller components into more complex circuits to perform tasks like signal filtering, amplification, or transformation. Eventually, with a great deal of hand-waving and legwork, utilizing increasingly higher level components would allow one to implement a primitive computer with working memory (more o nthis later), data storage, and communications pipelines. With even more hand-waving and legwork, these could be further wrapped with a higher-level interface, a programming language of sorts. Thus, an entirely new branch of fluonic computer science would be born. Just as electrical engineering departments are joined at the hip with computer science departments, so too would chemical engineering departments be joined at the hip with the new field of fluonic computer science.

These fluid segments would stacked together in a literal pipeline via various connectors and fittings. (Thinking of the carbon filters in a home water purifier might be helpful here - the internal structure and complexity is abstracted away into "the thing you stick into your water filter.") One segment might take ten pipes of fluid as an input, and output two larger streams, another might take one stream and split it into ten. (Standardization of fluonic computing gauges would be as important as standardizing voltage levels on-board a motherboard.)

By making segments of fluonic computers smaller, pipes of fluid computers could be installed to utilize existing infrastructure - they could be placed on the sides of existing buildings, inside of elevator shafts and air conditioning vents, and along the sides of large tower structures. (It also seems natural that the computing task would complement the infrastructure, e.g., running heating/cooling systems or running security systems). Fluonic computer developers with hipster mustaches would rig window-washer cables from the roof and attach them to their ironic bicycles, descending and hacking away at pipes while dangling hundreds of feet above the ground. Riding their bicycles along the sides of buildings to navigate branches and mainlines of code and computing functionality, installing and debugging microfluonic computers, the fluonic hipsters descend in agile scrums to the ground floor.

Shifting the Paradigm

The current computational paradigm is computation-limited. It is an information-limited paradigm where answers are expensive, so we sift through each answer we obtain, seeking to improve our understanding. Our computational currency becomes more powerful as time goes on so the questions and answers get more complicated, but answers are always expensive.

Harnessing LoNo computing and nature's seemingly instantaneous calculations turns this paradigm on its head. Having essentially instantaneous answers to any questions we wish to ask means we no longer carefully sift through expensive answers - instead we have to sift through rare questions, which are the right questions to ask and that further our understanding.

Envisioning LoNo Computing

Solar Fluonic Computers:

Transmission towers in the desert represent an opportunity for solar-powered LoNo computers. The LoNo computers would take the form of conduits or pipes on the outside of the tower, with air as the working fluid. Solar concentrators at the base of each transmission tower use solar energy to heat air to extreme temperatures, make it buoyant, and give it a thermal driving force that can run the fluonic computer. Computations performed in this manner would literally turn energy from atomic fusion into computational power.

The desert provides an ideal environment for LoNo communications infrastructure as well. Low-power no-power computing and low-power no-power communications would likely utilize light, or alternatively would need to transmit and receive low-energy signals via pneumatic tubes.

Print Me A Computer:

Components of a fluonic computer (and/or gates, flip-flop circuits, transistors, diodes, resistors, etc.) can be designed with CAD software and 3D printed. By combining these 3D printed parts with different colored fluids, a simple fluonic circuit prototype could be built.