[i/s Home] [Distribution] [Search] [Back Issues] [Publications] [Feedback]


 

i/s Back Issues


Volume 11

No. 6   February 1996

Out with the Old: AI Lab Group Plans to Reinvent Computers Lee Ridgway

General-purpose computers, multi-user as well as desktop, have 
served well over the past couple of decades. A single computer can 
perform a multitude of functions, and even run applications not yet 
conceived at the time of its design. However, computers have not 
been designed to adapt to today's environment of rapid, continual 
change. 

In current computing models, software and hardware are viewed as 
static entities, relatively unchanging once installed. For software or 
hardware to take advantage of even incremental technology 
advances usually requires manual reprogramming, or upgrading or 
replacement of software or hardware. Given the pace of technological 
change, there simply aren't enough skilled human resources 
available to adapt systems and programs.

Andre DeHon, a Ph.D. candidate in EECS, is part of a research group, 
headed by Thomas Knight, Jr., in MIT's AI Lab. This group thinks the 
current model is outdated, and their goal is to reinvent computing. 
They see the current model as inhibiting innovation and acceptance 
of new technology because of the high cost of human resources 
needed to implement it. This, in turn, forces consumers to accept 
standardized solutions because few can afford software hand-
tailored to their needs.

DeHon and his colleagues are developing what they refer to as 
"adaptable computing." In a nutshell, this means a system that is 
engineered to adapt - on its own - to changes in technology and in 
usage, so that system resources are optimized. Three components 
form the basis for adaptable computing.

Global Cooperative Computing 
This component exploits the National Information Infrastructure and 
World Wide Web to deploy new software and acquire feedback on 
use. Software on a computer is linked to standard home repositories 
on the advanced network. Throughout a program's lifetime, the 
computing system uses this rendezvous point to communicate usage 
experience, program improvements, and program variations.

Quasistatic Computing 
"Quasistatic" describes a computational model, at the compiler level, 
in which applications and systems evolve, incorporating new 
technologies provided via the network, tracking shifts in software 
usage, and adapting to new hardware technologies. In simple terms, 
quasistatic computing automates the optimization of the entire 
system through changes in code.

DPGA-coupled Microprocessor 
The third component of adaptable computers is the Dynamically 
Programmable Gate Array (DPGA) - a type of chip that lets hardware 
adapt to application and system requirements. The DPGA is a rapidly 
reconfigurable logic array that can be reprogrammed, in system, far 
faster than conventional programmable arrays. DeHon foresees that 
chips into which DPGA technology is tightly integrated will be used 
as key computational building blocks in almost all kinds of 
computing systems. In a general-purpose workstation, for example, 
each application would be able to reconfigure the DPGA for 
optimal performance.

Closing the Gap
DeHon makes the point that today there is often a gap between a 
computer's capabilities and the level of  performance that software 
extracts from it. For example, in just about every maker's line of 
desktop computers there are huge differences in costs and 
configurations of various models, yet the same software runs on all 
models. The question is how to take full advantage of machine 
resources, especially on high- and low-end models.

For the layperson, DeHon offers the following explanations of how 
adaptable computing might work.

A "system manager" software client installed on your desktop 
computer monitors how you are using the machine and network. Say 
you're running a database program on your machine to work with 
files on the network. As you work, the system manager goes out to 
the network on its own to measure traffic and speed, and then makes 
adjustments to accommodate varying network or modem speeds. It 
tries to match the overall performance needed with the resources 
available. If the network is busy and slow, then the manager will do 
more caching in your machine's memory; if the network 
is relatively fast and free, little local cache may be needed.

In a second scenario, a program or process registers with your 
system's "compiler manager." Again, the compiler manager is 
constantly analyzing the situation to see what in the program runs 
and how often, looking to find out where timing can be optimized. 
The manager holds this information for the next time this program is 
run; it is also making decisions, based on feedback heuristics, on how 
the code can be transformed to make it run more efficiently and 
faster. From these decisions, the compiler manager may generate a 
new piece of code; when this particular program is next run, the 
manager will again analyze performance. All of this happens on the 
local machine, but the information on how the local machine was 
optimized is sent by the manager to a central server related to the 
program in question. Other machines share the results of their 
compiler managers through the server. The server compares these 
results and the different code transformations, then serves out the 
best solution for the given situation.

Prototypes and Beyond
The research into adaptable computing is still in the early stages. 
DeHon hopes that within two to three years his group can move 
beyond a small prototype in the research environment. It may take 
five to ten years for the idea of background recompilation to be 
accepted. DeHon feels that the benefits shown by experiments in the 
new adaptable computing model will be catalysts to further research, 
development, and finally, market interest. 
 
For more information on the Reinventing Computing project, 
including pointers to several papers by DeHon and his colleagues, 
open the URL
 
http://www.ai.mit.edu/projects/transit/rc_home_page.html 

i/s Home |  i/s Back Issues |  Volume 11 |  No. 6