The answer depends on the nature of the work that your application will do. Different types of work have different possible solutions for parallelization. For some types, there is no way / possible way to parallelize.
The simplest scenario I can come up with is an application whose work can easily be broken down into discrete pieces of work. If so, then you simply create an application to work in one workplace. Give your application the ability to accept new tasks and deliver finished tasks. Then create a task scheduler on top of it. This scheduler can be part of the same application (configure one computer as a scheduler and the rest as clients) or a separate application.
There are other questions: how will the communication between the machines (files ?, network connections?); should the application be able to report / be _queried about the percentage of work completed ?; Do you need to be able to make the application stop the current work ?; and etc.).
If you need a more detailed answer, edit your question and include information about the application, the problem that the application solves, the expected number of tasks, etc. Then the community will come with more specific answers.
vmarquez
source share