The last couple of years have seen cloud computing gradually build some legitimacy within the HPC world, but still the industry lies far behind enterprise IT in its willingness to outsource computational power. The most often touted reason for this is cost – but such a simple description hides a series of more interesting causes for the lukewarm relationship the HPC community has with public cloud providers. Here, we explore how things stand in 2018 – and more importantly, what the cloud vendors need to do if they want to make their services competitive with on-premise HPC.
Despite the huge volume of SaaS and PaaS solutions available within the cloud, the nature of HPC is such that vanilla IaaS servers and associated networking are likely to form the bulk of research computing cloud usage for the foreseeable future. The overheads of virtualisation have previously been cited as a good reason not to move into the cloud, but this argument holds water less and less as time goes on; both because researchers are generally willing to pay a (admittedly smaller) overhead to make use of containerisation, and because the actual overhead is decreasing as cloud vendors shift to custom, external silicon for managing their infrastructure. To address cases where the small remaining overhead is still too much, bare-metal infrastructure is starting to show up in the price lists of major clouds.
Without low-latency interconnects, cloud usage will be effectively impossible for massive MPI jobs typical of the most ambitious “grand challenge” research. Azure tries to fill the niche for providing this sort of hardware in the public cloud – at present they miss the mark due to high costs, though that is a problem which can be remedied easily given enough internal political will.
It is not a given that cloud providers must offer low-latency interconnects more widely, but if they make the business decision not to do so, they must recognise that there will always be a segment of the market which is closed to them. Rather than trying to bluff their way into the high-end HPC market, cloud vendors who choose to eschew the low-latency segment should focus on their genuine strength; the near-infinite scale they can offer for high-throughput workloads and cloudbursting of single-node applications.
Before we even reach the complexities of managing data once it is in the cloud, there are issues to be faced with getting it there, and eventually getting it back.
All three major cloud providers have set up very similar schemes for academic research customers which include discounted or free data egress; effectively, the costs for moving data out of the cloud are waived as long as they represent no more than 15% of the total bill for the institution. At the moment then, there is no obvious reason to favour one provider over the others on this front.
For industry users, data being held hostage as it grows in volume is less of a concern – the chain of ownership is much more straightforward, and as long as the company retains an account with the cloud provider, someone will be able to access the files (whether they are in a position to make decisions about data migration is another question…). Data produced by university researchers is more tricky in this regard – funding council rules are deliberately non-specific about what is actually required from researchers when they make a data management plan. The general consensus is that published data needs some level of discoverability and cataloguing; implementing a research data service in the cloud is likely to be far easier in the long-term than providing an on-premise solution, but requires a level of commitment to operational spending that many institutions would not be comfortable with. Cloud providers could certainly afford to make this easier.
The storage landscape within the cloud presents another complication, one which many HPC users will be far less prepared for than simply tuning their core-count and wall-clock times. Migrating data directly in and out of instance-attached block storage volumes via SSH might be the way to go for short, simple tasks – but any practical workflow with data persisting across jobs is going to need to make use of object storage.
While the mechanisms to interact with object storage are fairly simple for all three cloud providers, the breadth of options available when considering what to do next (stick with standard storage, have a tiered model with migration policies, external visibility, etc) could lead to a lot of analysis paralysis. For researchers who just want to run some jobs, storage is the first element of the cloud they will touch which is likely to provoke a strong desire to give in and go back to waiting for time on the local cluster.
For more demanding users, the problems only get worse – none of the built-in storage solutions available across the public cloud providers is going to be suitable for applications with high bandwidth requirements. Parallel file systems built on top of block storage are the obvious fix, but can quickly become expensive even without the licensing costs for a commercially supported solution. Managing high-performance storage on an individual level is going to require more heavyweight automation approaches than many HPC researchers will be used to deploying, and so local administrators could suddenly find themselves supporting not one, but dozens of questionably optimised Lustre installs.
A parallel file system appliance spun up by the cloud provider is the obvious solution here – just like database services and Hadoop clusters, the back-end of a performant file system should not need to be re-invented by every customer.
All major cloud providers have taken roughly the same approach to research computing, best summarised as “build it, and they will come”. Sadly for them, it hasn’t quite worked out that way. Much of the ecosystem associated with each public cloud is predicated on the fact that third-party software vendors can come along and offer a tool which manages, or sits on top of, the IaaS layer. These third parties then charge a small per-hour fee for use of the tool, which is billed alongside the regular cloud service charges. Alternatively, a monthly fee for support can be used where a per-instance charge does not scale appropriately.
These models both work pretty well for enterprise, but do not mesh well with scientific computing, which is typically funded by unpredictable capital investments – a researcher with a fixed pot of money needs to be really confident that your software is worth the cost if they are going to adding a further percentage on top of every core-hour charge they pay. More often, they will choose to cobble something together themselves. This duplication of effort is a false economy as far as the whole research community is concerned, but for individuals it can often appear to be the most efficient way forward.
Cloud providers could address the low-hanging fruit here by putting together their own performance-optimised instance images for HPC, based on (for example) a simple CentOS base and with their own tested performance tweaks pre-enabled, hyperthreading disabled, and perhaps some sensible default software stack such as OpenHPC. Doing this themselves, rather than relying on a company to find some way to monetise it, would give the user community confidence that their interests are actually being taken into consideration.
Funding, billing and cost management
Cloud prices are targeted at enterprise customers, where hardware utilisation below 20% is common. Active HPC sites tend to be in the 70-90% utilisation range, making on-demand cloud server pricing decidedly unattractive. In order to be cost-competitive with on-premise solutions, cloud HPC requires the use of pre-emptible instances and spot-pricing.
The upshot of this price sensitivity is that cloud vendors could be forgiven for finding the HPC community to be a bit of a nuisance; we demand expensive hardware in the form of low-latency interconnects and fancy accelerators… but aren’t willing to pay much of a premium for them. HPC is therefore unlikely to drive much innovation in cloud solutions – that is, until a big customer (think oil & gas, weather, or perhaps pharmaceuticals) negotiate a special deal and decide to take the leap. Dipping in a toe will not be enough (many companies are there already) – the move will have to include 100% of the application stack if the cloud providers hope to silence the naysayers. Once that happens, the lessons learned from the migration can filter out to the rest of the industry.
The challenges of funding an open-ended operational service out of largely capital-backed budgets are a barrier to wholesale adoption of the cloud by universities, though this is one which central government really ought to be the ones to address. Cloud vendors can certainly help matters – the subscription model taken by Azure is a good start, but needs to be rolled out to the other providers and explained much better to potential users.
Finally there is, perhaps, scope for these multi-billion dollar companies to accept some of the cost risk by allowing for hard caps on charges or refunds on a portion of pre-empted jobs, mirroring the way that hardware resellers are expected to cope with liquidated damage contract terms. Call it a charitable donation to science and they might even be able to write it off…
Cloud providers have a few ways to get out of the doldrums they currently find themselves in with regards to the HPC market.
Firstly, they should sanitise their sign-up process; AWS has this covered for the most part, but the Windows-feel of Azure is surely off-putting to hardcore technical users. GCP offers probably the most comfortable experience for this crowd, but desperately needs to do something about the fact that individuals trying to sign up for a personal account in the EU are warned that for tax reasons, the Google cloud is for business use only; I hate to think how many potential customers have been dissuaded from trying out the platform based on this alone.
Secondly, they need to find a way to be more open-handed with trial opportunities suitable for research computing. The standard free trials available for AWS, Azure and GCP are generous if you are an individual hosting a trove of cat pictures, but not so much when you are dealing with terabytes of data and hundreds of core-hours of usage. These trials are already done on the corporate level for target customers, but need to be expanded substantially.
As discussed earlier, the HPC software ecosystem in the cloud is somewhat more stunted than the providers might have hoped – an easy way around this is to provide a stepping-stone between generic enterprise resources and solutions with third-party support. An open framework of tools would allow the ecosystem to develop more readily, and with less risk to third-party vendors.
Training is an area where all three of the cloud providers discussed here put in a considerable effort already. This should be enough to get HPC system administration staff up to speed, but there is still the matter of the end-users – local training by the admin teams of an organisation will clearly play some part, but the cloud vendors would do well to offer more tailored, lightweight courses for those who need to be able to understand, but not necessarily manage, their infrastructure.
Finally, there is the matter of vendor lock-in – one of the major factors which dissuades larger organisations from committing to a particular supplier. Any time you see a large organisation throw their lot in with one of the big three, you can be sure that there have been some lengthy discussions on discounts. Not every customer can expect this treatment, but if vendors wish to inspire any sort of confidence in their customers, they need to make a convincing case that you will be staying long term because you want to, and not because you have to. Competitive costs and rapid innovation have been the story of the cloud so far, but the trend must continue apace if Google, Microsoft or Amazon wish to become leading brands in HPC.
Chris Downing – Principal Consultant