3
$\begingroup$

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.

$\endgroup$
5
  • $\begingroup$ I assume you have already exhausted the links referenced on the Grid Computing "external link" section? $\endgroup$
    – Matt Wolf
    Jan 31, 2013 at 2:18
  • $\begingroup$ which "external link" section are you referring to? $\endgroup$
    – SRKX
    Jan 31, 2013 at 7:37
  • $\begingroup$ the one on the wiki page. By the way, would you mind sharing your findings on this page later on? I am also quite interested for very similar reasons that you stated. Thanks. $\endgroup$
    – Matt Wolf
    Jan 31, 2013 at 15:46
  • $\begingroup$ @Freddy actually I was not looking for a solution, more for an idea of the budget. $\endgroup$
    – SRKX
    Feb 1, 2013 at 9:27
  • $\begingroup$ well in regards to cost, I guess its impossible to answer, it entirely depends on your specific needs. What software services do you want to run on such HPC, matlab server grids, ....Also the top shelf Intel Xeon are priced between 1k-2k a piece. I guess you get the point just from those examples. The performance delivered between a 10k and 100k rig may be significant, building it and setting it up is almost an entirely identical process. That's just on the hardware side. $\endgroup$
    – Matt Wolf
    Feb 1, 2013 at 10:08

4 Answers 4

6
$\begingroup$

I can't really comment on the total cost of software as we've rolled our own grid in-house and just leased a big rack that's located in a server room. What you need to consider though is that if you intend to utilize your grid 24/7 it can become quite expensive to use external services such as Amazon and/ or rackspace.

We've done a few scenarios and found you're mostly better off leasing/ purchasing your own hardware - depending on where you're based depreciation reduces your taxable income so that's a consideration as well. Given our utilization of the grid, we found that we'd have to pay monthly to external providers what we're now paying annually for a lease (including the cost to power it). I think Amazon/ rackspace are OK if you have occasional, one-off jobs but become very expensive if you run (a large number of) jobs continuously.

As I said before we rolled our own grid which I think is preferable and doesn't take too long to get to a working state. I heard good things about http://research.cs.wisc.edu/htcondor and it seems to cover your requirements but have no personal experience with it.

$\endgroup$
5
$\begingroup$

I would also recommend Amazon AWS

Using Amazon Elastic MapReduce you can schedule jobs, deploy them on as many servers as you like and consolidate the results of your tests.

Their pricing is very reasonable (starting at $0.020 per hour!)

We use Amazon AWS quite a lot for our own Algorithmic Trading Framework AlgoTrader.

$\endgroup$
2
  • 2
    $\begingroup$ Thanks for the answer. I removed the text about algo trader, because it's not related to the answer. I'll leave the link to your company which seems to be enough. $\endgroup$
    – SRKX
    Jun 12, 2013 at 12:35
  • $\begingroup$ Hi SRKX, sure that is fine, thanks. Yes, I do work for AlgoTrader $\endgroup$
    – Andy Flury
    Jun 12, 2013 at 12:51
4
$\begingroup$

Consider constructing some VMs, and letting the tasks involve starting the VM and running the task on that. This should clear up the trickiest part, scheduling jobs to run on the right machine with the right requirements, as you'd build VM images with all the needed pieces installed, and it wouldn't depend on which machine was requesting the job.

If you do decide to switch to 'cloud' solutions, or add some hardware to take some load, the VMs will be easy to put wherever, so it scales nicely.

There is free VM software around (e.g. VirtualBox), so that would be free.

Dedicated hardware is by far the simpler solution; you have more control and you can install all the necessary software. If you do go down that route, get an SSD for Windows to speed up the page file (or switch off the page file), and a separate SSD or RAID array for data so they don't die together. I would guess at £7k for a 16C machine. This would evade any need for complex queueing and querying, and will be more reliable without a network to worry about.

The main point of grid software I've used has been to balance the needs of multiple users, and ensure the right environment is set up on the target node. But in heterogeneous Windows-based environments which can't be altered and without any contention, I can't really see much benefit in costly grid software.

$\endgroup$
3
$\begingroup$

Take a look at the following, it does not indicate cost but I found it an interesting starting point into estimating the cost (whether you can implement open-source components or have to go completely proprietary):

by the way have you considered cloud grids as an alternative, I have played with the Amazon grids and was pleasantly surprised. On the other side, MS's Azure was a huge turn-off because of its complication to set up instances and maintaining them.

Here some comparisons: http://www.ibm.com/developerworks/library/wa-cloudgrid/ and http://www.cloudscaling.com/blog/cloud-computing/grid-cloud-hpc-whats-the-diff/

While the following does not give you pricing information either but it is a service provider who offers the underlying grid engine:

http://www.univa.com/products/grid-engine.php?_kk=computational%20grid&_kt=841ea12a-5cf9-46f7-ab79-7b06c294baf2&gclid=CLam1sHFkbUCFQcipQod3gsASw

and an interesting paper, though its a bit dated:

http://s-space.snu.ac.kr/bitstream/10371/6804/1/A%20Pricing%20Information%20Service%20for%20Grid%20Computing.pdf

$\endgroup$
2
  • 2
    $\begingroup$ This is quant forum - I worked for numerous investment firms/hedge funds. I am not aware anyone in this sector deployed anything to the Cloud due to compliance and controls. $\endgroup$
    – user6935
    Jan 9, 2014 at 21:03
  • $\begingroup$ I am not suggesting the above are perused by any of the professional firms (as stated my post was supposed to be a starting point to get acquainted). But saying cloud computing and cloud storage is not utilized by banks and hedge funds is absolutely untrue. We are not talking about sensitive items such as email servers or algorithmic code repositories but there are a host of other applications that are stored on the cloud by a host of firms. One such example is an application repository where IT staff can download and install apps on users' machines. $\endgroup$
    – Matt Wolf
    Jan 10, 2014 at 0:18

Not the answer you're looking for? Browse other questions tagged or ask your own question.