1. A processing system comprising: a plurality of computing hardware resources; a first autonomous computing agent implemented by at least one of the plurality of computing hardware resources; a second autonomous computing agent implemented by at least one of the plurality of computing hardware resources; and an input device for collecting raw data to be managed by at least one of the first and second computing agents; the first computing agent and the second computing agent operable to use processing information, including computing requirements for carrying out computing tasks and resource information including characteristics of at least one of the plurality of computing hardware resources, to collaboratively assign computing tasks to the plurality of resources according to a predetermined strategy each computing agent operable to optimize task allocation according to a task demand level by reconfiguring a single computing hardware resource if the task demand is at a first level and reconfiguring a plurality of computing hardware resources if the task demand is at a second level whereby the first level is lower than the second level; at least one of the first or second autonomous computing agents being able to monitor a task demand level and a number of the computing hardware resources and generate additional computing agents if the task demand level or the number of computing hardware resources exceeds a predetermined threshold.