Text this: Heuristic algorithms for optimization of task allocation and result distribution in peer-to-peer computing systems