Nuestro grupo de trabajo produce una aplicación de escritorio que simula el rendimiento energético del edificio. Es una aplicación .NET y cuando el usuario ejecuta muchas simulaciones, puede llevar mucho tiempo. Las simulaciones son totalmente paralelizables, y tenemos algunos recursos informáticos de HPC muy significativos en "la oficina".
Una idea que hemos tenido es permitir que los usuarios descarguen simulaciones que sabemos que durarán mucho tiempo (mientras que cada simulación individual dura aproximadamente 30-120 segundos, ejecutar grandes cantidades de simulaciones podría llevar varios días). ¿Alguien ha hecho esto antes? Si es así, ¿usó alguna biblioteca para facilitar el trabajo? ¿Valió la pena el esfuerzo?
editado para agregar:
Las tareas individuales para descargar la simulación serían
- empaquetar un archivo (aproximadamente 5Mb),
- subiéndolo a nuestros servidores,
- descomponiendo el paquete en simulaciones individuales (cada una toma alrededor de 30-120 segundos y es totalmente paralelizable), la cantidad de simulaciones es una función de la cantidad de opciones seleccionadas por el usuario (aislamiento, orientación del edificio, etc.) y el peor caso de selección cada opción posible daría lugar a aproximadamente 1E50 simulaciones. Ejecutar simulaciones de 100 a ~ 1E5 no es desconocido, pero la mayoría de los usuarios ejecutarán menos de 10.
- reensamblar las simulaciones completadas y descargar el archivo ahora mucho más grande.
No estamos seguros de qué interfaz usar, ya que nuestro grupo es nuevo en esto, y con los recortes presupuestarios, podría completarse a tiempo, pero debe ser fácil de mantener para las próximas personas (si corresponde).
Esta aplicación ya usa .NET 4 y puede expandirse para usar todos los núcleos que tiene el usuario (nuestras máquinas de desarrollo tienen 8 núcleos).