Not one fast machine,many ordinary ones
High-performance computing is mostly the discipline of splitting a problem so that hundreds of unremarkable cores can work on it at once.
Single-core performance stopped improving quickly. Everything since has been about doing more at once.
In a cluster, interconnect latency and bandwidth decide performance more often than the processors do.
A floating-point operation is nearly free. Fetching the operand from memory, or another node, is not.
Shared memory,and message passing
Almost every parallel program is one of these, or both stacked together. The distinction decides what your code can assume.
Threads inside a machine share memory, so communication is free and correctness is hard. Ranks across machines share nothing, so correctness is easier and communication is the cost you spend the rest of your life optimising. Most real scientific codes do both: MPI between nodes, OpenMP inside each one, and increasingly a GPU underneath that.
Amdahl's lawis not negotiable
The serial fraction of your program sets a hard ceiling on speedup, no matter how many cores you add.
If five per cent of the runtime is inherently serial, twenty times is the best you can ever do — with a thousand cores or a million. In practice communication overhead makes it worse than that, and past some point adding ranks makes a job slower. Measure the scaling curve for your actual system before requesting a large allocation; the answer is frequently that you should be running more small jobs rather than one large one.
A queue,or a machine you rent
Classical HPC means a scheduler and a wait. There is a second shape now, and which one suits depends on what you are running.
Slurm, a queue, and a fair-share policy. Free at the point of use, and you pay in waiting.
Yours in about a minute, no queue, billed by the hour. Right when the job fits on one node.
Develop and debug on a rented machine, then take the working input to the cluster for the production run.
A shared cluster is the right answer for a job that genuinely needs hundreds of nodes and tight interconnect, and it is free at the point of use in most institutions — you pay in queue time. A rented machine is the right answer when the job fits on one node, when you need it now, or when you would otherwise spend a week waiting to find out that the input file was wrong.
Slurm isbeing built
The image and its definition are being verified. When they are done, it deploys by name like the rest.