It’s a bit unorthodox for us to bring you news from something happening on a social news site, but there’s been a great deal of buzz generated on Slashdot following a recent post in which a user wrote the following:
In about 2 weeks time I will be receiving everything necessary to build the largest x86_64-based supercomputer on the east coast of the U.S. (at least until someone takes the title away from us). It’s spec’ed to start with 1200 dual-socket six-core servers. We primarily do life-science/health/biology related tasks on our existing (fairly small) HPC. We intend to continue this usage, but to also open it up for new uses (energy comes to mind). Additionally, we’d like to lease access to recoup some of our costs. So, what’s the best Linux distro for something of this size and scale? Any that include a chargeback option/module? Additionally, due to cost contracts, we have to choose either InfiniBand or 10Gb Ethernet for the backend: which would Slashdot readers go with if they had to choose? Either way, all nodes will have four 1Gbps Ethernet ports. Finally, all nodes include only a basic onboard GPU. We intend to put powerful GPUs into the PCI-e slot and open up the new HPC for GPU related crunching. Any suggestions on the most powerful Linux friendly PCI-e GPU available?
Chances are, some, if not much, of this sounds rather unlikely to you (including, of course, the whole “largest supercomputer on the east coast” claim).
However, what’s most interesting here is not necessarily the question itself, but the extended conversation that this generated from members of the HPC user community. Many respondents (often prefacing their responses with a “this is an unlikely scenario but I’ll answer anyway” disclaimer) went far beyond merely poking holes in the soon-to-be supercomputer owner’s story (although there was plenty of hole poking) — and shed some light on real, practical opinions from HPC shops.
In the process of answering some of the user’s questions about which Linux distribution is best, whether InfiniBand or 10GbE was the proper choice, and what kind of performance benefits can be had with GPUs for a range of applications, and what cluster management solutions were the best, the HPC community inadvertently produced a compendium of first-hand insights about their own experience making purchase and use decisions at their centers or companies.
As you might imagine, comments like the following were not uncommon:
1) Something with 10gb really isn’t a “supercomputer” it is a cluster. Fine, but call it what it is. I really wouldn’t call a cluster with Infiniband a supercomputer either.
2) You really should maybe get someone who knows more about your project and someone who knows more about clusters/supercomputers. The questions you are asking are not ones I would want to see form the guy making the choices on a multimillion dollar project.
But many others provided some excellent real-world examples (or so we assume, this is the Internet) of their use of similarly-sized clusters. For instance, one user wrote:
Similar size setup in bio-informatics in Europe. We run redhat 6.1, was centos 5 and LSF. single 1gbit to each server (blades). No need for 10gb or IB unless huge mpi which no one uses. 32GB to 2TB per node – some people like enormous R datasets. All works well for our ~500 users.
Others weighed in with more specific answers about specific elements, including GPUs:
As for GPUs…be aware that the claimed performance for GPUs, especially in clusters, is virtually unattainable. You have to write code in their nasty domain-specific languages (CUDA or OpenCL for Nvidia, just OpenCL for AMD) and there isn’t really any concept of IPC baked in to the tools to allow for distributed operations. Furthermore, GPUs are also generally extroridnarly memory and memory bandwidth starved (remember, the speed comes from there being hundreds of processing elements on the card, all sharing the same memory and interface), so simply keeping them fed with data is challenging. GPGPU is also an unstable area in both relevant senses: the GPGPU software itself has a nasty tendency to hang the host when something goes wrong (which is extra fun in clusters without BMCs), and the platforms are changing at an alarming clip. AMD is somewhat worse in the “moving target” regard – they recently deprecated all 4000 series cards from being supported by GPGPU tools, and have abandoned their CTM, CAL, and Brook+ environments before settling on OpenCL, and only OpenCL.
The original author did decide to answer back with more details about why he was in such a predicament in the first place. The story that came forth was one of woe and struggle, indeed.
His response to the critics initiated some rather confident guesses about exactly what institution he was from — and who the “generous benefactor” might be.
…here’s the quick backstory behind my question(s): Our organization received a grant to pay for this from a private philanthropist that has a medical issue that is currently being researched by one of our labs (this happens to us not to infrequently). We have an existing HPC of roughly 300 nodes and 1200 cores that’s all 1Gbps connected and running Rocks 5.1. The grant money came in in two different payments. We used the first payment to buy the nodes (which are in route to arrive in 2 weeks or so). The second payment was going to pay for the GPU’s and the extra infrastructure (storage is one thing we currently have plenty of… both SAN and NAS). Unfortunately, we hit two issues: 1) one of our more seasoned enterprise admins took a new job at Apple’s new NC datacenter and 2) our cluster admin passed away from a heart attack about a week after the purchase was made. This put us into a bit of a holding pattern. We’re in the process of replacing both of them, but in the meantime we A) have the equipment arriving soon and B) have the second round of the grant money in hand now.
We’re smart enough to know that we lost two very valuable resources and we decided to step back, pause, and re-evaluate. The servers are already bought. The infrastructure, interconnects, and GPU’s are not. The old admin knew which GPU’s he wanted; unfortunately we haven’t found his research anywhere to know what and why. He had also planned to go with the latest release of Rocks, but only because he was very familiar with it. We know there are other options out there and we’ve no idea how well Rocks can scale. Additionally, I don’t see an option for chargeback with Rocks (at least not from a Google search), plus we’ve heard they recently lost a core developer. Thus, we went to the Slashdot community for advice. So I’ve already seen some good info on the IB versus 10GbE question and its much appreciated. We’re still looking for info on which Linux distro and which GPU to go for. We want to make the best decision we can and use the money as wisely as possible. But we also realize that we know what we don’t know and thought the Slashdot community could provide some experience to help us make the right decisions.
For anyone with the time and patience to read through almost 400 comments, well over half of which provide at least a useful morsel of information for someone trying to learn about what works and doesn’t for clusters around the world — it’s definitely worth a glance.