Can I buy remote MATLAB processing time?

glarrain picture glarrain · Jun 28, 2011 · Viewed 17.5k times · Source

I'm a regular user of Matlab. For a very CPU-intensive task, I need to keep my PC running for hours (or days) simulating stuff, which is a pain since I need to carry it around.

Do you know of a public website/company that allows a user to run a remote instance for as long as he wants to, and then charge the corresponding fee? I don't care where it is done, or how many cores are used or anything, I just want to run some .m files and then retrieve the output variables.

I don't think it is too difficult to implement but I just cannot find (I've googled a lot) someone to sell me this service. I know some universities have servers for this, but they are private.

Any help on this will be much appreciated.

Thanks, Germán

Answer

abcd picture abcd · Jun 28, 2011

You can try to get an account with MATLAB on the Teragrid, operated jointly by Cornell university and Purdue university. It is an NSF funded project and provides access to researchers (both academic and industrial) for free. You just need to fill out a request form and you should get an account setup in a day or two.

I have used the Teragrid for my projects and I am entirely satisfied with it. They have a good infrastructure with 64 servers w/ 8 cores each, for a total of 512 cores of processing power and 16 GB of RAM/server.

However, do note that you will have to change your workflow drastically and switch to writing distributed jobs instead of parallel (or serial jobs), which can be a pain in the initial days (if you're not used to it). They do have helpful resources for that.

Also important when working with shared resources is the concept of "wall time", which also directly relates to how long your job stays in the queue. Wall time is basically how long a single task takes to run. In order to set a sufficient wall time, you must be intricately familiar with your code's complexity (number of operations, etc) so that you don't under estimate the time required (tasks are terminated if they exceed wall time!). On the other hand, you don't want to be too lax and choose a high wall time, because then your job will stay longer in the queue. In other words, you can't just set a wall time of 7 days just to be safe, because the scheduler will make you wait till a resource can be freed for 7 days (once you access a core, it's yours and yours only), which is close to never.