News for hackers. Stuff that matters.
Re:Supercomputers: Obama orders world's fastest computer by dekhn on Thursday July 30, 2015 @10:15AM (#9975072)
It looks like they are explicitly saying they want to make a machine that works for both types of HPC -- classic low-latency high-bandwidth internode communication (physics simulations) and modern Internet-driver high-bandwidth storage/node communications.

This is because the supercomputer community has long ignored the Internet-style of computation (MapReduce etc). But most of the new generation of scientists are adapting their codes to this new style, because dollar-for-dollar they can get more throughput than the classic style machines. Classic machines invest heavily in low-latency communication and typically require APIs like MPI to achieve it, while Internet HPC just uses well-designed TCP-based socket communications.

Building dual-design systems like this- especially when the community has little or no skill at building NG Internet HPC systems- is likely to produce a system that is good at few things.

Instead, build two systems. One is the largest (but not necessarily exaflop) you can afford and is a classic supercom[puter. Then, for the second, hire some datacenter designers from Google/Facebook and have them build a modern HPC cloud design.

The biologists will flock to the second one; they have long been underserved by the DOE supercomputing community.

Re:Supercomputers: Obama orders world's fastest computer by jandrewrogers on Thursday July 30, 2015 @02:35PM (#9977016)
It is important to not conflate "massively parallel" (HPC) and "massively distributed" (Internet-scale), they have different architectural requirements and solve different classes of problem. People with competency in either of these areas tend to overestimate their understanding of the other but they are not solving the same computer science problems even though they look similar on the surface.

Massively distributed systems do not get much benefit from low-latency interconnects. Massively parallel systems do, and in particular, it is a "throw hardware at the problem" kind of solution that helps cover for the fact that virtually no software designers can engineer efficient, non-trivial, massively parallel systems. MapReduce is a distributed model; outside of some trivial cases, it is a poor parallel model. And while the HPC community has a much better understanding of massive parallelism than the Internet-scale systems community, the HPC community largely doesn't grok massively distributed systems in the way that someone working on Google's infrastructure would.

I benefitted from having spent several years designing software for both HPC and Internet-scale systems. They are not fungible, and both communities grok things that the other is oblivious to. Even within the HPC community though, the number of people skilled at the design of massively parallel software systems is quite small, much smaller than people that know massively distributed systems.

You do not need two systems, you need one system and more people that have figured out how to design massively parallel software -- the real problem. It is difficult to overstate just how rare this skill is even within the HPC community.

Re:Supercomputers: Obama orders world's fastest computer by Ryanb58 on Thursday July 30, 2015 @04:34PM (#9977852)
Agreed. I wrote my thoughts on it going distributed here:

https://news.ycombinator.com/item?id=9976957

Re:Supercomputers: Obama orders world's fastest computer by dekhn on Thursday July 30, 2015 @02:51PM (#9977112)
I don't really agree with your premise.
Re:Supercomputers: Obama orders world's fastest computer by sevensor on Thursday July 30, 2015 @11:48AM (#9975786)
> especially when the community has little or no skill at building NG Internet HPC systems

I would argue that the community of people who actually have the skills to take advantage of the interconnects in a classic HPC system is vanishingly small, and in consequence we've overbuilt them on an epic scale.

Allow me to vent. I had the good fortune to have a login on a "petascale" HPC system, and access to an allocation of hours.

The /scratch filesystem would fail weekly, which killed everybody's jobs. If you had a big run going when /scratch failed, you lost everything. Scratch failed so much because the models that were being used often did wildly inappropriate amounts of file IO --- debugging print statements, detailed intermediate calculations, excessively verbose output --- that worked all right in development but when run in parallel brought the filesystem to its knees.

Furthermore, the login nodes were almost unusably slow because of all the Python and Perl post-processing scripts running on them. This isn't even a matter of users being cheap with their hours --- post-processing would have been a tiny fraction of their allocations. Instead, it's that many of them gave no thought at all to how the post-processing might be structured and run through the batch scheduler, and saw no downside to abusing the login nodes for that purpose.

In conclusion, I can attest to at least one HPC system that was badly mismatched to its users' needs and level of sophistication, despite allocations of hours being awarded only to a small number of researchers from across the country through a highly competitive process. Building these things serves national and institutional pride far more than any utilitarian interest.

Re:Supercomputers: Obama orders world's fastest computer by dekhn on Thursday July 30, 2015 @11:50AM (#9975802)
You're describing an exceptionally poorly built and used system. That said, it's not inconsistent with what I've seen as well.

My claim is that the design of classic interconnects is a big waste of money, because only a few codes need it, yet the cost dominates (>50%) of the cluster. I've learned, from years of studying Google's papers, that there are better ways to build code that communicates, and those mechanisms are much easier to teach to scientists and computer scientists than MPI.

Re:Supercomputers: Obama orders world's fastest computer by rwallace on Thursday July 30, 2015 @12:08PM (#9975943)
That's true for many purposes, but is it true for physical simulations? Don't they need communication on every time step?
Re:Supercomputers: Obama orders world's fastest computer by dekhn on Thursday July 30, 2015 @12:13PM (#9975974)
I would say no.

Here is my argument: when I worked for DOE, everybody told me I had to run my MD simulations on a super computer using all the processors, and I would judged on my parallel efficiency. This meant using a code that used MPI to communicate at every (or every N) timesteps. I asked, instead, "Why not just run N independent simulations, and pool the results?" In this case, you run an M-thread simulation on each machine (where M = number of cores on the machine) with no internode communication at all except to read input files and write output files.

The short answer is, that approach works just fine, but the DOE supercomputer people won't let you run embarassingly parallel codes because they already spent money on the interconnect to run tightly coupled codes.

In reponse to this, I went to Google, built Exacycle (loosely coupled HPC) and published this well-cited paper: http://www.ncbi.nlm.nih.gov/pubmed/24345941 which in my opinion put the last nail in the coffin of DOE-style physics simulations for molecular dynamics.

That said, there are systems which are so large you can't practically simulate a single instance of the system on a single machine, so you have to partition. Simulating the ribosome is a nice example. However, simulating the ribosome currently provides no valuable scientific data except to tell us that we have major problems with our simulation systems (force field errors, missing QM, electrostatic approximations,e tc).

Re:Supercomputers: Obama orders world's fastest computer by rwallace on Thursday July 30, 2015 @03:41PM (#9977443)
Interesting! Would it be accurate to say that as the amount of computing power and memory per CPU has increased over the years, so also has the percentage of scientific problems where a single simulation instance will fit on a single CPU? Certainly if you can do so, it's more efficient (in both machine and human resources) to partition by one job per CPU.
Re:Supercomputers: Obama orders world's fastest computer by dekhn on Thursday July 30, 2015 @07:46PM (#9979036)
Yes, for example when I did my PhD work ~2001 with a T3E I could run a simulation of a duplex DNA in a box of water by running it in parallel. This was true both for memory and CPU reasons. It limited to me studying a single sequence at a time, or 2-3 which was the practical limit on the number of concurrent jobs. This used the well-balanced design of the T3E, which had a great MPI system.

Eventually it reached the point (~2007) where I could fit the whole simulation on a single 4-core Intel box with similar performance. Then, I ran one "task" per machine, and scaled to the number of available machines. This uses only inter-node communication, which goes over a hub or crossbar on the motherboard. Much faster.

Now, I can fit many copies of DNA on a single machine (one task per core). This is far and away the best, because each processor just accesses its own memory, greatly reducing motherboard traffic, so the problem is basically CPU-bound instead of communication bound (this also now applies to GPUs, such that single GPUs can run one large simulation within its own RAM and not have to spill data back and forth over the CPU/GPU communication path).

This moves the challenge to the IO subsystem- I generate so much simulation data that I need a fat MapReduce cluster to analyze the trajectories.

Re:Supercomputers: Obama orders world's fastest computer by markhahn on Thursday July 30, 2015 @10:38PM (#9979634)
none of this is news - what you're describing is really just strong scaling. and sure, most systems already have subsets of nodes set aside for post-simulation cleanup.
Re:Supercomputers: Obama orders world's fastest computer by dekhn on Friday July 31, 2015 @09:31AM (#9981603)
Here is the news: the Jupiter paper is now published. http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p183....

I'm not just describing strong scaling. I'm describing a cost-effective way to achieve it; that's what really matters.

Why have subsets of nodes for post-simulation cleanup? Why not just run that cleanup on the same nodes you used for simulation? Or other general nodes? Otherwise, you've got two sets of nodes which are used at lower utilization than they would normally be.

Re:Supercomputers: Obama orders world's fastest computer by pinewurst on Thursday July 30, 2015 @04:33PM (#9977847)
I know some people in the life sciences who were strongly encouraged to get Titan time. When they applied and presented ORNL with their embarrassingly parallel code, they were told to go away.
Re:Supercomputers: Obama orders world's fastest computer by dekhn on Thursday July 30, 2015 @07:49PM (#9979053)
yes, precisely my point. If I wanted to run BLAST by partitioning it to run embarassingly parallel, they wanted to me use mpiBLAST- but mpiBLAST isn't actually any better for any real-world workfload.

This is because 50% of the cost of the machine was the interconnect, and if they let those codes run, it means they wasted budget and will get less next time.

Until I hear that the funders/builders are spending the same amount of budget on machines that let biologists run embarrassingly parallel codes as they spend on TOP500 machines, it's not going to change.

Re:Supercomputers: Obama orders world's fastest computer by markhahn on Thursday July 30, 2015 @10:36PM (#9979623)
montecarlo-type simulations are fine in their niche. it's just asinine to claim you can do all science that way.
Re:Supercomputers: Obama orders world's fastest computer by lorenzhs on Thursday July 30, 2015 @12:03PM (#9975910)
I would argue that many of the failures you describe are due to a lack of libraries that can exploit these systems. You can't expect every biologist to be an expert in distributed computing. The HPC and algorithms communities failed to consider the users of these systems and happily tinkered in their academic niches. All the while, what was actually needed were easy to use libraries that allowed non-experts to benefit from the advances made. (Also, the algorithms community has lost interest in distributed memory computing).

The abuse of /scratch and the login nodes sounds like a classical mixture of not knowing, not caring, and limited time. That isn't something that has a technical solution.

Re:Supercomputers: Obama orders world's fastest computer by sevensor on Thursday July 30, 2015 @12:16PM (#9975998)
I completely agree. My point is, the workload was lots of jobs using 100 nodes or less and doing massive amounts of file IO, while the cluster was essentially designed to run very large physics simulations, one at a time. This was a cluster that didn't need to exist.
Re:Supercomputers: Obama orders world's fastest computer by pinewurst on Thursday July 30, 2015 @04:32PM (#9977828)
The problem you were seeing wasn't the supercomputer per se, it was the sheer awfulness of Lustre.
Re:Supercomputers: Obama orders world's fastest computer by khm on Thursday July 30, 2015 @02:18PM (#9976898)
Ah, a Cray. Buck up; there are better supercomputers.
Re:Supercomputers: Obama orders world's fastest computer by sevensor on Thursday July 30, 2015 @03:50PM (#9977520)
It was, in fact. How did you infer that?
Re:Supercomputers: Obama orders world's fastest computer by ams6110 on Thursday July 30, 2015 @09:26PM (#9979403)
/scratch on a Cray is (last I used one) is a Lustre filesystem. It is the only file storage available to the compute nodes, which have no local storage of their own. No spinning disk, no SSD. So if the code is written such that it makes frequent small writes (e.g. it's peppered with print statements), the lustre nodes get hammered by all the compute nodes and become the bottleneck and they will eventually fall over.
Re:Supercomputers: Obama orders world's fastest computer by sevensor on Friday July 31, 2015 @07:47AM (#9981167)
Interesting! This was exactly the case on the system I used. I didn't realize Cray was the only vendor who went the no-local-storage route.
Re:Supercomputers: Obama orders world's fastest computer by khm on Saturday August 01, 2015 @11:39PM (#9989649)
They're not. They're just the only ones who insist on doing it with a filesystem that can't handle the load.

The other problem is that their interconnect is relatively fragile. It's comparatively easy to crash the entire network, at which time your filesystem goes away and processing stops.

But thanks to Lustre, even when it's good, it's bad.

Re:Supercomputers: Obama orders world's fastest computer by eitally on Thursday July 30, 2015 @10:39AM (#9975248)
And it's not like there isn't precedent. I remember a couple years ago when Google showed off gene mapping at I/O (Urs' demo to visualize how easy it was to scale GCP From 1 to 10 to 1000 to 100000 cores), and now they've partnered with the Broad Institute to apply this more generally.

http://www.broadinstitute.org/google

Re:Supercomputers: Obama orders world's fastest computer by dekhn on Thursday July 30, 2015 @11:18AM (#9975561)
I was the person on stage with Urs who ran the demo (I'm a computational biologist who went to Google to help them build this kind of infrastructure, because DOE wasn't doing it). Read more about the demo here: https://cloud.google.com/compute/io

I also helped create the original idea for the Broad collaboration. It was pretty obvious that standard HPC was a waste of money and not designed for high throughput biology, while Google published numerous papers (MapReduce, GFS, Bigtable) that demonstrated they were building infrastructure that was perfect for a wide range of computational biology programs.

Re:Supercomputers: Obama orders world's fastest computer by lorenzhs on Thursday July 30, 2015 @11:51AM (#9975811)
One of the largest challenges in building an exascale cluster is communication. Computing power increases at a higher rate than memory throughput does, and memory throughput increases faster than communication infrastructure advances.

Many argue that an exascale computer can only be cost efficient if the communication capabilities scale highly sublinearly with the computation done in the subsystems [1]. In particular, you can't move the data, and new algorithms are needed that can deal with data that is arbitrarily distributed. This is quite challenging and unfortunately the theoretical computer science community seems to have decided that distributed memory algorithms have been covered since the 90s and are not worth their time. Yet they ignore the progress that has been made in other models of computation since, and many algorithmic improvements of the last decades are not applicable. It is high time to develop communication-efficient algorithms for the basic "toolbox".

I guess what I'm trying to say is that you can't just throw MapReduce at an Exascale machine and expect it to perform well. Instead, you need an environment that is rich in primitives that have been implemented in a communication-efficient way. It's faster and cheaper to spend a little more effort on local communication if that allows for reduced communication volume (and/or the number of connections that need to be established!).

The issue I have with the MapReduce approach is that it doesn't particularly care about data locality. Thus it is very hard to achieve communication volume sublinear in the input size, which is absolutely deadly in an exascale setting.

I also understand the frustration with MPI, it is a very low-level API focused on data movement. It can be rather frustrating to use, but there do exist tools to make it more fun (Boost.MPI with C++11/14 is an excellent example). That said, with a well-engineered set of algorithmic tools, ideally you wouldn't need to use low-level MPI calls at all. However, MPI still remains a useful tool to implement these things.

Exascale computing requires us to rethink a lot of things.

[1] http://www.ipdps.org/ipdps2013/SBorkar_IPDPS_May_2013.pdf Shekhar Borkar (Intel), Keynote presentation at the 2013 IEEE International Parallel & Distributed Processing Symposium

Re:Supercomputers: Obama orders world's fastest computer by dekhn on Thursday July 30, 2015 @12:17PM (#9976004)
You are incorrect saying MapReduce isn't locality aware. Hadoop supports machine, rack, row, and cluster locality scheduling.

Also, most modern Internet HPC systems dedicate a ton of design and equipment to having very high cross-sectional bandwidth, which enables the locality restrictions to be relaxed.

Re:Supercomputers: Obama orders world's fastest computer by lorenzhs on Thursday July 30, 2015 @04:35PM (#9977863)
Well my point exactly. That "ton of design and equipment" doesn't scale particularly well, as its cost grows highly super-linearly with the computing power. You need to reduce communication volume to be cost effective at exascale.
Re:Supercomputers: Obama orders world's fastest computer by dekhn on Thursday July 30, 2015 @07:53PM (#9979064)
This isn't true. You can build awesome high bandwidth clusters for extremely cheap. It takes an understanding of ethernet silicon and TCP implementations, but it can be done. Amazon for example recognized that superlinear cost scaling was killing their profits, and invested in building newer systems with better designs that solve these problems.

See also this paper http://research.google.com/pubs/pub36740.html

The main challenge is that because these are built with multistage routers, they have fairly high latency. So much of the effort in modern HPC systems used for Hadoopy workloads goes to latency hiding.

Re:Supercomputers: Obama orders world's fastest computer by lorenzhs on Friday July 31, 2015 @10:08AM (#9981820)
You say "awesome high bandwidth" but at 1 Gbit/s per node you're still a long way from an InfiniBand 4X FDR Interconnect (54 Gbit/s and sub-microsecond latency, significantly lower than your network ). As you write, these are built with multistage routers, which add even more latency. So in effect they have reduced (but still high) communication capabilities to keep costs manageable, just as I said.
Re:Supercomputers: Obama orders world's fastest computer by dekhn on Friday July 31, 2015 @05:04PM (#9984483)
1 Gbit/sec, if you look at the Jupiter paper, was the host speed in 2004. The Jupiter system works with 10G and 40G interfaces on the host.

What's important to recognize is you simply cannot buy Infiniband switches that let you contact a lot (10K+) of hosts together. The vendors won't sell you this, they won't do the R&D to make it, and it would cost infinite anyway.

This is a deliberate choice: for most Internet work, it's better to have really fat bisection bandwidth and non-blocking fabrics, and latency is ignored due to the high cost of building a crossbar that supports that with high radix.

Only if you have an algorithm that absolutely requires, and simply cannot be fixed, low latency, you are almost always better off building a cheaper, fatter fabric, and hiring engineers who know how to write applications that are latency tolerant.

Re:Supercomputers: Obama orders world's fastest computer by dekhn on Friday July 31, 2015 @09:31AM (#9981605)
here we go, the Jupiter paper is now published: http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p183....