Steven Ness

We propose to build the BioConnection Machine, a ultra massively parallel computer where the individual processor elements are digital computers implemented using genetic circuits in cells. This machine is modelled after the famous Connection Machine designed by Dan Hillis from MIT. This computer could potentially contain billions of processors, each of which would be a Universal Turing Machine (UTM) capable of carrying out any arbitrary computation. The computer would be built using microfluidics technology, where individual cells would be arranged one after the other in linear structures. Communication between cells would be via chemical communication, and the global external clock and other input signals would be also of a chemical nature, but would delivered via microfluidic structures.

zobs420_The_Connection_Machine_from_MIT_but_made_of_transparent_43e2d777-5de1-48ae-b7fb-68b1caba9f1b.png

Untitled

Individual computers would communicate with each other and would use principles from Cellular Automata, and note in particular that certain cellular automata display aperiodic and chaotic behaviour which could be used to assist calculations.The individual processors would implement one instruction only in a One Instruction SET Computation (OISC) architecture using the SUBLEQ instruction.

Untitled

Untitled

subleq.png

Output would be via fluorescent proteins, captured by photodetectors mounted around the microfluidic enclosure. These microfluidic structures would be stacked, and communication between layers would be made possible, creating a N^3 processor, capable of reducing the dimensionality of previously difficult to solve problems.

bioconnectionmachine.png

These computers could be a combination of digital and analog computer, for example, one could encode RELU as an analog comuter using a genetic circuit. Our cell platform would hopefully be a highly engineered organism like JCVI-syn1 with the capability of containing many different gene networks, as the more gene networks that are used, the more inputs and internal registers could be implemented, and it is likely that certain problems will require a certain complexity of the individual processors. Both the clock and the Random Access Memory for this computer will be external to the processor in an echo of early CPUs, like the 6502. There will also be supplementary memory in terms of a shared chemical memory between cells that will enhance computations. One potential first use would be training of deep learning systems with a very large number of parameters a second could be integer factorization for large primes.

Code

I implemented this in Cello-v2. The code and input files are at : https://github.com/sness23/cello

module subleq
(
    addr_a,
    addr_b,
    zero,
    one,
    clock,
    a,
    b,
    y,
	  z,
    d,
    e,
    q0,
    q1,

 );

   input addr_a;
   input addr_b;
   input zero;
   input one;
   input clock;
   input d;
   input e;

   wire  not0;
   wire  and0;
   wire  and1;
   wire  or0;
   wire  or1;
   wire  not1;
   wire  not2;

   output q0; 
   output q1;

   output y;
   output z;

   assign a = (!addr_a && zero) | (addr_a && one);
   assign b = (!addr_b && zero) | (addr_b && one);

   borrow = !(a && b) && a;
   b_prime = !(a && b) && b;

   assign y = a;
   assign z = b;

   assign not0 = !d;
   assign and0 = e && not0;
   assign and1 = e && d;

   assign or0 = and0 && not2;
   assign or1 = and1 && not1;

   assign not1 = !or0;
   assign not2 = !or1;

   assign q0 = not1;
   assign q1 = not2;

endmodule

It does not compile due to an issue with Cello. Reached out to Dr. Douglas Densmore and turns out that Cello is not designed to handle this kind of circuit and forwarded my message to his lead develop. He also directed me to read Dr. Chris Voights paper “Cellular checkpoint control using programmable sequential logic”. This issue (https://github.com/CIDARLAB/Cello-v2/issues/47) has been solved by ****(https://www.science.org/doi/abs/10.1126/science.aap8987) him as mentioned in the above paper. I am trying to contact him to try to get the fixed code so I can merge it into Cello-v2.

and_gate_dpl.png