Live data from Hacker News

First true exascale supercomputer?

top500.org

31–40 of 72 posts

Re: First true exascale supercomputer?

#31
post #5
post #4

Back in the 2010 timeframe, there were articles about how an Exascale Supercomputers might be impossible. Would be interesting if someone could go back and assess where those predictions were wrong and where they held, and how the architecture changed to get around those true scaling limits.

Power efficiency mostly. The power requirements of an exascale machine with 2010-timeframe hardware would be crazy.

Oak Ridge still consumes 20 megawatts. However older technology was appearing to require a gigawatt.

Re: First true exascale supercomputer?

#33
post #2

It feels like it's been a long time since supercomputers were interesting. They're just oodles of identical processors connected together like legos. "We can afford more bricks than the next guy" is not exciting. When was the last time we had a "fastest supercomputer" that could do something the second-fastest couldn't also do?

Not sure about exciting, but I'd think the technical challenges, particularly regarding intra-cluster communication, can be interesting to some. There's a lot of money in it, they better do something useful (more useful then running Linpack or calculating digits of Pi), rather then being just show cases.

Said that, #1 is about twice as fast as #2, which is about three times as fast as number #3. Those gaps are much wider then I would have expected this late in the game.

Re: First true exascale supercomputer?

#34
post #24

Earlier quoted context omitted.

What are the concerns for vendors?

US banned the sale of American HPC components to Chinese supercomputers. https://news.ycombinator.com/item?id=9349116 (2015, 93 comments) https://news.ycombinator.com/item?id=26740371 (2021, 151 comments) etc.

They also prevent Chinese supercomputing related companies having their chips fabbed in Taiwan.

Re: First true exascale supercomputer?

#36
post #27

Earlier quoted context omitted.

> They're just oodles of identical processors connected together like legos. That's the Cloud, not supercomputing. Supercomputing is all about interconnect.

I also wonder how the software side of things changes in those settings, how do people design program / algorithms around fast and wide data path like these.

I have a bit of experience programming for a highly-parallel supercomputer, specifically in my case an IBM BlueGene/Q. In that case, the answer is a lot of message passing (we used Open MPI [0]). Since the nodes are discrete and don't have any shared memory, you end up with something kinda reminiscent of the actor model as popularized by Erlang and co -- but in C for number-crunching performance.

That said, each of the nodes is itself composed of multiple cores with shared memory. So in cases where you really want to grind out performance, you actually end up using message passing to divvy up chunks of work, and then use classic pthreads to parallelize things further, with lower latency.

I forget the exact terminology used, but the parent is right that the interconnect is the "killer feature." To make that message passing fast, there's a lot of crazy topography to keep the number of hops down. The Q had nodes connected in a "torus" configuration to that end [1].

Debugging is a bit of a nightmare, though, since some bugs inevitably only come up once you have a large number of nodes running the algorithm in parallel. But you'll probably be in a mainframe-style time-sharing setup, so you may have to wait hours or more to rerun things.

This applies less to some of the newer supercomputers, which are more or less clusters of GPUs instead of clusters of CPUs. I imagine there's some commonality, but I haven't worked with any of them so I can't really say.

[0] https://www.open-mpi.org/

[1] https://www.scorec.rpi.edu/~shephard/FEP19/notes-2019/Introd...

Re: First true exascale supercomputer?

#39
This is exciting news! What's also exciting is that it's not just C++ that can run on this supercomputer; there is also good (currently unofficial) support for programming those GPUs from Julia, via the AMDGPU.jl library (note: I am the author/maintainer of this library). Some of our users have been able to run AMDGPU.jl's testsuite on the Crusher test system (which is an attached testing system with the same hardware configuration as Frontier), as well as their own domain-specific programs that use AMDGPU.jl.

What's nice about programming GPUs in Julia is that you can write code once and execute it on multiple kinds of GPUs, with excellent performance. The KernelAbstractions.jl library makes this possible for compute kernels by acting as a frontend to AMDGPU.jl, CUDA.jl, and soon Metal.jl and oneAPI.jl, allowing a single piece of code to be portable to AMD, NVIDIA, Intel, and Apple GPUs, and also CPUs. Similarly, the GPUArrays.jl library allows the same behavior for idiomatic array operations, and will automatically dispatch calls to BLAS, FFT, RNG, linear solver, and DNN vendor-provided libraries when appropriate.

I'm personally looking forward to helping researchers get their Julia code up and running on Frontier so that we can push scientific computing to the max!

Library link: https://github.com/JuliaGPU/AMDGPU.jl>

Post reply on HN