>> Stewart Tansley: Okay. Good morning, everybody. Are we on? Yes. I think so. So I'm Stewart Tansley. I'm just the host for this session. I'll hand it over quickly to Seth Goldstein. Professor Seth Goldstein has been one of the most stimulates professors I've worked over the past years. It's been a real privilege the amount of interest and things that he gets up to. He describes his research domain as systems nanotechnology. We're going to get two tastes of this, both today with this talk, the brain in a bottle talk, and then tomorrow he'll talk about some of his other work in the same sort of area, but a different context. So please come back if you enjoy this talk, tomorrow at the same time in the same room. So without further ado, let me hand over to Seth. >> Seth Copen Goldstein: Thank you, Stewart. Thank you for having me. So this is a particularly good place to give this talk, because Microsoft paid for some of this reasearch. Thank you. So this is sort of a brief introduction motivation because I actually haven't talked about this here before and also a little bit of a status report about where we are. And the person who is doing most of the work is Billy Bay Trapison (phonetic) who is a graduate student that's being co-advised by myself and Carlos Gustrom (phonetic). So this is a plot I'm sure everyone here has seen from Hans Mordic (phonetic) who basically tries to associate some kind of computational power to various biological organisms and Hans and others have basically sort of calculated that the human brain has the equivalent computational power of 10 to the 8 MIPS or 10 to the 14 operations per second. I'm going to explain why I think that's a really terrible metric, but it motivated me to think about, you know, maybe one of the reasons why AI is really hard is we just don't have enough computational power, so is it possible to build a system today that would be a tool for AI researchers among others, but that was the original motivation, that would enable or facilitate AI research and understanding the brain. So what I would like to propose is to build something to that scale, that physical scale that little box maybe a meter or two, one or two cubic meters that has about an order of magnitude more computational power than at least what people estimate the human brain has. Okay? So let me give you some brain facts in case you don't know. And by the way, it's a small group. I'm happy to be interrupted at any time. So the brain's not that heavy, it doesn't take up that much space, it doesn't use that much energy, and it crams a lot of stuff in there, about 10 to the 11 neurons. To me the most interesting sort of brain fact is the number of connections per neuron, the number of synapses. So basically every neuron is connected to about 10 to the 4, 10 to the 5 synapsis. On average some areas of the brain are much richer than that, and some are significantly poorer, but this is a good average, and so we'd like to target something that has on the order of ten to the 14 connections. And these things are really slow, 10 hertz about, and yet it's sort of pretty amazing. So you can use various methods to calculate what the computational power is, you can look at the capacity. And so the neurons, the speed of the synapse, the amount of energy being used, you could look at the visual system which we understand really well, compare it to the number of opps it takes to do vision on a processor and extrapolate. Anyway about 10 to the 8 MIPS is what you get. Some people argue this is way underneath it if you sort of think about each protein as a processor, but I think that's probably a bit extreme. Okay. But I think it's a bad metric, okay. And so the question I have is what is the best sort of system architecture to think about, so I want a metric to evaluate an architecture that would facilitate AI research and research that would help us understand how the brain works, okay? And I think that just getting more MIPS and FLOPS is not the answer. Buying 50 or 100 or 1,000 Blue Jean Ls or Ps or whatever they're up to now is probably not going to answer the problem. So my thesis is that while MIPS and FLOPS are good connectivity is better. In order to evaluate that thesis, we need to really build this machine, and I'll talk a little bit more about that later. So today in June, I guess, the Blue Jean down in Los Alamos got to about a petaflop, which about 10 the 6 megaflops, and basically everybody focuses on these. This thing is a road runner, so we would need about 10 to the 4 of these to get the same number of opps per second. You couldn't use all those floating point opps but that's the way they get their opps. But I think what's really important is the connectivity. So these Blue Jeans, this Blue Jean, the roadrunner is made up of 17 what they call computational units or computer units or something like that, and each one has a 288 port finiBand. So in other words, it's very connectivity poor, at least between these big cabinets. And even inside the architecture if you look at it, it's very connectivity poor, so the message volume is small. You know, we think about balancing machines in terms of how much memory for each gigahertz or megahertz or whatever it is, and there ought to be something like that to say given certain processing how much connectivity would we like to have. Okay. So the important neurons, it's about 10 to the 5 connections for each neuron, so it's about 10 to the 14. And the other thing is we probably can't afford to just get 1,000 of these Blue Jeans to get us there, because this one takes about 4 megawatts, so 4 gigawatts would be sort of problematic, and this is the most power efficient supercomputer that exists by a factor of like three or four. Okay. And the next four down the list are all by IBM, too, in terms of power efficiency. Okay. So what I want to do is build what I call a brain in a bottle just because it sounds good, it's actually in a box, but something that's fairly small and focus on the connectivity. Okay, and scaling. So one of the sort of paths on how I got here is I'm very interested in sort of stochastic processes, particularly in manufacturing. And so I'm looking at something that's a much, much less expensive than Blue Jean, which is highly engineered. So what I want to do is sort of build these very simple processors, let's say they're packaged in a sphere, I'll explain how that packaging works in a little bit, and then you sort of drop them in the box or the bottle, and then that's your system. Okay. And so somehow that makes it, you know, sort of robust because the construction method requires robustness, it didn't work at all if it's not robust, and makes it fairly inexpensive and easier to scale. You just drop more nodes in. And so I'm going to use this sort of soccer balls and icon for my processor, think of it being about a millimeter in diameter or less. Right now, I think we would probably make these easily today at about 600 microns in diameter and then there's going to be some wires and I'll explain how those wires work later. Okay. So if I really want to put a billion of them in there, then just for packing to make it easier, I probably need two cubic meters, if I actually did it right I could get it into a cubic meter. It's about a cubic meter. Okay. So I'm going to explain how to build these spheres first and then I'm going to go through some numbers to convince you that this is reasonable and I'll talk about the networking and then some algorithms. Yes? >>: (Inaudible) back to (inaudible) when you set up this sort of straw man of connectivity where the finiBand is only 280 parts. But I mean it's much faster obviously than the snap connections. And I mean virtually each thing can talk to each other thing, you know, at 10 hertz or whatever, probably. So is there a reason you didn't want to pursue this type of architecture even though it -- I mean effectively you still can get that kind of connectivity, just really slowly, I guess. >> Seth Copen Goldstein: So I guess at 10 hertz, the thing is we have to do a lot of other simulations, too. I haven't done the analysis that says if I want to give like if I want to divide this up into, I mean obviously this isn't the right way to use this architecture but if I want to divide this up in 10 to the 11 processes that we're all talking to each other, what kind of message volume could I sustain? I probably should, I think it's pretty poor. But I don't know. That's a good (inaudible). >>: I agree that what you're doing (inaudible) but. >> Seth Copen Goldstein: Well, partly. Yeah, so I'll do that calculation and I'll get back to you. That's a good calculation for me to do. There's nothing you can get around this. And I also, you know, this is a scalable technology, so I'd like to put a small brain on my desk and so we could do that. So it's the other thing. Okay. So let me explain how we're going to make these things and actually shameless plug for tomorrow, this same basic technology is going to work for Playtronics as well. So I want to make this as inexpensive and as small and lightweight as possible, so for thermal properties I want to really sort of do away with the packages if I can. So what I'd like to do is sort of print my chip on some basic silicon and then make that the package. So somehow I've got to turn this flat thing into a sphere just because it's easier to think about spheres. We could think about dyes, but I don't know how we're going to get the network that way. So the thing is is that a thin film of silicon is actually flexible, it's not rigid. And so if I just take the silicon on top of this silicon and insulator, on top of the insulator and the typical SOI wafer, it's very, very thin. And actually you can engineer the stresses, and this is not my idea, this is Rob Reed's idea from the air force research lab. Instead of printing your dye on some type of rectangular form, print in it this flower shape, you can engineer the stresses here so that when you get rid of that insulator and you get left with this very thin silicon, it should -- oh, yes, so we're going to put our dye on here. It should curl up into a sphere, and actually we're in the process of making some of these. This is actually a really old picture, but we can actually make Rob can make and my graduate student, I can't make it, but we can make these little spheres. And there's in a one millimeter diameter, assuming we can close this space off, we have enough area here to put some -- a lot of stuff here, right? It's about three -- it's about two square millimeters of area, surface area that we can use. Okay. So this is our little sphere and so in a 90 nanometer process, so this is sort of ancient already, the kind of stuff you can imagine putting in that area is something like an arm 7, quarter of a megabyte of memory, so this is a little under power in terms of the amount of memory we have. And then all the support circuits you would need to distribute power, which I'll explain how that's done in a minute, and we fill the middle, we curl it around let's say a super capacitor which has the energy for about a billion instructions, and then they transfer energy between each other. Okay. And these are today's numbers. These energy numbers make these things run a little hot and I'll explain how we're going to get it cooler, but, you know, if we go down to let's say 45 nanometer process and we have a lot of room for extra memory, for instance. I don't think we need any more processors. So let me talk about the power a little bit. I think partly one of the things I like about this project is it motivates a bunch of other research as well. So to really scale this up, we probably need to reduce the power, and we have to consider two things, the dynamic power and the static power and once we get them to the 45 nanometer node or below, the sort of leakage, current, the static power becomes the serious consideration. So there's a couple of ways we can do that. One is we can use less hefty processors than an arm 7 and put a bunch of them on each one of these dyes, so essentially just use parallelism to slow the clock right down. That allows us to lower the voltage. And the other is to use better circuits. Before I started doing this kind of stuff, I spent a lot of time thinking about asynchronous circuits, and they are much -they're less power hungry. Yes? >>: (Inaudible) does that mean something ->> Seth Copen Goldstein: Well, in the way the arm 7 works when they quote it on their data sheet they say you can, you know, depending how fast you want to run it, it's going to be a certain number of microwatts per megahertz, okay, and these are all basically single instruction issue, one instruction per hertz. But I will start talking about joules. But picojoules per instruction. So there's lots of circuit techniques around, and it's not just for building large scale systems that people care about power, everyone cares about power, as I'm sure you all know. And so there's lots of standard seamless low power stuff, there's lots of asynchronous circuits. I think exploring reversible computing is interesting, but we don't really need it. So for instance, if we just stay on this industry trend, so for instance Todd Austin in Michigan has this processor that he fabbed at 130 nanometers and .6 picojoules per instruction, so it's about three orders of magnitude of what people standard get today. If you include the memory in this, that's three picojoules per instruction. And there's no reason why we can't get to about a 10th of a picojoule per instruction. This is all well within the realm. And this is about 130 nanometers so we can shrink this significantly. And so if we do get to .1 picojoule per instruction, then 10 to the 9 MIPS, that will be one order of magnitude more than what Hans says the human brain would be about 100 watts. >>: (Inaudible). >> Seth Copen Goldstein: This is static and dynamic. Of course at 130 nanometers, the static is a smaller component. But if you look at the curves, you can see that as you boost up the frequency, so the static is not as much of a proportion as it would be today. And so we, that's certainly something we'd have to consider. So when we go down to 45 nanometers it's not going to get four times better. We're not going to win that way. Maybe it will get twice as good. >>: (Inaudible). >> Seth Copen Goldstein: You mean my brain? 25 watts. Approximately. But well I'll talk about cooling in a second. Let me just talk about delivery, how we're going to deliver a power to this because we've got all of these things thrown into this box, there's no power plugs for each unit. And we actually need this sort of head room, so 100 watts from computing and communicating is going to require more power dissipation, because you've got to distribute the power and the method we're using is not that efficient. But imagine that we have these spheres and they're in contact with each other, so we could potentially set up some kind of communication path that way. We're not going to actually do that. But if we put on the surface of the sphere, we code it with the dialectric and right under the surface we have metal plates, then when two of these spheres come together what we have is let's say this is blue one is one sphere and the pink one is another sphere, the plates form these capacitors across that interface. So if I put an AC current on the blue guy, it's going to transfer a load over to the pink guy. Okay. So these guys are actually far apart, but when they come together, they form this capacitor. And we have actually demonstrated this, so we can get this to work. So you can imagine I have power in one guy, I've got to get power to the next guy and so I essentially sent him a packet of power and then he can continue to route that and so the power distribution problem becomes his networking problem to make sure everybody is getting the right number of packets they need. And it's sufficient enough that we won't spend all of our time just routing power. So the surface provides the initial thing and then it sort of filters out to the right. So this is just one scheme. There's other schemes you can consider using. Okay. So so far we have like an XM MIP machine which is sort of cool, but the units only communicate locally with each other, and that's not very interesting. It takes a long time to go from one end of this machine to the other. Okay. And as I said, I think connectivity is the key thing for -- that's my thesis, anyway, for enabling this kind of research. So we're going to attach wires here that are about 10 diameters long where the sort of the basic unit here is the diameter of the processor. All right. And these wires will be coded with a fairly resistive material. So when two wires cross and connect, they're going to create a highly resistive contact, but not so resistive, it's not a perfect insulator that they can't -- actually a signal on one will get transmitted to a signal on another one. So imagine here then that we have let's say these nodes, four nodes, A through D, and their wires are connecting at these big black blotches. We can engineer that resistive coding and the signal strength that we put on the wires so that we can choose whether or not when a node puts a signal on this wire it is successfully transmitted through one or two contact points. So the idea is to do it so that there's two contact points, that a signal put by A will be seen by B because there's one contact point, it will be seen by C because that goes from A is wired to B is wired to C is wired, but it will not be seen by D. Let me just illustrate this with a little graphic, right. So imagine I use an AC signal on A, it goes through this resistive coupling to B, the blue wire and the amplitude of this signal gets shortened and then it gets shortened some more but it's still more signal than noise and by the time it gets to the rest of the machine it's basically just noise. Okay. So if we had sort of uniform one centimeters lengths and a uniform distribution, then every node, just do the basic math, gets about 10 to the 6 neighbors. >>: Are you (inaudible) straight lines to (inaudible). >> Seth Copen Goldstein: Yes. So it turns out I'm going to show you some really data in a second from our simulators. But 10 to the 5 is well within sort of stochastic process. Now, I don't really understand how to do this, so it could be that it's not -- you know, it might be 10 to the 4, I don't really know. If the wires are sort of -imagine that we start out the box is water and we create hydrophobic wires, put them hide phonically, they're basically going to want to stick out. So as we drop these things in, the wires will mesh together, the ones on the bottom will be all sort of bad, but as you get in the middle there's a lot of connectivity. Yes? >>: (Inaudible). >> Seth Copen Goldstein: Yes. >>: (Inaudible). They may not, they may have the repulsion? >> Seth Copen Goldstein: No, if they're both hydrophobic, they're going to want to -- oh, they're both hydrophilic, yes, that's true, that's an issue. I hadn't thought about that. So there's going to be a lot of -- there might be some repulsion, but we're going to neat to sort of glue them down because I'm going to use the extra space in this box to pump coolant through it to keep them cool enough and if I don't glue them down, they'll go all over the place. You so the gluing, you can arrange it so that there are the chemicals on here and with small electrical contacts we can essentially weld them together. And so the fact that they might not come, they might not naturally want to stick together is probably okay. Yes? >>: (Inaudible) actual biological brain is the ability to prune and regrow those connections and change the circuitry that way. Are you going to emulate this in software, per se, or how are you going (inaudible). >> Seth Copen Goldstein: First step, do it in software. In the long run, and this is now, you know, there's so many grand canyons I want you to jump over believability here, so this would be like grand canyon number two, but there are like molecules that if they change their confirmation, they change their conductivity and they can change their confirmation with high voltage differences like protaxians, for instance. I don't know how familiar with this ->>: (Inaudible). >> Seth Copen Goldstein: Yeah. >>: The other one so is you've got, you know, 10 diameters. One of the other things you get in the biological break beneficial is this very long axle connections. >> Seth Copen Goldstein: So axle -- I mean this is to give you, I mean this is a calculation you can do like with a pencil and paper. If I start making it a little harder it is a little harder to actually figure it out. There's a mean distribution of 10 diameters, there will be some wires that are shorter and some that are significantly longer, and actually what we thought about is we can have 10 diameters worth of copper, think about it, as copper exposed and then some insulator in between, so you can sort of leapfrog around. So these are all -- to me, these are all like second order bits. If we could get the basic thing to work doing that stuff is quite easy. >>: (Inaudible) resistors than you are through the processing constructions. >> Seth Copen Goldstein: You mean, am I going to be generating more heat and power going through the wires than I am going to be processing instructions? Probably. >>: (Inaudible) resisters. >> Seth Copen Goldstein: Oh, resisters, I see. Well, the whole process of doing the communication is going to be very power hungry. Let's say in order of magnitude more than the process. >>: (Inaudible) based on connectivity that you choose the connectivity means (inaudible). >> Seth Copen Goldstein: I want as rich connectivity I want and I don't know how else to get it. One way to think about these things is it's sort of like anisotropic wireless. Essentially these are like wave guides, right, that make -- and I don't want it to be isotropic, I don't want to just talk to my neighbors, I want to be able to reach across large distances, and so this allows me to do that. If someone can come up with a better scheme, I'm not wedded to this scheme, this is just a straw man proposal that I think -- you know, if I do this by simulations, it looks like it works, the chemistry people say it's not completely farfetched and so -- but I'd rather have a better scheme. This is going to be a little power hungry. Okay. So we have with the help of you guys, we built the simulator to understand what the structure of this thing would be and then to run our algorithms on it, so at the very beginning we have to actually we'd like to see what the structure of the wiring graph is and how the nodes get laid out, so what we do is we sort of simulate randomly dropping these nodes into a box, and then to see what the wiring graph is, we sort of voxelize this thing up into voxels that are significantly smaller than the diameter of a node and then run the wires through it in a random process. So the wire, you know, enters this voxel and then comes out in a straight line in the voxel, but we can sort of -- so it bends around and we can sort of simulate at a rough get of what the structure of this thing would look like. In general, for all the simulations I'm going to show you here, all the wires are exactly 10 D long and they're completely conducted. I mean there's no insulator among any of that surface. Yeah? >>: (Inaudible) these spheres, you also know how to make these wires in. >> Seth Copen Goldstein: I know how to make the wires. Knowing how to put the wires on the spheres is still something of an issue. >>: So it's not just a question of (inaudible) some kind of wire thing on this sphere head, it's something more (inaudible). >> Seth Copen Goldstein: No. There's some things that we've been throwing around, but I don't have any good -- I mean, you know, they're sort of small and how to actually attach the wires is of question. What I'd like to do is I'd like to grow them out of each fear, that would be the best thing to do. But I don't know how to do that yet. I mean, there are ways that you can think about doing it. >>: (Inaudible) very much like the growth you see on rechargeable battery. Have you ever looked at that? >> Seth Copen Goldstein: No. >>: So one of the things you run into was a NiCad battery in particular is as you're charging it, the act of charging it causes metal to migrate from the plate into the electrolyte. >> Seth Copen Goldstein: That general process I do understand. >>: Yeah. And eventually, you know, you get a shorted cell. >> Seth Copen Goldstein: Well, you could think about electroplating these things, starting out with a C, you could think about doing some kind of a catalytic growth like the way now to their silicone wires and the nanoscale. So there's lots of different (inaudible). >>: (Inaudible). >> Seth Copen Goldstein: Yeah. >>: (Inaudible). >> Seth Copen Goldstein: The first nano -- yeah. So anyway. So there are processes I could think about, but I haven't -- I'm not betting on any one in particular. Okay. So these also all these numbers I'm going to show you are for something with a million processors. So we can't really simulate more than a million today just because that's on a like a 48 gigabyte machine. You guys want to give me some more memory that would be good. But because we also run programs on each one of the nodes, we need a fairly big system here. So for a million nodes with the wires about 10D, then, you know, most of the nodes have about 2200, 2400 neighbors, so it's a big set of neighbors, even curling around and doing that. And they have -- this is the number of unique neighbors they have, so the wires make lots and lots more contacts. So there's a lot of redundancy in all of those connections that you have. And there's a fairly big distribution. And the problem with trying to really evaluate this scheme with just a million nodes is there's too many of them on the surface. What I'd like to do is actually do this thing for a million and then cut away the ones that are out there, the surface to volume ratio will be much smaller when we get to a billion nodes. But even so, it's the neighborhood size is pretty large, so that's good. If we look at the number -- so a contact point is sort of the physical connection, a hop is a logical connection, and to get from one end of this box to another, it takes about -- well, once, you know, takes about 12 hops. So this is just a, you know, picking pairs at random and seeing how many hops it takes to get from one to the other, and it's a cumulative distribution. So once we get to about 8 or 9 hops, almost everybody can communicate. Okay. That sort of makes sense, the wires are -- I mean you can sort of do what's up. You have lots of neighbors. You can always go in the direction you want to, the nodes are -- the wires are at when they're completely stretched out are about 10 diameters and the box here is like, I don't remember how big the box is. We could calculate it, though. 70 or 80 diameters or something like that. Yes? >>: (Inaudible) knowledge of how the connectivity graph so you can final the optimum path between 2 (inaudible). >> Seth Copen Goldstein: Yeah, this is just, if I was doing the offline routing algorithm, how would I do it. Yeah, this is -- I'm just characterizing it. And I'll do some more of that. But I'll show you the real (inaudible) in a minute. Okay. So one of the big problems with this network, the big problem with this network, is the randomness is all good. I mean, you know, if I've got two nodes that are both sharing cross a single wire, they interfere with each other. It's like all the problems you have with the wireless. Hidden receivers, hidden transmitters, all that kind of stuff. So either the communication is going to have to be fairly sparse or fairly smart. Sparse you're okay because it's not going to be a lot of people competing for it, or if you're smart. And one of the things that we haven't gotten to but is on our list is looking at things like Rodica's (phonetic) work on desynchronization. So you've got a bunch of nodes that are all sharing some communication bandwidth and what you'd like to do is make sure everybody who wants to communicate, K of those, they get one Kth of the bandwidth. Right. So, you know, you've got let's say 100,000 people sharing a wire, it's not quite that bad, but only like 50 or 1,000 of them want to communicate, so you'd like to get one-fiftieth one-thousandth of a bandwidth, not one-millionth of the bandwidth. You don't want to just do time division, multiplex in a stupid way. And this desynch algorithm is very cool, and they sort of self organize and the speed in which people can join and leave and get the piece of the bandwidth they want is very fast. And the other thing that's nice about this algorithm, I see you guys should invite her out here to give the talk, is that it uses constant memory. So memory is a big concern of ours, right, the nodes have very little memory. So I'm going to tell you how we're going to address that in a little bit. So let me just show you. We built this tool that sort of visualized the simulated brain we call it an FMRI tool of course because why, you know, we want to. Let's see. So I think this is the right video. I'm supposed to go down here. Where am I supposed to go again? This thing here? Okay. So what you're looking at is sort of the nodes and the wires. The nodes fade away a little bit. It's 3D, so you're not seeing all the way deep here. And this is running basically sort of a test thing to get our basic, you know, A and B are neighbors, they're one hop away, and I want to get them to communicate. Every node is trying to send a message to every single neighbor that it has. And they're all doing it at the same time. So this is sort of worst case kind of scenario. When you see this rash of red breakout it's because two people are stomping on each other. When you see blue, it means the wires are being used to successfully transmit data. And if it's black, then there's nothing happening on that wire for a second. And so in the binge, at the very beginning, everyone just doesn't know what to do, they stomp on each other, sort of the whole thing turns red, then the basic backoff algorithm starts to recover and then you see patches of red and lots of blue and that's basically the way this thing then runs until you get to the end. So it takes I don't remember how long this takes to get everybody to have sent a message to everybody else. But it takes a reasonable amount of time but not ungodly amount. And of course as you make progress and fewer people -- you know, more people have actually satisfied the thing and they're quiet, then it really speeds up towards the end. Yes? >>: (Inaudible). >> Seth Copen Goldstein: Yes. These are the node. They're much bigger than they look like. >>: So (inaudible)? >> Seth Copen Goldstein: We drop the nodes in randomly using gravity to pack them, and then the -- >>: (Inaudible). >> Seth Copen Goldstein: Right. >>: (Inaudible). >> Seth Copen Goldstein: No. >>: All right. (Inaudible). >> Seth Copen Goldstein: I don't believe that we want -- we need to or want to. I mean, if we could actually -- I mean, there are -- so if we didn't have the wires to contend with, then we could drop them in and sort of shake them and get them to form an absolute lattice, and that would be useful. But the wires are going to -- never happens, right, because the wires are sitting there, the nodes are going to roll around, they're not going to -- and I actually -the more space we have in there, the easier it is to cool. So I'm not upset about it. And then two cubic meter box is not that big. We'll be able to get many more than a billion nodes at one millimeter diameters. Okay. Any other questions? This video -- this tool is totally great for trying to diagnose problems, not that the algorithm isn't working but it's too slow, and so you get to sort of visualize it and see, it stays red for a really long time or something like that. You can sort of hone in on the spot that you want to focus on, try and figure out what the graph structure looks like. It's just a lot of data. So it's not as much data as the people who are looking at a real brain half, but it's a lot of data. It's also fun to play with. Okay. So you don't need that. Okay. Whoops, I'm now on the wrong mode here. Okay. So that's the basic communication. I'm assuming for my power and heat dissipation calculations that like 50 percent of the volume is in the spheres, 20 percent is in the wires, and the rest is left over for coolant then I'm going to pump through. So if I use FC 77 and like a commercial pump, I can totally keep this thing cool, getting about 10 to the 9 MIPS. So one order of magnitude more than the brain. And this is the completely commercial kind of pump that I can buy. So you could get it at least in order of magnitude better than that. If you're going to ask me -yeah? >>: (Inaudible) wire connectivity be strained? How do you keep wires connected? >> Seth Copen Goldstein: Like I said, we're going to do these welds. Right. We're not going to just let them free float around because that wouldn't work. There's a lot of pressure. Yes? >>: (Inaudible). >> Seth Copen Goldstein: I don't know. That's a discussion we were having before. I'd like to grow them, but I don't know exactly how to do that. >>: (Inaudible). >> Seth Copen Goldstein: No, no, no. You could do that actually but the connections would be very poor because then you have to captively couple or resistively couple directly from the node to the wire and that might require us to lose a hop or have to use much more power. So I'd like it to be free essentially, energetically, to go from the node to its first wire. Yes? >>: Using a conductive fluid? >> Seth Copen Goldstein: The problem I have with that is that it's too isotropic, so everyone just gets to talk to their neighbors, you know, just decays with the resistivity of the fluid. And that might be interesting, but I don't think it will give us the interesting structure we want. Yes? >>: (Inaudible) assembly solve the problem with the wires getting (inaudible). >> Seth Copen Goldstein: Slurry assembly? I don't know what that is. >>: Where you take a hydrophobic, hydrophilic in a fluid. >> Seth Copen Goldstein: Oh, yeah. >>: And they eventually through geometry and the attraction process give a pretty good (inaudible). >> Seth Copen Goldstein: This is between wire and node. >>: Maybe sure that the connection to the wire ->> Seth Copen Goldstein: Yeah, I see. >>: Mates to it. >> Seth Copen Goldstein: So that's one possible way. Yes? >>: (Inaudible). >> Seth Copen Goldstein: No, it's not ice tropic. Certainly not random, but it looks sort of random, right. >>: Some brands are more random. >> Seth Copen Goldstein: Right. Different parts are more random than others. Yes? >>: So the brand there is some global signalling through this chemical whatever, and your drawing, whatever it was, then of the connectivity would have (inaudible) made me think would it be possible to have some sort of global signalling like a slow down a little bit now because everyone's talking, okay, now you can speed up, or something -- you might be able to sort of optimize it a bit like globally? >> Seth Copen Goldstein: It's possible. >>: Adjusting (inaudible) I mean what kind of (inaudible) you would need. Like you'd have to maybe start manipulating the liquid that they're in with little bits of chemical or something. I mean I don't know what. That's the (inaudible) does it right? >> Seth Copen Goldstein: I'm not sure. We can have like thermal sensors on there, everyone can slow down when it got too hot. That's probably a good idea. Yeah. I mean, there's lots of things. Again, these are second order. Let's see if we can do the first order things first. >>: (Inaudible) local and the global. >> Seth Copen Goldstein: Yeah, I think that is interesting. One of the things that's actually very interesting about the brain is the amount of surface area there is, where it's all folded up. And we could do something similar to that. There's no reason why we only have to have the outside be the -- you could imagine you have fins that are providing something and then the mean distance between people and the global communique is that you can globally communicate to everybody on the surface at once could be reduced. That might also provide other benefits for power distribution. I don't know how it influences the wires. But so there are other schemes that you could think of. Okay. So at this point, what do we have? We have something that's brain like, I guess. That's probably too strong, actually. Brain inspired. So we have this one millimeter diameter units, they're running somewhere between one and 100 megahertz, if I'm using sort of stuff without lots of improvement and getting down to the sort of one picojoule range or one megahertz or less. We have a way to communicate and do power distribution and these wires give us this sort of rich graph, okay? We have about 256 gigabytes of memory so you can see it's a terribly memory poor system. This is one of the problems. Yes? >>: (Inaudible) running over the wires. >> Seth Copen Goldstein: I don't know. >>: You don't have any idea yet? >> Seth Copen Goldstein: No. Close to DC. >>: Okay. So very low frequency? >> Seth Copen Goldstein: Well, no, I take that back. That's completely wrong. For doing power distribution we're getting, we're very close to DC. On the order of kilohertz. Those things I forget what we looked at the analysis. But on the megabit range, something like -- again, that's a parameter -- I mean so in the spy simulation sort of looking at, you know, whether this is physically possible, we need to actually build some of this hardware to determine what the interplay is between the amount of energy that's required but frequency we can support and all that. Okay. So we have a -- the key thing for me is that there's lots of connections on the plus side. On the minus side is it's that it's very memory poor. So this is with using, thinking about S RAM 6T cell S RAM and if you really ( want low power you might actually use more transistors. That's a problem. If we look at D RAM, then we get, you know, another factor of 40. So that's probably a good thing. Yes? >>: (Inaudible) 6 wires (inaudible). >> Seth Copen Goldstein: Yes. >>: And each wire had how many o. >> Seth Copen Goldstein: 10 diameters. On the order of like 10 to the -- well, no, you -- so you can't do it that way because there's lots of overlap in these connections. Right? So if you sort of -- if you don't count overlap it's on the order of 10 to the 6, let's say, but if you do count overlap, because they can go through two contacts, right, so you get that square effect, if you do count overlap, it's about 10 to the 5. >>: (Inaudible) concentrate the (inaudible). >> Seth Copen Goldstein: Oh, yeah, absolutely. Without the double hop thing, then you're limited to just your local neighbors and not very -- it's not interesting. I mean, it's lots of neighbors, I guess, but it's not rich enough. Okay. So I (inaudible) the hop which is the logical A to B and a contact which is hop where I'm saying you go through two contacts to do one hop. As many as -okay. Okay. By the way, so, you know, if we think about scaling, you know, just the general Moore's law thing, if we can at the 22 nanometer node, what we do is we keep everything the same, but then we petabytes, so that's how we can make up this balance. Or the alternative is, you know, why don't we reduce the size of the nodes to 100 microns in diameter and then we have maybe let's say 10 to the 12 nodes. I don't know whether you keep the wires in this case. This is just a whole different like regime because if you wanted one micron voxel of the actual brain, the way they like do things out in Zurich, I forget what the name of that project is, though, it's called blue brain, I guess, we could actually simulate a centimeters cube of the brain completely at the like molecular level with one micron voxels. So it's a completely different tool, right, because here you're doing physical processes and really this was originally ideas were thinking about logical processes and doing AI, not the brain itself. But as a very detailed simulator. And the kinds of things that they do once you get the voxel size down to a micron cube you could do with these processors. So if you look at the kind of stuff they're (inaudible) blue brain function. Okay. And you know, 10 to the 9 nodes if I go back to the 90 nanometer scale, it's about 20 million dollars. So that doesn't seem like a lot to me. And then once we figure out how to do it, you can get, you know, 10 to the 12 operations per second, that's a peta-operation machine for something that you put in a Coke bottle. Which is sort of a cool idea. So that's for the brain in the bottle. Okay. So what -- I choose to say I have a little -- I'm done in an hour -- I have an hour, right? Okay. So I have -- I should speed along here a little bit. But one of the things that originally motivated me thinking about this was that I wanted to have an MREFC that was more interesting than just Internet 2. The MREFC is a sort of massive equipment grant that NSF does, you know, like the Hubble Space Telescope, Lego, you know the big ice cube down at in Antarctica, an instrument for researchers in the field to study something. And I thought right now this is research just to build this, but if we figured out how to do it, we'd have a tool that researchers could use that would be motivating to the guy walking on the street. Right? I mean, Internet 2 is like, okay, I'm going to get less spam, but you know, who cares. It's like plumbers. I mean plumbing is important, right, it saved more lives than practically any other invention, but it's not very interesting, and if we wanted to get the best and the brightest to come into computer science, I think we need to get back to that state where we're doing really interesting stuff that captures people's imaginations. So that was my original thing, so I'd really like to have this sort of machine and -but, you know, from a research point of view, I'd like to figure out how to program this darn thing. So let me talk a little bit about that. So first let me just talk about the basics. I showed you the video of just everybody trying to send a message to everybody, but I didn't actually explain how we're going to route things in this machine, okay. And remember, it's unbalanced. Lots of processing and communication, but memory poor. As a matter of fact, we don't have enough memory in the nodes if you also want to do something else, to store a list of every one of your neighbors. So the traditional sort of comes in, I pick my neighbor that it should go to and send it to that neighbor, that's not going to work. So what do we do instead? Well, every node knows it's XYZ coordinates. That's actually fairly easy to do. You just run an algorithm knowing what the crystal lattice is and figure that out. And we'll basically do geographic routing instead of IP, so everybody gets this unique XYZ coordinate. Tells them where they are. And it also if you're trying to route to somebody, you sort of know how far away they are. All right. So we're basically going to do geographic routing. And the thing that makes this interesting is that we're not going to store a list of everybody, but we're going to sort of the setup phase is you select the information about all your neighbors, and then you sort of divide up this sphere, you project everybody on to a sphere, and you pick login points, login where N is the total number of nodes in the system that sort of random, you know, with some probability that tries to distribute these points around the sphere. So if I want to go in some particular direction, I know that I've got somebody that's close to that direction and I can send it in that direction. Okay. And we did some I didn't actually -- I should have put this graph in here, but you know, how many neighbors do you need to pick in order to have a single connective component, because you can imagine if you're only picking let's say 20 out of your 100,000 neighbors, then you might end up with two completely separate graphs. But log-in neighbors is enough to actually -- we can't prove this, but empirically at least, it's enough to end up with just one connective component. Actually you need many fewer than that, six or seven neighbors is enough. Because everybody is picking a different set of random neighbors, so there's just lots of connections. Okay? So the routing algorithm itself is trivially simple, okay? So I am at some location and I'm routing to some other location, so I calculate the Euclidian distance and I know what direction I basically want to go, and I with a probability biased towards that direction, I pick a random neighbor. So I'm essentially flipping a weighted coin that's biased in the direction that I want to go. I don't always go in that direction. I might go in some other direction, just to make sure I stay out of local minima. And then I route. And if you look at the way this is, this little function here, as I get closer this is the distance between me and the destination, as I get closer, the probability -- the weighting of the coin gets more and more uniform. So when I'm far away, I'm basically greedy. I pick the node I know about that is closest to the destination node. As I get closer, I'm likely to pick somebody off to the side. Okay? And when I get really close, I'm going to be completely uniform. Okay? So you say, well, look, I'm routing to somebody. The probability that one of its neighbors has that node on its list is trivially small. But remember that when I put a message on to a wire, everybody can hear it. Right? It's essentially I'm broadcasting to my entire neighborhood. So even -- so I'm sending a message to Simon, I want to send a message to Simon, but I don't have Simon on my list of neighbors, but I have Stewart on my list of neighbors. So I send the message to Stewart and Simon is listening to it and says oh, that message is really for me, and then he grabs that message. So basically he just put a time to live on this message, and after the message has been sent, once it runs out of its time to live, it dice. And if we make the 2 TL big enough, then we can essentially arbitrarily make the probability gets delivered to the right guy, 100, as close to 100 percent as I want. Okay? So let me show you a little bit how that works. I think this is the right one. Yeah. I just need to get my mouse over there. Okay. So what you see here is the destination node. So we're going to go to a destination then we're going to go to another destination, so once we get there. And then here's a source and there's a destination. And so these are the red nodes are the intermediate nodes that I'm going to, and the blue wires that you see, so the nodes have all been made to disappear here, the blue wires that you see are sort of the neighborhood I'm sending from one red node to another, the people, the wires that are sort of getting that message. So all the people connected to that message can hear that message. And so for this million node brain basically 12, a TTO of 12 is enough to get us to wherever we want to go. Yes? >>: (Inaudible) using here attuned with higher algorithm? So you had one that was kind of doing this connectivity timing. >> Seth Copen Goldstein: Yeah. It's the same brain action. >>: Okay. >> Seth Copen Goldstein: I don't know whether it's the same one, but the way that we made it was the same. >>: Yeah. >> Seth Copen Goldstein: And we generate lots of these and over and over again. So this is the basic way that this works. And you can see that sometimes -- first of all, it's hard to see because this is in 3D, so when you see two red dots very close together, you don't know whether that's from the Z axis, so there's just a lot of information here. I mean, if you look at it on the screen when it's running, you can tell. But sometimes you go a far distance, sometimes you don't go that far distance. And this has to do with the fact that you're only keeping 10 or 12 nodes I think in this -- for this simulation. 10 or 12 of the 3,000 nodes that you can actually talk to on your list. Okay? So I just showed -- whoops, I'm going backwards. It's upside down. So why, you know, why does this work? Well, one of the things is we're trying to actually understand this is if you look, one of the ways to characterize the graph is sort of look at the Eigenvalue gap of the normalized laplacian, and if you really press me on this, I'm going to just say, you know, speak to Philipe, but what I do know is the system engineers, the closer to one you get the better. And if you're sort of at .1, it's an expander. And we're at like .9 here. So this is the number, so the way he calculated this is he drew, he picked a node, he looked up 50 diameters out of the node and grabbed that entire subgraph and then calculated the Eigenvalue gap between the first and second Eigenvalue, okay. And so he did this for 50 nodes, and you can see most everybody -- everybody is above, you know, point whatever. This actually looks -- I see. Everybody is above .99, okay. And lots of people here are very close to, you know, .996. That's huge. And this basically what this means is that in that graph to mix happens very quickly. You can do it in one hop you can get basically anywhere, two hops you can get basically anywhere. And so all these little subgraphs are what we're calling, you know, local expanders. So, you know, that doesn't really mean anything yet because the expansion property of a graph has to do with how it works when it scales. So we're trying to actually characterize, come up with a way of characterizing these graphs because they just work so well. Okay, basically it's a very rich environments, even to 50 diameters out, the wire is only 10 diameters. This is sort of a fairly big thing. And as we make the graphs bigger, it takes longer to -- the subgraphs bigger, it takes longer to calculate. So we're working on that. The actual Eigenvalue of gap for the entire million node brain is like .89 or something. I mean, it's still huge when you consider, you know, that you're and expander it's like .1. Okay. So and the other thing to remember is that every transmission, every time you physically send one message you're broadcasting to everybody. And this looks at the number of messages in that video as an example of sending up, you know, it's six or seven messages and we send like randomly, you know, a couple million or the hundredth -- couple million I don't know, 10 times 10 to the 5. So it's a million messages. How many hops, you know, this cumulative distribution graph of how many hops it took. So you know, like 99 percent or 90 percent -- 95 percent of the messages if we send it 20 hops get delivered. And so we -- you set the TTO wherever you want it to be, and then that works. And this is just still the, you know, first naive implementation of this algorithm. So this will only get better I would expect. Okay. So how would we use something like this? Well, one thing is we can do high level simulation to the brain. We could look at massive, really massively parallel algorithms and then what I'm most interested, what I'm calling massively connected algorithms, algorithms that depend on a lot of connectivity and then I'm not going to have time to talk about these query driven workloads, but I'll talk about them offline. So, you know, the obvious thing is, you know, you want to do something for massively parallel things, you want to do some huge video pipeline. You basically make every processor a pixel. They're all locally connected, and they're all so, you know, and your pipeline just runs along this. The video runs in one face of this cube and it comes out the other face, and this is sort of an obvious use. Let's think about massively connected ones. These are algorithms that have a huge graph structure they work on. So, you know, sort of paradigmatic of that would be let's say page rank. One way to think about page rank is you've got this huge graph and you want to figure out, you know, where people end up, what the stationary distribution is, and so, you know, is there a way we've got lots and lots of connections, we've got lots and lots of nodes to essentially embed the Internet on this machine and a physical link on the machine is like a logical link and so people are sort of close together, and we can just use the massive connections of the machine to implement page rate. So the first thing we have to think about is how do we take this graph description and embed it inside this system? Okay. We can only stream it in through one phase and I've got to sort of get this completely distributed. The nodes have limited memory, so I can't remember the whole graph as it's coming in. I'm limiting my IO to the surface, and I don't want to spend as much time sort of preprocessing the embedding as I do running the algorithm. So we abandon this idea of really trying to take advantage of the physical lengths and just use the fact that you don't have to spend many hops to get from any one place to another. Basically we said well, how bad would it be if we take every URL and hash to some XYZ location and then that's where you put that page. So then the links are directly encoded or I want to follow a link I just calculate that hash and then I go over to that place. And so this is how bad that is. So one of the things you have to think about is because it's not in a direct lattice you might recalculate a hash and there's no node at that location. And you don't know how to do -- you know, what to do with that. So what we basically do is we say, okay, here's -- we calculate this hash and then we try and get to that node and we are going to try for a certain number of hops let's say 20 hops, so I'll make the TTO 20. Okay. And then we just say wherever we ended up, that's the actual node that's going to take this. So like any sort of hash function, you know, you've got to actually check to see whether the node has the actual URL or not. Then later on in the algorithm we want to go to this node, we say I want to go to XYZ, but for this URL. And so as you're going, you're searching for that particular URL, not just that particular location because the location might not exist. Okay. And you can see that this is the mean error in the number of diameters away we are from where we hash to and so, you know, lots and lots of these pages are, you know, two or three diameters away, there's actually a whole bunch at zero. This is a standard deviation. You can see they're under zero, so that double make any sense. But some of them are pretty far away, so you probably want to do this preprocessing stuff pretty long. You know, maybe you do 50 hops or 100 hops, so you can get closer and closer to where you're actually supposed to be. Okay. And then this algorithm is sort of is very simple on this kind of architecture that's so parallel. So the way page rank works is you have these random surfers and you want to see who ends up where, right? And so basically with some at every step in the algorithm, we start out with a certain number of surfers and so you move to some neighbor, meaning you follow some outgoing link on some page with some probability of one minus gamma, or you just jump to some random place with probability grant gamma. So that we don't have to actually jump to random places. We probably could. It's easier to just kill all the other nodes that we have and then rematerialize a certain number of nodes that will be equivalent of them randomly jumping to you. Okay. And so, you know, this is how we go to a random node in the graph. Okay. And so basically it's a fairly simple algorithm and if you want to discuss the bound on this algorithm of how far away from actual page length, I can do that offline, but I'm running really late. So that's basically what I wanted to talk to you about today. And you know, what we're thinking about mostly at this point is how we can program this thing, make sure the basic physical principles make sense, and we're going to start thinking more about how to build it, depending on whether I can get a student that's really interested in that. And so that's what we're trying to work on. I should say that right now we're sort of improving the simulator for larger systems and we're actually implementing the page rank. We have various of these routing protocols implemented on our simulator so we can actually study them and we're thinking more now about the actual node development. One of the things I'd like to do, and this is for multiple reasons, is build a thousand node machine that actually uses this -- it wouldn't be nano scale these wires, but uses the same basic principal just that we can actually have a really physical system that we can show what we're doing. It's sort of an interesting price point and it turns out that this kind of machine, this sort of very cheap machine, you notice this four gigabytes of flesh, that's because Dave Anderson has some interesting ideas they have to use a machine like that for doing high query throughput processing. So very economical in some sense in terms of the amount of power and stuff like that that's required. So that is what we're up to. Sorry I took so long. (Applause). >> Seth Copen Goldstein: Are there any questions the people held? Yes. >>: So do you feel that it's better to sort of I would say non deterministic storage in terms of similar to our brain the information is (inaudible) distributed we don't know where a particular (inaudible) example that's kind of what we are using which makes sense, but of course (inaudible) in this case is that sometimes our re-call is extremely slow, right, because we're kind of doing this, although it's (inaudible) tremendous amount of information. Right? So do you feel that this is kind of a trade-off you have to make, this architecture, or is it -- does it make sense to introduce deterministic storage in order to speed up access? What's your take? >> Seth Copen Goldstein: So my take on this is that the hashing thing is really easy for us to do and understand, that's why we're doing it first. But it's not the right way to do it. That's just my gut feeling. I don't know, maybe it is. It's so easy to implement. I don't know how much we're going to actually pay for this versus deterministically going to some node and looking it up. Because I don't know how we get back which nodes are where exactly, given the sort of -- I mean, you can see we're handicapped by the memory limitation, in fact the machine is on balance. Or maybe that's something we need to address in the architecturally. But right now I've been pressing hard to make all the sort of algorithms memory impoverished. >>: (Inaudible) because this really seems to get back to the same issue in your massive (inaudible) machines which is do you want locality and speed of access or would you rather have this tremendous (inaudible) memory but at the same time (inaudible) different here but it still kind of has that feel. >> Seth Copen Goldstein: Yeah. For me it is just a massively, massively parallel machine. It's a different kind of space, right? You're going to want to harness the network volume, the message volume that you have in this machine. I don't know exactly what the best way to do that is. >>: You want to use the (inaudible). >> Seth Copen Goldstein: I don't make any claim, even though I use the word brain a million times, that this is anything at all like how the brain works. And generally I'm philosophically opposed to sort of biomimetic approaches. In other words, there's no ( birds that fly at mach 2. Nature just doesn't go there. So I'm interested in that uninteresting space. We can borrow and be influenced by it, but I wouldn't try to copy the structure. So I mean, the research issues there that I'm trying to stochastic assembly, you know, what does that mean, you know, can we harness it, is it useful? Yes? >>: I know you're not trying to (inaudible) this is all stochastic, (inaudible) data connections. If you take two brains and how much of it, of -- are they stochastic. >> Seth Copen Goldstein: Really good question I do not know the answers to. Yeah, I think there's certainly some areas that aren't that stochastic, like the visual system is pretty much the same to everybody. I mean, the fall -- I mean obviously not identical, but the general architecture certainly. I don't know how if you like took a million brains and you tried to do a model of where you would expect the nodes to be, what that sort of distribution would be, would it be tight or loose? That would be interesting. I'm sure people have looked at it. Actually, I don't know if people have looked at that. Probably just ->>: Is this some general assumption of that, I think, but it's ->> Seth Copen Goldstein: Has it is been tested? >>: I don't know how (inaudible) like in brain surgeries, for instance. You know, they'll go, they'll look at a person's brain and most of them are pretty similar ->> Seth Copen Goldstein: Well, certainly we know that the high level architecture is very, very close. >>: And they're actually going to do something, okay, let's go probe this and see what's really going on there. You know, so it's a question I think of how much is influenced by, you know ->> Seth Copen Goldstein: We all have different fingerprints. Is that stochastic or not? Right? We all have fingerprints. I mean there's probably no identical places where the wires are. That's something a little bit bigger than single neurons is a lot of similarities. >>: Let's take that to another level. One of the things I looked at when I was in college was basically disconnection or very young children that have epilepsy, very severe epilepsy or damage to one part of their brain, they could actually go in and remove an entire hemisphere, okay. And you know your brain's crossed over, so you'd think they'd lose motor function. If they do this early enough, that maps to the other hemisphere and essentially they notice very little cognitive deficit. So it's -- there's a basic layer that's laid down during development, but it can be highly influenced during development and after childhood. >> Seth Copen Goldstein: Yes and so development of the brain I think is not -childbirth is not a good place to draw the demarcation there, right? So that's the other issue. >>: Exactly. Right. Yeah. As they -- as the child gross up, there's a very class particular element there. >> Seth Copen Goldstein: So I'm going to make a shameless plug for my talk tomorrow. I'm going to talk about programmable matter and this is just the video some people put together. Imagine that this is each one of those also particles is a processor. So they're doing some 3D modelling here. But I'm happy to answer questions about the brain in the bottle. Yes? >>: Why did you go through 3D thing to find -- what was the (inaudible) 3D (inaudible) let's say something (inaudible)? >> Seth Copen Goldstein: Yes. I mean, there's -- again, my vent is trying to understand stochastic processing. But why not take the whole damn wafer and make tiny little processors, have lots of wires between everything on the wafer and just make a stack of these things, right, and then pump fluid through it. It seems like -- I mean that would be interesting and maybe that is the right architecture, but I don't know how you make connections between the wafers. >>: Well, I'm thinking (inaudible) you throw them down in a dish, rather than (inaudible). >> Seth Copen Goldstein: Oh, well, the cube route is better than the square root, that's what, for the 3D. >>: On a similar line, why these sphere things? Like you could just have a whole bunch of flat things that are just thrown in a pile that are kind of like ->> Seth Copen Goldstein: How do you get that wire stuff. >>: Kind of all meshy. >> Seth Copen Goldstein: So it's a square dye with the wires attached. They're maybe like a long strip, a bunch of long strips so they kind of fall in all kinds of directions, not just flat. And then I don't know what the wires. >>: (Inaudible). >>: Well, you could. >> Seth Copen Goldstein: You have fewer wires and there's wiring along the thing. >>: (Inaudible). That's an interesting idea. Yeah. >> Seth Copen Goldstein: I mean, here's the way I'm thinking about it is that I want the processors, so partly it's this, you know, this video, this describes why it is that I want the spheres because if I can get -- if I can get this thing to work and it steps aside like fun building a billion of these then this Claytronics stuff will happen by magic. So I have an ulterior motive. But the issue that I've been thinking about with the -- all right. So with any 2D thing, I don't know how I get the wiring in 3D, and I think I want to get that cube root advantage. And I mean the idea of making this strip with a like maybe it curls up a little bit, you drop the strip, that has -- that's sort of an interesting idea. But I want the nodes to be really simple and think about them as a synapse. >>: Are these spheres, when they curl up, are they actually strong enough to support the weight of the things above them or will they smoosh down ->> Seth Copen Goldstein: Well, the process is a little more complicated than that. You can think of them as glass beads. So we're going to do something that actually make it solid, so this fluid is not running through it, for instance. >>: The fluid is going to give buoyancy and support, though, too, I would think. >> Seth Copen Goldstein: Yeah. But in -- I mean, it's like a piece of glass. A piece of ->>: So (inaudible). >> Seth Copen Goldstein: And actually we're not thinking about curling like this, we're thinking about like taking a Mercader map projection so when you fold it up, it's actually almost 100 percent of the service use. That was just an initial. I'll talk about that more tomorrow. >>: (Inaudible) Q2 funding. >> Seth Copen Goldstein: I'm having a dry run of getting funding right now. So I don't know. >>: Well, what's your scaling, what you think you need to to get that (inaudible). >> Seth Copen Goldstein: Oh, I think building a sound -- you know, almost everyone in the United States is from Missouri, basically. Yeah. I think building this machine would be very useful, but I think maybe -- I don't know. I might not be the right guy to fund the next step if it's not an architecture of it, it might be a chemist, for instance. But we, you know, I think also as we can show, at least in simulation that the algorithms are interesting, then you know, that's also part of the next step. So I think another year of simulation and algorithm development was fruitful. Meanwhile there's this thing going on with the CCC, so. And we have enough data to motivate that. And so that's the important thing. That was sort of the important thing. So it's a very indirect kind of process. >>: There's no (inaudible) if you could (inaudible) breaking cryptography, you would (inaudible). >> Seth Copen Goldstein: I don't know how much connectivity you need. You just need massive parallels. And on the other hand, they just want to dump those things in a big box, locally connected, probably good enough. It will be much easier to build. >> Rico Malvar: Okay. So this is (inaudible) around for the next couple of days. He's really busy with (inaudible). I'm sure he'll be open to dialogue at a time, he's very passionate about his work, he gets fascinated with. So thanks very much for coming in to the. Thanks. (Applause)