2
$\begingroup$

While thinking about ways, for a science fiction story, to have the internet coming "alive", I concocted the idea of a computer network acting as a nervous system, or cell system. It goes like this:

  • Each computer provides several web servers, the equivalent of neurons;
  • Each web server presents many web services, one for the axon and one for each dendrite;
  • Each web service has many functions, each one corresponding to a neurotransmitter and/or its receptor.

For instance, server A calls the function serotonin() from one service of server B; this would be equivalent to neuron A sending a single molecule of serotonin to neuron B.

Each neuron/server would analyze the pattern of receiving calls, and use the information to decide what services/functions it will call. With a suitably customized algorithm in each neuron/server, like in current artificial neurons, it could simulate an actual neuron. A simulation of C. Elegans, an animal with 959 cells, should be doable with a few current computers.

Advantages:

  • Simplicity. Current neuron simulations run in supercomputers, with custom software. In my idea, the only custom software is in the services; the networking is for free, with TCP/IP and HTTP.

  • Scalability. Adding new neurons should be as simple as adding another computer to the network, and putting a few web servers online on it.

Disadvantages:

  • It's slow. Each server/neuron interaction would take milliseconds, counting network latency; I don't know if actual neurons are faster than that.

  • Tricky timing. Most brain activity depends on precise timing on neuron activation - seizures are a problem of activation timing. Network latency can confuse the neuron/server timing.

Now, to the actual question: Is there any research, in real life, about something similar to my idea? The following are not similar:

  • Neuron, a neuron simulation, is parallel computing on a single machine.
  • BOINC is distributed, but it's client-server: the simulation runs in pieces in each computer, but the computers aren't part of the simulation itself.
$\endgroup$
1

2 Answers 2

3
$\begingroup$

Research typically is done on the supercomputers rather than your internet based approach because of speed considerations. You can design a more efficient simulation with tight coupling, and your system has maximal decoupling.

Consider: the existing neuron simulators are pretty darn optimized. They try to pay attention to things like cache behaviors. A cache hit on a computer is typically on the order of a nanosecond, so I'd expect a single step of a neuron emulator to take tens of nanoseconds. In the absolute best case, you have a context switch between web servers on the same computer and a web protocol stack, so you're talking microseconds, several orders of magnitude slower. If you're talking over networks, you're talking milliseconds. If you had the entirety of the internet operating in unison in your system, you might be able to compete with the productivity of a single desktop running an optimized neural engine. You'd never get close to the supercomputers.

What this could be useful for is if you really needed to run a network robustly. A foreign government could seize your supercomputers, but it's hard to shut down the entire internet. Even so, you'd probably want to do it more like BOINC. Use the network topology for what it's good for.

$\endgroup$
2
  • 1
    $\begingroup$ For an interesting sense of scale: we can compare the speed of a modern CPU's cache against the speed of modern memory. It happens to be surprisingly close to the ratio between the speed of a garden snail and the speed of a cheetah! (sheer happenstance). Meanwhile, on the same scale, a round trip internet packet from the US to Switzerland and back occurs at a rate comparable to the speed of the tectonic activity along the San Andreas fault! $\endgroup$
    – Cort Ammon
    Commented Jul 29, 2016 at 0:29
  • $\begingroup$ Seems that I underestimated greatly the slowness of my solution. :-( Just to clarify, my idea isn't a neuron simulator running distributed: the web servers are the neurons themselves, and network links are the synapses. In any case, thank you and best answer awarded. $\endgroup$ Commented Jul 29, 2016 at 20:50
3
$\begingroup$

NB: I work in High Performance Computing

The biggest problem, as I see it, is scale. Google tells me that the human brain contains 100 billion neurons. By comparison, there are 2-3 billion PCs in the world. Thus, even if you could somehow allocate every internet-connected system to run your simulator, You'd need to simulate multiple neurons on each machine. I suspect you'd need to simulate multiple neurons on each compute core of your hypothetical system.

Regardless, once you have multiple neuron simulations running on a single machine, if that machine has a multitasking operating system on it (Linux and OS X certainly qualify, and I might begrudgingly allow you to call Windows one), there really isn't a difference between simulating two neurons on a core and twenty thousand, other than memory usage.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .