10

I am working on a machine learning project for which I need proper computational power. Assuming that my local university can't provide a server to run the code, I am looking for an online website which sells virtual servers for limited time — as in a month or less.

I heard that some companies provide free servers for students if they prove their status as students — but I failed to find anything with a search on Google. Is there anywhere which provides virtual high performance servers suitable for academic use?


One of the reasons I ask this question on Academia Stack Exchange is that most of the VPSs you can find on the net are more focused on the quality of bandwidth and connectivity, but I am just focused on CPU and Memory setting (I just need to run a Matlab or Octave program).

P.S.: This question is related to the subject matter at Server Fault and Super User, but those sites are almost completely focused on servers suitable for web-based applications. Also, they don't know about the opportunities provided for students for free or at low cost.

8
  • 1
    I'm in a similar situtation (If you are in australia I could almost tell you the precise organistations to talk to). Another place to check is if your university has a student computer club. Mine does and the severs they have a more powerful (and less utilied) than almost anything the univerity owns. Jun 11 '15 at 11:52
  • 2
    Assuming that my local university can't provide a server to run the codes, Why not? And why does it have to be your local university?
    – Sanchises
    Jun 11 '15 at 16:53
  • I've used the A2C2 cluster at my university (Arizona State University) - feel free to apply to them!
    – Ryan
    Jun 11 '15 at 16:55
  • 2
    Just to clarify - are you looking for a free or payed service?
    – Bitwise
    Jun 11 '15 at 17:35
  • 9
    This question is off-topic because (a) it is a shopping question, which is off-topic on Stack Exchange sites (they tend to quickly go out of date, and rarely admit one objectively correct answer), and (b) because its connection to Academia.SE seems dubious: you can't just take any question and add "for academic use" to the end and somehow automatically make it on-topic here; that's exactly the "boat programming" fallacy.
    – D.W.
    Jun 12 '15 at 8:16
17

In most countries, there exist high performance computers that researchers can apply for access to. For example, in Sweden there is the National Supercomputer Centre, and other countries have similar projects. When you get access, you get a limited number of core-hours (for example, if you have 5000 core hours, you can run 50 cores for 100 hours or 500 cores for 10 hours) to be used over a specific period of time (for example, one year).

To apply for access, you may have to go through someone who is employed at a university, if you aren't. If you are a student, you hopefully have a supervisor who can apply for your project. Or they might have special services for students!

8
  • Maybe things are different in Sweden, but I can't imagine a national supercomputer granting time to someone who hasn't proven their code on smaller university-level clusters. Just imagine all the users who would reserve 50 cores for a day and run serial code (it happens!).
    – user4512
    Jun 11 '15 at 14:00
  • In both the UK and Sweden I've been granted access to supercomputers without proving specific code — all I needed was an OK from my supervisor, on whose project I entered. I don't know how it would be if not working with a supervisor already known to the people managing the supercomputer, though. Your m̶i̶l̶e̶a̶g̶e̶ kilometrage may vary. (A single process on those computers normally runs on a single node with 16 cores, so not that powerful, really. I think access to more powerful nodes requires additional steps.)
    – gerrit
    Jun 11 '15 at 14:12
  • @ChrisWhite the university clusters are the SNIC ones (or rather, the universities provide their clusters through SNIC). In fact, my university (Stockholm University), doesn't have clusters that I am aware off, except what some individuals groups have purchased. The usage patterns are analised every year and taken into account for the next years allocation.
    – Davidmh
    Jun 11 '15 at 14:59
  • 1
    In the US, large-scale access to national-scale and some regional-scale resources is done through an application process that involves showing performance and scalability of the code(s) planned to be used. However, to my knowledge, all of these services offer a start-up award at a smaller scale (less time, short duration) to allow the proposing team to get their feet wet, measure their code, and provide the required performance numbers.
    – Bill Barth
    Jun 11 '15 at 15:04
  • @BillBarth Ok. But I hope and suspect that what CoderInNetwork is looking for is not large-scale by the standards of those supercomputers.
    – gerrit
    Jun 11 '15 at 15:47
7

Amazon provides cloud computing resources (in particular EC2 virtual machines) for free for the first year and, most likely, offers discounts for educational institutions and/or faculty/students.

