Ok, there's the "overlooked basic requirement" - that there are some tasks that can only be run a specified subset of computers.
Well, I have to go take a shower (TMI!), but in the meantime, can someone elaberate on this requirement. For example, are some tasks "pre-assigned" to a single computer or subset of computers?
Also, does this algorithm need to preserve state from run to run - in other words, does it need to support dynamically adding/removing tasks/computers - or does it simply have a set of data and it needs to come up with the optimal solution in a single run?
gg
[EDIT]
I just moved from Alpharetta to Canton, right above Woodstock....small world.