Cray and Microsoft Bring Supercomputing to Azure
investors.cray.com
investors.cray.com
"Unlike most Azure compute resources, which are typically shared between customers, the Cray supercomputers will be dedicated resources. This suggests that Microsoft won't be offering a way of timesharing or temporarily borrowing a supercomputer. Rather, it's a way for existing supercomputer users to colocate their systems with Azure to get the lowest latency, highest bandwidth connection to Azure's computing capabilities rather than having to have them on premises."
Somewhat interestingly, this sounds like a bit like hybrid cloud except that it's hosted entirely in Azure datacenters rather than partially on-premises.
[1] https://arstechnica.com/gadgets/2017/10/cray-supercomputers-...
I am guessing that I'm not understanding something fully. I don't really see the benefit anymore, now that you can lease thousands of cores, petabytes of disk, and multiple terabytes of RAM.
What's the benefit? What am I missing? Google is none too helpful.
In scientific computing (usually where you see them), the primary workload is simulation/modeling of natural phenomena. The nature of this workload is that the more parallelism that is available, the bigger/more fine-grained a simulation can run, and hence the better it can approximate reality (as defined by the scientific models which are being simulated). Examples of this are fluid dynamics, multi-particle physics, molecular dynamics, etc.
The big push with these types of workloads is to be able to get efficient parallel performance at scale - so it isnt about just the # of cores, PB of disk or TB of DRAM, but whether the software and underlying hardware work well together at scale to exploit the available aggregate compute.
So the network matters, not just raw bandwidth but things like latency of remote memory access and the topology itself - for example, the Cray XCs going to Azure allow for a programming model (PGAS) that allows for large, scalable global memory views where a program can view the total memory of a set of nodes as a single address space. Underneath, the hardware and software work together to bound latency, do adaptive per-packet routing and ensure reliability - all at the level of 10s of thousands of nodes. In a real sense, the network is the (super)computer - the old Sun slogan.
Where else is this useful? Well, look at deep learning - the new hotness in parallel computing these days - they are all realizing that it's amazing to run on GPUs, but once you have large enough problems (which the big guys do), you end up having to figure out how to efficiency get a bunch of GPUs to efficiently communicate during data parallel training (that efficient parallelism thing). This happens to map to a relatively simple set of communication patterns (e.g. AllReduce) that is a small subset of the kinds that the HPC community has solved for - so it's interesting that many deep learning engineers are starting to see the value of things like RDMA and frameworks like MPI (Baidu, Uber, MSFT and Amazon for starters).
Interestingly though, the word supercomputing is being co-opted by the very companies that you're positioning as the alternative - the Google TPU Cloud is a specialized incarnation of a typical supercomputing architecture. Sundar Pichai refers to Google as being a 'supercomputer in your pocket'.
I really love the detailed and expansive responses that some questions generate. Hopefully, they are of interest to more than just myself. I've been retired since 2007, so it is living vicariously through you folks - as I absolutely don't have to make these choices anymore.
A part of me wants to take on some big project, just to get back into it. I actually miss working. Go figure?
Thanks!
No? Well, MPI applications that are sensitive to latency is one usecase where a "real" supercomputer can be useful.
http://icl.cs.utk.edu/hpcc/hpcc_results_lat_band.cgi
I do believe I get it. Now to find out what kind of applications are greatly benefited from this.
Thanks HN! You always make me dig in and learn new things!
Edit: It was "MPI latency" that led me to that result, by the way.
The common applications are scientific computing usually, here's a quick overview[1] of the kind of algorithms ran on supercomputers: PDEs, ODEs, FFTs, Sparse and Dense linear algebra, etc.
These are usually used for scientific applications like weather forecasting, where you need to know about the result on time (i.e. before the hurricane reaches the coast!)
I look forward to reading the book.
Certainly it's true that ethernet has stepped up the game in recent years, while at the same time IB has more or less become a single-vendor play. So it'll be interesting to see what the future holds.
Further, proprietary supercomputer networks have things like adaptive non-minimal routing, which enables efficient use of network topologies that are more affordable at scale, such as flattened butterfly, dragonfly etc. AFAIK neither IB nor ETH + IP-level ECMP support anything like that.
You can't beat economics and the public cloud market will grow to be much larger than the supercomputing market. This is similar to why supercomputers switched from bespoke processors to commidity x86.
AWS already has several instance types with 25Gbit ethernet, for instance: http://www.ec2instances.info/?cost_duration=monthly&reserved...
It will not be possible to replicate Ares - which is itself a moving target - for general workloads and still be competitive on price.
These include D64v3, Ds64v3, E64v3, Es64v3, and M128ms VMs.
Much appreciated.
It does lead me to one additional question - is the need for additional speed great enough to justify this? I don't know how much faster it would be and I tried Google and they are not even remotely helpful. I may just be using the wrong query phrases.
Yep. I did molecular dynamics simulations on the Titan supercomputer, and also tried some on Azure's cloud platform (using Infiniband). The results weren't even close.
My experience with HPC is fairly limited, compared to what I think you're discussing. In my case, it was things like blade servers which was a cost decision. We also didn't have the kind of connectivity and speeds that you have available today.
(I modeled traffic at rather deep/precise levels.)
So, if you have some experience numbers AND you have the free time, I'd love to learn more about the differences in the results? Were the benefits strictly time? If so, how much time are we talking about? If you had to personally pay the difference, which one would you select?
Thanks for giving me some of your time. I absolutely appreciate it.
(compute-chunk-time * latency * nchunks * ncomms) / n-nodes
obviously this oversimplifies things, but generally as an approximation, there you go.
then merge this in with your cost/time equation, and make the call.
Don't do this on HN please.
The cool thing here (hopefully) is that it makes it easy to have both: HPC/supercomputer for jobs that need that and cheaper/easier cloud resources for jobs that don't.
Think of it as a rack-sized GPU.
Book tip: https://www.amazon.com/Supermen-Seymour-Technical-Wizards-Su...
You can skip halfway. [0]https://www.youtube.com/watch?v=q5xvwPa3r7M
https://www.broadcom.com/applications/datacenter-networking/...
I usually have to spend a week or so to adapt our builds once we get a system upgrade. It's mostly to hack around weird Cray setups and because we dare to link C++ and Fortran code bases on GPU.
That kind of behavior really hurts the Cray name in my eyes. Microsoft should find a better partner.
https://www.reuters.com/article/us-allergan-patents/tech-ent...
Cray Research, from which Seymour departed long before, was acquired by SGI. When SGI cratered, the SGI and Cray _names_ were separately sold off. "Cray" was bought by Tera, a faltering supercomputer maker in Seattle, who adopted that name (sort of a HPC witness protection program thing). They're as much "Cray" as gadgets sold at Target are "Westinghouse".
SRC is a distant descendant of the 3rd corporate vehicle started by Seymour (Cray Research, Cray Computer, then SRC).
Possibly mis-copied link?