1. A method for clustering node devices for accomplishing a task, comprising: automatically dynamically repartitioning a set of node devices within a communication network into a plurality of subnets as node devices join and leave the set, using a partitioning algorithm based at least a distance function of at least one node device characteristic, each subnet having a communication node device within for communicating at least control information and task data with respective communication node devices of other respective subnets, the communication node device within the each subnet being selected from among node devices within the same subnet to control each node device within the subnet, communicating control information from the each node device within the subnet to the communication node device of the subnet in which it is partitioned, and designating a set of preferred node devices for allocation of portions of a task, wherein the designated set is dependent on both the partitioning and the task.