Ответ зависит от характера работы, которую будет выполнять ваше приложение. Разные виды работ имеют разные возможные решения для распараллеливания. Для некоторых типов не существует возможного / выполнимого способа распараллеливания.
Самый простой сценарий, который я могу придумать, - это приложение, работа которого может быть легко разбита на отдельные фрагменты работы. Если это так, то вы просто проектируете свое приложение так, чтобы оно работало на одном блоке работы. Предоставьте вашему приложению возможность принимать новые вакансии и доставлять готовые работы. Затем создайте планировщик заданий поверх него. Этот планировщик может быть частью одного и того же приложения (настроить один компьютер как планировщик, а остальные как клиенты) или отдельное приложение.
Есть и другие вещи, которые следует учитывать: как будет происходить обмен данными между машинами (файлами? Сетевыми подключениями?); приложение должно иметь возможность сообщать / be_queried о проценте выполненной работы ?; существует необходимость заставить приложение прекратить выполнение текущей работы ?; и др.).
Если вам нужен более подробный ответ, отредактируйте свой вопрос и включите подробную информацию о приложении, проблеме, которую решает приложение, ожидаемом количестве рабочих мест и т. Д. Затем сообщество предоставит более конкретные ответы.