Autonomic Computing Center

The NSF has announced a new center for autonomic computing. You can check out some of their presentations. The NSF blurb tells us that

An autonomic computing system is any system that is designed to function with minimal management even as conditions and users change, according to Dr. José Fortes, director of the new center at the CAC's University of Florida site. Autonomic computing algorithms, Fortes says, can greatly reduce the growing costs of administrating computer systems and protect against loss of service in systems performing critical functions, including those managing power grids, stock markets, and hospital networks. They can also greatly improve the speed and efficiency of complex systems that utilize a large number of hardware and software components. Autonomic behaviors are collectively known as "self-*" behaviors. "For instance, a system that stores secure information could use a self-protecting algorithm to detect and mount a defense against attacks," says Dr. Salim Hariri, director of the CAC's University of Arizona site. Similarly, a system that provides critical services could use a self-healing algorithm to identify and recover from disruptions triggered by hardware and/or software failures, Hariri says.

Of course, the idea of writing software that adapts to is not new: a load-balancing router for web servers adapts to varying user loads and computer crashes, a RAID5 system adapts to read-write errors and hard drive crashes. But, they seems to propose to build even more self monitoring software.

Multiagent systems provide a unique perspective to this system design problem. We can view each computer or system as a selfish agent trying to maximize its local utility then develop negotiation protocols for the agents to come to agreements about resource utilization. The system manager would then be left with the job of assigning utility values. For example, he could say that fast response time to the users is more important that volume of users (if, say, he wants to provide all users of his website with either a good experience or a 500 error page, instead of giving everyone a bad experience). The servers would then negotiate their bandwidth and database usage accordingly.

jmvidal – 16 February, 2008 – 13:39