La respuesta depende de la naturaleza del trabajo que realizará su aplicación. Los diferentes tipos de trabajo tienen diferentes soluciones posibles de paralelización. Para algunos tipos, no existe una forma posible/factible de paralelizar.
El escenario más fácil que puedo pensar es para una aplicación cuyo trabajo se puede romper fácilmente en trozos de trabajo discretos. Si este es el caso, entonces simplemente diseñe su aplicación para trabajar en un solo pedazo de trabajo. Proporcione a su aplicación la capacidad de aceptar nuevos trabajos y entregar los trabajos terminados. Luego, construya un planificador de trabajo encima. Este planificador puede ser parte de la misma aplicación (configure una máquina para que sea el planificador y el resto como clientes) o una aplicación por separado.
Hay otras cosas a tener en cuenta: ¿Cómo se producirá la comunicación entre máquinas (archivos, conexiones de red?); la aplicación debe poder informar/solicitarse acerca del porcentaje del trabajo completado ?; hay una necesidad de poder forzar a la aplicación a dejar de procesar el trabajo actual ?; etc.).
Si necesita una respuesta más detallada, edite su pregunta e incluya detalles sobre la aplicación, el problema que resuelve la aplicación, la cantidad esperada de trabajos, etc. Luego, la comunidad vendrá con respuestas más específicas.
¿Puedes revelar lo que intentas lograr? ¿Ha considerado una base de datos o una indexación de texto completo para sus necesidades? – vmarquez
Se requieren detalles. Con solo tu pregunta, ¿debemos suponer que la paralelización fue para mejorar la velocidad de una sola carrera? También se puede considerar que simplemente está buscando realizar la misma operación en varias máquinas, lo que tiene una respuesta completamente diferente. – Klathzazt