Monday, September 6, 2010

How to talk High-Performance Computing

HPC, like most fields, has its own vocabulary.  It's close enough to general purpose programming that it almost seems like they're speaking the same language, unless you listen closer.  Here are a few tips to help you along the way:

  • The three most important parts of a supercomputer are cooling, the network, and packaging.
    • Cooling means cooling like everyone else uses it.  Without it the machine would only last a couple seconds at most.
    • The network means the network like everyone else uses it.  Here you connect a ridiculous number of endpoints in a relatively small space.
    • Packaging doesn't mean UPS and FedEx packaging.  Instead, packaging is the how the various chips, cooling, and memory are laid out on the board and "packaged" together.
  • More than one memory is memories.  Discontinguous or heterogeneous memory is also memories. It's not RAMs, though.
  • More than one source code is codes.  Benchmarks are also codes.
  • HPL, LINPACK, LAPACK, and ScaLAPACK are all benchmarks with various codes.  There are other benchmarks, but people rarely talk them.
  • Benchmark speeds are measured in FLOPs, which is floating-point operations per second.  There are gigaFLOPs and teraFLOPs.  petaFLOPs are next, which has something to do with animals.
  • Speaking of animals, supercomputers are supposed to have cool names like Jaguar and Kraken.    
  • Supercomputers can be built of nodes, but clusters are for wimps.  Instead use bladesbackplanes and cabinets.
  • HPF stands for High-Performance Fortran, but usually it's used as a swear word when you talk about software (HPF being one of the most public failures in the HPC language community).
  • On the other hand, Fortran is still cool, since it's what pretty much everyone still uses.
  • DARPA is a synonym for the mint.

1 comment:

  1. Jonathon.

    ASC codes are poorly architected and require massive, brute force computation due to their computational inefficiencies. Part of this is due to having been written in HPF or other legacy Fortran, with static task rollouts, and clumsy data partitioning.

    In my world, HPC is conducted on hybrid, heterogeneous clusters - looking nothing like tradtional datacenters - with adaptive topologies usu. connected by externally managed QDR IB. The "backplanes" are combinations micro-topologies of CPUs, FPGAs, GPUs, their myriad memories, IO hubs, HCAs, and various busses (i.e. PCIe 2.x, HT, QPI) - not just a recepticle for blades. The IO pipeline is striped.

    The names of these HPC devices are usually understated like "Dawning Nebulae" or "General Cluster" with "Kernel Klinq".

    Finally, DARPA seems a risk averse, orthodox centered bureaucracy that loads its funds into shotgun shells, shooting its wads in such a way that it couldn't hit the side of a barn - from the inside.

    That is just my opinion. Everyone is entitled to their own.