Heuristic algorithms for optimizing computing and communication costs for networked computer utilities