Rethinking Computer Design For an Optical World
holy_calamity writes "Technology Review looks at how some traditions of computer architecture are up for grabs with the arrival of optical interconnects like Intel's 50Gbps link unveiled last week. The extra speed makes it possible to consider moving a server's RAM a few feet from its CPUs to aid cooling and moving memory and computational power to peripherals like laptop docks and monitors."
The extra speed makes it possible to consider moving a server's RAM a few feet from its CPUs to aid cooling and moving memory and computational power to peripherals like laptop docks and monitors
Why would I want to pay for computational power in my monitor? When I buy a monitor I want it to do it's job - show the best quality images for the cheapest cost possible. A good monitor should last much longer than the associated computer driving it (unless we suddenly have a huge increase in the rate of development of display technology). Why would I want added cost in my monitor that will only make it out of date more quickly?
moving memory and computational power to peripherals like ... monitors.
They mean ever more complicated DRM. Like sending the raw stream to the monitor to be decoded there.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
Same goes for optical interconnect to memory: the flood may be Biblical when it arrives, but while waiting for it to arrive the processor isn't doing anything useful.
Now, peripherals are another matter. But if bandwidth were all it took, we'd be using 10 Gb/s PCI Express for memory right now.
Lacking <sarcasm> tags,
Without factoring in speed of light drops due to index of refraction changes, at a distance of 1 meter you're looking at latencies of 7 nanoseconds just for travel time. The bandwidth may be decent but the latency is going to be an issue for any significant distance.
They want their rats nest of cables back.
The extra speed makes it possible to consider moving a server's RAM a few feet from its CPUs to aid cooling and moving memory and computational power to peripherals like laptop docks and monitors.
Have gnu, will travel.
because this appears to be another aspect of Wheel of Reincarnation.
I'm old enough to remember a time where a computer was a series of bitty boxes tied together with cables. Then someone decided to integrate a lot of the stuff onto a motherboard, with just loosely-related stuff connected by cables to the motherboard. Then the loosely-related stuff got put into cards that plugged into the motherboard. Then that stuff just got integrated into the motherboard.
And now it's being reborn as stuff in bitty boxes connected together with cables.
I wonder what enlightement will be like, because karma appears to have been a bitch.
Welcome to the Panopticon. Used to be a prison, now it's your home.
It would allow you to use components an a more modular way, especially around an office. If you're not big enough (of a company) to have dedicated rendering/encoding servers, you could move the GPU around depending on who's currently doing the work that requires it. Even on a more casual basis, you could have a bunch of laptops with mid-range GPUs, and have an external GPU for whomever if gaming at the moment. Just like people take turns in a household with the home-theater rig in the living room -- you don't need to install a huge LCD + amp + speaker system in every room, you just need to take turns.
Entomologically speaking, the spider is not a bug, it's a feature.
By my understanding, it's not so much the travel time as the decoding/switching/other electronic time. As one example, consider the switching time of a transistor/photodetector. The gate must collect enough energy to switch from "off" to "on". Increased speed means having fewer electrons enter the gate. Higher energy per electron means raising the voltage. That's why overclocking often involves fiddling with voltages. Unfortunately, with more voltage comes more induction, breakdown, and other headaches I don't know enough about to list.
In contrast, light is much simpler to work with. You can make a light beam brighter without affecting other beams much. There's little chance of a beam breaking through its cable. We can send higher energies to gates with ease. Higher energy means less time to switch, and faster operation.
Note that I am not a physicist, and not much of an electrical engineer. I may be entirely wrong.
You do not have a moral or legal right to do absolutely anything you want.
IANAEE (I Am Not An Electrical Engineer) Pardon my possible stupidity, but what was keeping us from putting the RAM a few feet from the CPU? The way I understand it, electrons don't move much slower than light. Of course you might lose current.
Yes and no. In a vacuum, electrons aren't terribly useful unless you're driving them with a particle accelerator. In wires, electrons aren't really doing the work anyway: electrical signals effectively travel as waves in the dielectric surrounding the wires and in particular between signal pairs. In that case, the signal travels at around half the speed of light in a vacuum (faster if you use expensive insulation like Teflon, slower for other plastics.)
Light in optical fiber is also slowed by the refraction coefficient of the material and by path-length extension in multimode fiber. However, on balance it's a bit faster.
The real gotcha is that electrical signals at outrageous bandwidths suffer from some really horrible losses due to both skin effects on the wires and dielectric losses in the insulation. At 50 Gb/s and 30 cm, you're doing well to detect the resulting signal, never mind decode it. Worse, the losses are highly frequency-dependent, so you have to do all sorts of ugly things to pre- and post-condition the signal to make it usable. Some of this can be overcome by cranking up the transmit power, but then you get into that property of wires known as "antenna." All of that processing at both ends takes time, too.
Just not worth doing, generally.
Likewise, putting a bunch of streams out in parallel requires all sorts of cleverness to put the separate lanes together again after transmission skew. A single optical stream is much easier to use, sort of like the communications equivalent of Amdahl's Law.
Lacking <sarcasm> tags,
1. The Internet already does that. How much of the experience today is processed partly in a faraway datacenter? I know that even users like me use the Internet as a method to pull things away from each other so each part lives where it makes sense. I have a powerful desktop at home that I RDP into from whatever portable device I happen to be toting. I don't worry about my laptop getting stolen, the experience is pretty fast (faster than a netbook's local CPU, for sure), and I get to mix-and-match my portable hardware.
2. This is going to have much more use at a datacenter than it will in a server closet or a home. I can already fit more RAM, CPU, and Storage than I need in a typical desktop. Most small businesses run fine on one or two servers. Datacenters, on the other hand, could really take advantage to commoditizing RAM and CPU, like they have with SANs in storage. No more 'host box/VM', it's time to take the next step and pool RAM and CPUs, and provision them to VMs through some sort of software/hardware control fabric. I think Cisco already knows this, which is why they're moving to building servers.
Imagine the datacenter of the future:
Instead of discrete PC servers with multiple VM guests each and CAT-6 LAN plugs, you have a pool of RAM, a pool of storage, and a pool of CPUs controlled by some sort of control interface. Instead of plugging the NIC on the back of it into your network equipment, the control interface is -built into- the network core, wired right into the backplane of your LAN. Extra CPU power that's not actually being used will be put to work by the control fabric compressing and deduplicating stuff in storage and RAM. The control interface will 'learn' that some types of data are better served off of the faster set of drives, or in unused RAM allocated as storage. 'Cold' data would slowly migrate to cheap, redundant arrays.
Guest systems will change, too. No longer will VMs do their own disk caching. It makes sense for a regular server to put all its own RAM to use, but on a system like this, it makes sense to let the 'host fabric' handle the intelligent stuff. Guest operating systems will likely evolve to speak directly to the 'host' VFS to avoid I/O penalties, and to communicate needs for more or less resources (why should a VM that never uses more than 1GB RAM and averages two threads always be allocated 4GB and eight threads?).
"Sometimes, I think Trent just needs a cup of hot chocolate and a blankie." -Tori Amos on Nine Inch Nails
In 30 years I'll suggest integrated optical motherboards.
I like the mention of putting memory and such in a dock. So you have 8GB RAM in your laptop on the go, but when you get home or to the office and dock you have 32GB. You could also have your hot and power hungry CAD / gaming GPU in the dock and a lesser on built in.
Note that I am not a physicist, and not much of an electrical engineer. I may be entirely wrong.
I'm not qualified enough to say whether you're right or wrong, but you stated your case eloquently and if there's one thing that Hollywood, politics, and Star Trek have taught me, sounding right is more important than being right.
"Never let your sense of morals prevent you from doing what is right" - Salvor Hardin
Huzzah for the Internet-age realist and/or snarker. Nice complement, back-handed or otherwise.
The CB App. What's your 20?
almost exactly
These English units sound great, where do I sign up?
"Sacrifice for the good of The State" - The State
No known process allows for information transfer at speeds faster than light. Including quantum entanglement. Stop watching so much science fiction and go read up on what it actually does instead.
CPUs have high speed cache that is faster than the mainboard RAM for high speed processing on a set of data, and swap the cache to/from RAM as necessary (kind of like how you page RAM to your hard drive when you run out of RAM).
Such a small cache would be useless for GPUs though, so they need faster RAM to read the massive amounts of texture/vertex/shader/whatever data they have as quick as possible. They also benefit more from stuff like RAM that is optimised for high sequential read speeds, so it does make sense to use RAM that has been specially designed for GPUs if you actually care about graphics performance (I doubt most Mac Mini users do).
which is totally what she said
Or made like LEGO Blocks. Need a quad core CPU? Go buy one and snap it onto your others.
Or, as our esteemed Professor Farnsworth remarked:
Yes, yes, anything with that many big words could easily be the solution.
We will bankrupt ourselves in the vain search for absolute security. -- Dwight D. Eisenhower
Now admittedly electricity usually only travels at about 0.5c, IIRC, but I think she was giving the speed-of-light delay, not the speed-of-electrons delay.
Don't confuse propagation velocity of electromagnetic waves, which depends on dielectric constant and is around 0.8c in normal conductors, with drift velocity of electrons which is maybe a meter per hour.
http://en.wikipedia.org/wiki/Speed_of_electricity
http://en.wikipedia.org/wiki/Drift_velocity
http://en.wikipedia.org/wiki/Velocity_of_propagation
Electrons really move slowly in metal. In a vacuum tube like a CRT, pretty quick.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
Most people don't want to mess around inside a computer case, just like most people don't want to mess with the engine of their car or truck, or with the insides of their televisions, etc.
Such a modular system would be similar to huge LEGO bricks, nothing to open up, just connect the bricks together. Hopefully they would make the modules in standard sizes and allow multiples of that standard size. A CPU module could be 2x2x2 units, optical drives could be 2x1x2, etc.
The system could allow to connect to at least four faces, so we don't end with with very tall or very wide stacks. Proper ventilation would be part of the standard unit size (you need more heatsinking than the aluminium casing allows? Make your product one unit bigger and put ventilation holes in the empty space). A standard material such as aluminium could be used so that machining/extruding could be used and would allow the modules to dissipate heat.
No, the lag would be stupid.
No the lag would not be stupid, just imperceptible. No, really. A ten meter cable will delay data sent to a Remote GPU (tm) by fifty nanoseconds. Not milliseconds. Not microseconds. Nanoseconds. You can't perceive that. Not in your wildest, most fevered gamer dreams.
Contemporary GPUs couldn't accomplish this because they frequently interact with the host CPU in a synchronous manner. I'm guessing that is the point of the "rethinking computer design" topic.
Not exactly what you had in mind, but I've already seen a lego like modular computer in the embedded hobbyist market.
It is mostly networking and user interface elements that can be stacked, not gpu's or cpu's.
http://www.buglabs.net/products
Uh yeah, this isn't the first time around. The computer industry is constantly rediscovering previous designs. Timesharing, batch jobs, client-server, intergrated/distributed processing, etc, etc. Nothing new under the sun, just smaller and faster is all.
I wonder what enlightement will be like, because karma appears to have been a bitch.
It's called retirement - you get out of the loop and eventually you go out like a the flame of a candle.
When information is power, privacy is freedom.
I recommend reading the programmer's guide to a modern graphics architecture; Caching is essential to them.
Modern GPU architectures face the same clock speed/bus speed disparity and memory latency problems as CPUs and have taken their response much farther. They have several thousand registers per core and an L1 size & speed cache per processor group. Cache misses carry a typical penalty of several hundred cycles.