У вас неправильный порядок действий. Надо было не решать абстрактную задачу путем распределенных вычислений, а потом искать куда бы ее можно применить. Правильный путь, хотя конечно это мое сугубо личное мнение, это при наличии реальной задачи - пытаться ускорить ее при помощи распределенных вычислений, если это конечно требуется и если это возможно. Потому как все задачи разные в плане требований к вычислительным ресурсам, памяти, возможности распараллеливания. И потому не возможно создать систему одинаково эффективную для них всех.