In addition to Amazon's offerings, Microsoft provides attractive programs, based on their Azure platform and focused on educational sector. Some of the programs are free of charge (require application). You can get more detailed information on the relevant Azure for Education webpage.

P.S. Converted my Amazon comment to this answer due to addition of information on Azure.

6
  • 6
    The "free" tier on Amazon's AWS services won't give you any compute power that a normal desktop cannot – in fact, considerably worse. You get 750 CPU-hours per month with 1 GB of memory, which is worth $2.30 per month if you buy the time outright. In saying that, if you've got money, you can get a lot of CPU power from Amazon and use Matlab's distributed computing toolbox.
    – Moriarty
    Jun 11 '15 at 15:31
  • @Moriarty: I agree that AWS' free tier is low-power, but it still can be used for various non-demanding educational applications, from hosting a project's website or blog to light apps prototyping or such. For resource-intensive applications, one definitely would have to use paid tiers, which I have done for my dissertation research software (R, RStudio Server, LaTeX, etc.). I have also used AWS' Spot instances, which saved me money at the expense of occasional disruptions in hosting. It's a good idea to have a source code backed up to a free tier-powered VM for uninterrupted development. Jun 11 '15 at 15:53
  • 2
    thanks @AleksandrBlekh as you mentioned in comment its free servers are not good enough for heavy computations but I am willing to pay for their paid services if that helps.I should investigate their website through.
    – user35129
    Jun 11 '15 at 17:09
  • If you can parallelize your code it could be a good idea, but I would not go with Amazon; its interface is counter-intuitive and it can lead to nasty surprises in the billing. Heroku and another PaaS are better IMO. I dont know about Azure, though.
    – durum
    Jun 11 '15 at 17:37
  • 1
    @bduran Heroku is great, but more for building applications than doing science. If OP is comfortable with SSH/terminal usage (which he/she will probably be or need to be in order to use most of the alternatives mentioned here), I would say an unrestricted VPS (like Digital Ocean, mentioned in another answer) is better than a PaaS like Heroku (and others). Jun 11 '15 at 18:52
4

The Github Education Pack comes with 100$ free credit on DigitalOcean, which hosts virtual machines on the cloud.

1
  • 1
    I came here to post exactly this. While Amazon's AWS is the way to go if you are going for larger scale, or benchmarking, DigitalOcean is way leaner and simpler to set up, which will get you running in way less time. I used the 8GB instance for a few hours at a time to run machine learning experiments for my bachelor thesis. When I was not using it, I just took a snapshot and destroyed the instance, to make it stop running costs. The whole process cost me about five dollars, and I didn't restrict much my experiments. Jun 11 '15 at 18:48
2

If you're doing machine learning, I assume most of your compute time is coming from floating point calculations.

If this is the case, You could gain quite an increase in performance by using a GPGPU library like CUDA or Theano.

Amazon has GPU focused instances that you can use for GPGPU work

Amazon also has virtual HPC systems that probably fit your current use case.

2
  • GPGPUs might be of use if (and that is a big if) the problem is actually suited for them.
    – Nox
    Jun 11 '15 at 22:34
  • I agree GPGPU is not for every task, but my understanding is that many machine learning paradigms work with large sets of floating point values. Would you mind giving some example cases where general purpose CPUs handle a large amount of floats better than GPUs? Jun 12 '15 at 16:47
1

R-Systems will rent you time on their bare-metal HPC utility cluster for quite low prices. They charge by usage, rather than on a subscription basis.

1

This may turn out to be more work than you are willing to commit, but perhaps it is worth mentioning BOINC.

You can set up your computation task appropriately and have it run on computer time donated by volunteers who participate.

Ensuring that your code is compatible with this distributed model, and enticing volunteers to run your project, is of course a separate problem.

1

At this time of year (Summer) many universities have large undergraduate computer labs that are mainly empty and idle. If your project is recognised by your university then you may be able to get access to those computer labs officially sanctioned.

I did this at my institution one year and gained agreement to install a small program at boot time on every campus machine in a teaching lab and was able to gain access to an huge computing resource for free and generate results that surpassed even what those using a dedicated HPC had achieved.

It does take skill at negotiation and a demonstration of your competence to convince those who have control at campus level, but the results might be worth it.