So far, I have been performing computations either on my own computer, or using an in-house scheduler that basically chooses a one of the employees' available workstations to run tasks in the background.
As we are now performing more and more lengthy computations, our personal stations begin to be used all the times partially (or even entirely) by background computations.
Hence, I have been thinking about moving to a Grid Computing infrastructure. Let's say that I call each computation a task. Each task can:
- have different necesary packages available, for example:
- the MATLAB runtime
- the .Net Framework 4.5
- the MATLAB runtime and the .Net Framework 4.5)
- and so on...
- have a specific priority
- require different kind of resources, for example:
- several cores because the code of a specific task is well parallelized
- depend on the success of another task
- a task may require to be executed only after another task has completed, and only if that other task ran successfully
- a maximum duration so that we can detect and even stop a task which might have ended up in a infinite loop.
- time at which the task has to be executed
- or the time by which the task has to be completed
I want to have a software which will be fed with our tasks and their properties (listed in the bullet points above) and which will choose what to do with them using the resources available in the infrastructure.
Notice here that I never talked about how the grid is implemented. From a business point of view, this is not interesting. For example, I want my indicators to be computed in a task that should be completed every monday at 6am. I don't care whether it went on workstation 1 or 2 or on some server. I'm just talking about tasks with requirements having to be completed.
I would also like to be able to see what is going on during the execution:
- which tasks benefits from what resource
- since when a particular task started
- who scheduled the task
- and so on.
Now, I know that the infrastructure behind the software depends on the amount of resources we need to have.
But I was wondering how much such the software would cost by itself?
Or how much would such an infrastructure cost with a very small setup of 16 cores and a fair amount of memory (RAM)?
EDIT
Considering the answers that were given, my main focus was maybe unclear. I found a few different software that could possibly to what I want. I am trying to roughly estimate the cost for a small architecture of that kind. The products I found online do not provide pricing.
Essentially, I'm trying to determine whether it will cost something like USD 10k? 100k? 500k? or 1m?
That's about it.