Hasta ahora, he estado realizando cálculos en mi propio ordenador o utilizando un programador interno que básicamente elige una de las estaciones de trabajo disponibles de los empleados para ejecutar tareas en segundo plano.
Como ahora realizamos cada vez más cálculos largos, nuestras estaciones personales empiezan a ser utilizadas todo el tiempo parcialmente (o incluso totalmente) por cálculos de fondo.
Por ello, he pensado en pasar a una infraestructura de Grid Computing. Digamos que llamo a cada cómputo un tarea . Cada tarea puede:
- tienen diferentes paquetes necesarios disponibles, por ejemplo:
- el tiempo de ejecución de MATLAB
- el .Net Framework 4.5
- el tiempo de ejecución de MATLAB y el .Net Framework 4.5)
- y así sucesivamente...
- tienen una prioridad específica
- requieren otro tipo de recursos, por ejemplo:
- varios núcleos porque el código de una tarea específica está bien paralelizado
- dependen del éxito de otra tarea
- una tarea puede requerir ser ejecutada sólo después de que otra tarea haya terminado, y sólo si esa otra tarea se ejecutó con éxito
- una duración máxima para poder detectar e incluso detener una tarea que podría haber terminado en un bucle infinito.
- hora a la que debe ejecutarse la tarea
- o el tiempo en el que debe completarse la tarea
Quiero tener un software que se alimente con nuestras tareas y sus propiedades (enumeradas en los puntos anteriores) y que elija qué hacer con ellas utilizando los recursos disponibles en la infraestructura.
Obsérvese que nunca he hablado de cómo se implementa la red. Desde el punto de vista empresarial, esto no es interesante. Por ejemplo, Quiero que mis indicadores se computen en una tarea que debe completarse cada lunes a las 6 de la mañana . No me importa si fue en la estación de trabajo 1 o 2 o en algún servidor. Sólo estoy hablando de tareas con requisitos que tienen que ser completados.
También me gustaría poder ver lo que ocurre durante la ejecución:
- qué tareas se benefician de qué recurso
- desde que se inició una determinada tarea
- que programó la tarea
- y así sucesivamente.
Ahora, sé que la infraestructura detrás del software depende de la cantidad de recursos que necesitemos tener.
Pero me preguntaba cuánto costaría ese software por sí mismo ?
¿O cuánto costaría una infraestructura de este tipo con una configuración muy pequeña de 16 núcleos y una buena cantidad de memoria (RAM)?
EDITAR
Teniendo en cuenta las respuestas que se dieron, mi enfoque principal quizás no fue claro. Encontré unos cuantos programas diferentes que posiblemente puedan servir para lo que quiero. Estoy tratando de estimar aproximadamente el costo de una pequeña arquitectura de ese tipo. Los productos que he encontrado en línea no proporcionan precios.
Esencialmente, estoy tratando de determinar si va a costar algo así como 10 mil dólares? 100k? 500k? o 1m?
Eso es todo.