Autonomous mobile programs (AMPs) combine knowledge of their own characteristics and requirements, and of the resources available to them in a multi-processor environment, to move from processor to processor to optimise requirements satisfaction. AMPs may be further generalised through autonomous mobile skeletons, which abstract over both computation and decision making, and their use further simplified by automatic cost model construction. We have been exploring AMPs which combine their own time cost models with cluster load information to minimise execution time, taking into account the cost of coordination, as well as of computation and communication. We have built AMPs and autonomous mobile skeletons in JoCaml and JavaGo, and are currently developing an automatic cost modeller for autonomous mobile skeleton arguments in JoCaml. Results demonstrate that expected individual and expected mobile behaviours are achieved in dynamically changing clusters, and that AMPs can complete more quickly than their static equivalents.
This is joint work with Deng Xiao Yan and Phil Trinder.