As we head towards personal computers with thousands of ongoing tasks of various sorts and millions of data stored in hundreds of gigabytes of storage, explicitly programming all the resource trade-offs between them will gradually become impossible: Ultimately only a resource currency intelligible to them all will be able to mediate all the needed interactions smoothly and sensibly.
For example, in an Internet-mediated distributed computing context, it is inevitable that a great deal of local caching will be done, both of values available elsewhere on the net, and of values which can be recomputed at some expense. When we run short of storage, how do we decide which cached values to discard?
Primitive FIFO schemes (say) can be used, but only at the expense of wasting a fair amount of compute time and storage space, neither of which will ever be as plentiful as we would like.
A much more flexible approach is to establish an internal resource currency -- say, compute cycles -- and then let current and proposed uses of resources bid against each other for resources in units of this currency.
This provides a systematic, decentralized way of deciding whether to uninstall seldom-used libraries in order to free up more cache space, or perhaps whether to divert compute cycles from sound playback into archive compression or network bandwidth from security checks into library download.
Once implemented, it means a computer which never has idle cycles or storage: There will always be some available task with a nonzero value attached to it which can soak up the surplus storage, be it only prefetching the web pages most likely to be of interest to the system owner in the near future, and precomputing the results of queries likely to be made shortly.
Link a number of such systems together by establishing exchange rates, and you have an online compute economy of machines autonomously buying and selling resources to each other according to fluctuating local surpluses: A virtual bazaar of machines muttering "I've got a midnight deadline and need render cycles BAD here -- who's selling?" vs "I'm just sitting chugging on RC-160 tonight -- what's a cycle worth to you?" to each other. Perhaps eventually the compute currencies become interconvertable with dollars and Euros? All values are tradable in the end, given sufficient volume and interest.
Someone needs to devote some serious time to prototyping such a system and accumulating practical experience with it before we can think of mainstreaming it, and we don't have all that long before we'll need a maintreamable implementation of it. Anyone want to take this one on?
Go to the first, previous, next, last section, table of contents.