Glenn Edens, director of Sun Microsystems Laboratories, stood in front of an audience gathered at the Computer History Museum in Mountain View, California, for the Lab's open house. With his gray beard and swath of gray hair, Edens looked the part-a lab director from central casting. Economically, Sun as a company has been in the doldrums for a few years now, and Edens wasn't about to pretend otherwise. Looking over the room, he candidly observed that "rumors of our death are greatly exaggerated."
The proof of that statement was all around him. As Edens pointed out, Sun is one of the last independent technology innovators, and Sun Labs is the place where much of that innovation gets done. The industrial research lab is now 13 years old, focusing on difficult technical problems brought to its attention by Sun customers. Its focus-like every corporate industrial laboratory-is on technology transfer: turning invention ideas into products. But Edens says that Sun's approach differs some, at least in its funding. "Most laboratories suck up funds that might have gone to the business units," he said. Sun Labs is funded by corporate treasury dollars and actually provides funding to the business units where its inventions go.
Sun Labs employs five of the 12 Sun Fellows-the engineering gods that comprise the top intellectual capital of the company: Jim Mitchell, Bob Sproull, Guy Steele, and Ivan Sutherland. The fifth, James Gosling, Java's principal creator, is currently "on loan" as chief technology officer of Sun's Developer Products group. (A photo on Gosling's blog shows him jumping off a boat into some unnamed tropical ocean after JavaOne: "No internet access. No cell phones. No newspapers. Just a sailboat, friends and family. Too cool.")
Edens laid out some of the challenges of doing engineering in an industrial lab. Labs can really only do two things: create intellectual property that either leads to new products or replaces existing products with something else-thereby "pissing off" the people whose product gets replaced. The company spends some of its time thinking about the unthinkable-trying to answer questions like: "What will be the next Java." And to keep things fresh, the lab purposely promotes a high turnover of people: the company's revolving door is a feature, not a bug. Some of those people were on hand in demonstrating products and ideas in a large room on the second floor of the museum. Here is some of what they had to say: Interval math-a replacement for floating point?
Bill Walster, a former professor of the University of Madison (Wisconsin) in applied statistics, is convinced that floating point algorithms are obsolete. He made that case later at two other companies-Control Data and Lockheed and the Oregon Advanced Research . But Sun Labs has given him the opportunity to become an evangelist for his cause-interval computation-full time. (So passionate is he on the topic that Sun has listed him in its "Contrarian Minds archive: http://
Walsh's theory is that interval computation is a better way to represent the real worlds of science and engineering. An interval is a continuous group of values, bounded at both ends by two machine-representable numbers-that is, the lower and upper bound with all of the values in between. Whereas machine-representable floating point numbers are inherently discrete, interval math assumes a continuum, and thus, is a better representation of how the world actually operates.
"When you are trying to solve a problem using floating point arithmetic-and you care about accuracy-it becomes a nightmare," Walster says. "With an interval, you get both a measure of accuracy and a continuum of numbers, giving you a connection between computing and the real world of mathematics, science and engineering that you simply don't get with floating point." Floating point numbers are still used in interval math. The standard for binary floating point arithmetic, IEEE 754-which is in every chip-includes interval arithmetic support: namely, the ability to round up or down when you are computing upper and lower bounds, so that those bounds can be machine-representable.
Walster says that BMW, Daimler-Chrysler, Airbus and General Motors are all using intervals-"but they won't talk about it because it's a competitive advantage," Walster says. Sun is applying the technique to simulate protein folding-a notoriously computationally intensive application. "Most people have looked at formulating this problem in terms of the location of atoms in three-dimensional space. But it turns out that the more natural way to formulate the problem is in terms of distances between pairs of atoms. The problem is that not all possible distances between atoms are physically realizable. We've got a way of imposing constraints that make the problem solvable, and the whole approach depends on computing with intervals.
Interval math has been around since the 1950s, but Walster's belief that it will replace floating point math is still a radical notion. "Sun picked it up because I've been beating on them to pick it up-because I believe that intervals will be the new paradigm in computing, replacing floating point. If that's true, the only speed that is going to matter is interval speed." He says the opportunity for Sun is to support interval math in its hardware, solver libraries, and compilers-specifically, those languages that support user-defined types and operator overloading. Candidate languages include C++, newer versions of Fortran and Ada (but not Java). Walster says that while compiler support is a good first step, ideally, interval math needs direct implementation within the language itself.
Project Looking Glass: a 3D desktop
Hideya Kawahara, senior staff engineer, puts a window up on a screen against a wallpaper image of the Grand Canyon. The Window is showing a video-some movie I don't recognize. Then he does something unexpected: he flips the window-so that the image appears reversed and upside down. Welcome to Sun's aptly named Project Looking Glass.
"The advantage is that we can watch a movie from the back side." I look at him like he's slightly crazy.
It turns out that the ability to rotate windows as if they were industrial design objects in a computer-aided design program does have some uses-especially if you've got a lot of windows open at once. Usually, too many just crowd the screen to the point of chaos. With Looking Glass, you can rotate each window slightly so that it appears to swing back like a door on a hinge. As it does so, its name appears on the "spine,"- like the title of a book on a shelf. "It doesn't occupy so much screen real estate, yet we can still see what's going on," Kawahara says. Kawahara rotated a set of windows, one which was playing a video segment. The content of all were still evident even though each occupied less space on the screen. The 3D theme carried through to the toolbar at the bottom of the screen, as well. Instead of the conventional set of buttons, Looking Glass has a shelf with a set of knickknack-like 3D icons.
Sun has announced versions of the Looking Glass desktop, which uses the Java 3D library, for both Linux and Solaris. And that may be its most critical value. At a time when Microsoft and Apple are trying to outdo each other with sexy client-side interfaces, this may be Linux's best shot at being cooler than both.
Farewell to solder: proximity communication
Sun Fellow Ivan Sutherland took a look at the standard printed circuit board and saw something amiss. Here were these chips, packing transistors into microscopically dense arrays. And yet the chips themselves were connected by comparatively crude soldered wires. Chip densities could grow ever bigger, but the solder "balls" couldn't possibly scale to the chip. Was there a better way? Sutherland thought so, at least in theory, and came up with an idea called proximity communication. If it works-and that's still uncertain-the technique would link chips using less power, in higher bandwidths, consuming smaller footprints. It would be an I/
Proximity communication relies on capacitance coupling, the transference of an electronic charge between conductors. The technique employs microscopic metal plates on each chip, each driven, or driven by, a group of transistors. The chips are stacked so that the plates come near to touching and signals are transferred. "This arrangement has some nice properties," says Ron Ho, a senior staff engineer at the Labs. When a driving transistor 'wiggles" one plate with voltage, the signal jumps to the corresponding plate and from there, to the adjacent transistor. "It's very fast, and because the pads are extremely small, we can save power and pack them more tightly. The pads are under glass, so they are not exposed to the elements, and aren't subject to static discharge."
What's the catch? "The big problem is the alignments, affected by vibrations and heat," Ho says. "If the two pads get even slightly out of alignment-the tolerance is within tens of microns-they lose their overlap and no longer work." One technology the lab is testing detects misalignment using spatial frequencies, then compensates electronically. This approach uses a grid of transmitter pads for each receiver, enabling data to be "steered" back to its intended course.
The all-Java Squawk virtual machine
Nik Shaylor, senior staff software engineer, looked at Java virtual machines-and saw something missing. "I came to Sun because I like Java and I came to Java virtual machines because I like systems programming. But I never used any Java-I ended up writing everything in C and C++." Why, he asked, can't JVMs be written in Java?
"There are a bunch of technical problems," Shaylor admits. "But the big one is that C compilers don't know about compacting object memory. Shaylor says that every virtual machine has object memory, and every decent virtual machine has a compacting garbage collector to avoid memory fragmentation. When the collector does its job, objects are moved, requiring that the pointers to those objects be updated. "There's no automatic way of doing that," Shaylor says. "And so, generally speaking, every time you have a pointer in C, you must register it with the garbage collector, which results in extremely messy code." By contrast, a pointer in Java is updated automatically "because the garbage collector has a very intimate knowledge of the runtime structures of the Java program."
Shaylor says that, over time, the group has put together components of an all-Java virtual machine, including a verifier, a class collector, a garbage collector, compilers and dynamic assemblers. "What we've now got is an interpreter loop that looks more like the simulator for a microprocessor than a Java virtual machine-because there is no class loader or garbage loader. With anything more complex than the simple add, subtract, call, and return functions, we push out into Java code via an interpreter. Interpreters are slow, so we are now working on ways to compile our internal byte codes. That compiler could then be used at runtime to translate application code into machine code."
The result will be an "enormously more simple virtual machine to build and maintain. Virtual machines get stretched with new features, must support different operating systems and architectures. That means an onslaught of modifications with hundreds of programmers working on it-even the best code in the world can get hard to maintain." Shaylor hopes the technology will eventually be open source. "If you were to write a standard virtual machine from scratch, it would take 10 man-years at least-a big undertaking, bigger than we could manage. So we're hoping to influence the next generation of virtual machine designers-they're welcome to steal our ideas and incorporate them."
Java-based speech synthesis and recognition
"The time is now, just after 25 to 11 in the morning." The voice was clear-even a tad cultivated, considering it was coming out of a computer.
"That's our best-sounding voice," Willie Walker, principal investigator of the Lab's speech group. "It's a limited domain voice, good for speaking the time." The voice, in fact, is that of Alan Black of Carnegie-Mellon University-the associate research professor who generated a lot of the technology behind the system. Called Free TTS, the application was written entirely in Java and is available on the Web under an open source BSD license.
Walker also demonstrated a speech recognition system called Sphinx IV, another open source project written in collaboration with Carnegie Mellon. "The goal was to build a state-of-the-art speech platform in collaboration with speech experts." Speech recognition is nothing new, Walker says. "Companies like IBM and Microsoft have some of the best speech minds in the industry. The problem is that they've hidden these people behind intellectual property that discourages innovation. By having an open source speech platform, people don't have to develop the whole thing from the ground up to do research in this area. Walker says the Sphinx IV architecture is valuable because it is general-purpose, not optimized just for one specific task or hardware platform.
"The commercial engines tend to treat speech as a black box: where audio comes in and text comes out. But because we're completely open, you can do anything you want. Every step of the way, the application can look at the hypotheses being developed and, at least potentially, send the recognizer in a different direction, based on the results. People can't do that today with commercial products."
The combination of a generic architecture and Java would appear to run slower than a more specialized architecture written in C. But Walker says that Java has done very well. He points to a table comparing an earlier version of Sphinx written in C with the Java-built Sphinx IV. In most tasks, the Java version keeps up. "Java is not that slow. FreeTTS was based on Alan Black's "Flite" (festival-lite, a small, fast run-time synthesis engine designed primarily for embedded platforms). Flite was written in C and we transliterated that code to Java. Four weeks out of the gate, we had FreeTTS speaking, and generating audio data at the same speed as Flite. We then made a few algorithmic changes for Java that made it two times faster than Flite. And then, because Java makes it easy to do multi-threading, we put it on two CPUs and got it to run four times faster." What's going on? Walker says that the just-in-time compilers know the operating environment and can adapt better dynamically than an application compiled ahead of time.
Meeting Central: keeping it simple
Perhaps the classic technology lab project is collaboration-getting people in different parts of the country to work together. Typically, this has involved some kind of video feed, but Sun Labs has gone the other direction, removing the video component and simplifying the interface in hopes that the technology would actually be developed. Meeting Central is still a lab prototype with small deployment, but it is intriguing.
"We wanted this to work even for people on very small platforms." said Nicole Yankerlovich, principal investigator. "So many people are mobile these days that we wanted to focus on low bandwidth and minimum system requirements." The platform includes a voice-over-IP conference bridge with the demo using a combination of Sun Ray thin clients. Regular telephone service is also supported. Yankerlovich says that video is still important for large presentations broadcast to a lot of people, but not a big deal among colleagues in small meetings.
The screen gives visual clues without getting overly complicated. You can "raise" your hand for comment, and the software queues you up. You can say you agree with the speaker, or are confused-giving immediate feedback. Presentations are "stacked" on a screen as they might be on a table-any participant can add one. You can click on any, leaf through it, or synch the relevant one to the speaker's presentation-with the speakers pointer visible. Participants can add their own pointers to make a comment or ask a question. The conference bridge allows private conversations between participants-called the "whisper command"-without the speaker knowing. Participants can enter a number-to a cellphone, for example-and the audio with transfer to that phone, with a subset of the features available through the keypad.
"The design intent is to keep it simple," says Yankerlovich. "We looked at the complaints people have about collaborative tools, and complexity of the interface was a big one. We asked people who had actually attended a meeting with a collaborative tool whether they adopted that tool for their own meetings. Eighty percent of them said 'no.'" Inevitably, reasons had to do with the complexities of setting it up and learning the interface. "Our goal was that if you use the software as an attendee-you know everything there is to know about the system for your own meeting. So we tried include only features that explicitly make meetings more effective. For example, most software lets you know who is in control of the meeting. But people don't have trouble knowing that. If your boss is showing slides, you are not going to grab control from him and you don't need a software feature to enforce that."
A micro-business: Honeycomb Storage
Sun Labs sometimes establishes its own micro-business unit to market an idea that has turned to product. Such is the case for Project Honeycomb, a storage system that uses off-the-shelf parts and software-intended primarily to store images and audio, together with associated metadata descriptors. The micro-business unit strategy allowed Sun to move quickly and cheaply to market on a cutting edge, but unproven technology. The project started about a year ago within the lab as a kind of hybrid combining research and commerce. "We are an internal startup, with marketing and development people all o n one 25-person team-with the clear goal of generating revenue," says Mike Davis, senior product manager. "You can build any number of meta-data fields into the system and use a Google-like interface to query it."
Davis describes Honeycomb as the first programmable storage system on the market. "We allow you to bake any kind of meta-data scheme into the storage system itself-enabling you to issue queries to it directly." The architecture is a symmetric cluster of Opteron servers using SATA (Serial ATA) disks connected with Gigabit Ethernet. "When these queries are distributed across these servers, the cluster becomes a high-performance, failure-tolerant search machine. Davis says the breakthrough is in building a very large system of off-the-shelf parts that is "at least as reliable as comparable storage systems available today. We've driven all the costs out of the hardware that we can. Java code runs the whole system.
Implementing the obvious
The newest project on the floor was only about three weeks old, kludged together so quickly that when a Stanford researcher stopped by to ask for documentation, the two Sun labs guys could only shrug. The idea is simple: pass voice traffic to anywhere in the office. "Our telephone infrastructure is separate from computers-so what happens if our telephone switch is just one of the computers in our data center?" asks Sun labs researcher Steve Uhler. "It would give you complete control over the phone switch, and suddenly, things that were really hard to do get really easy."
Sun's Sun Ray technology can already move a working client session to any computer. Uhler's idea is to take that idea one idea further, moving the voice connection with it. Phone calls to the office phone would be automatically routed to an office extension or cell phone. A magnetic-striped card defines the office. Every time the card is inserted, the Sun Ray server contacts a Web server, associated with the local phone switch, which determines which phone is near the remote client. "With this setup, I can change calls on the fly based on a simple Web interface."
The infrastructure took just two days to assemble-Uhler downloaded the phone switch software from an open source project. That was just about enough to make the phone system act like an ordinary server, addressable with ordinary web applications. Otherwise, Uhler says, "the phones are a black box-I can't touch them."
Uhler's kludge does other neat tricks. He takes out a Linux-based PDA mounted with a WiFi card, looks up a number on the phonebook, and calls the desktop extension. No cellular connection needed: a voice-over-IP protocol on the IP?? communicates with the switch, which transfers the signal to a different VOIP protocol and routes it to the phone-which attaches via an Ethernet connection. Uhler doesn't necessarily think any of this is a breakthrough-but it hasn't been done and he sounds slightly incredulous. "I'm just implementing the obvious," he says.
In a world full of unobvious solutions to problems that might not exist, you could do worse.
|Sun Labs Facts and Figures||Founded: 1980||Locations: California, Massachusetts, and France (near Grenoble)||Core research group: 125-200 people, 80 percent with PhDs.||Interns: 20-50 per quarter||Patents: about 12 percent of Sun's 625||Technical reports published: 126 since 1991||Revenues earned by technology invented at the Labs: >$2 billion|