| |
i/s Back IssuesVolume 11
No. 6 Out with the Old: AI Lab Group Plans to Reinvent Computers Lee RidgwayGeneral-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 |