An interesting definition that I heard somewhere: Supercomputing is the act of turning
CPU-bound problems into
IO-bound ones and then solving them on appropriate, highly
parallel and IO-powerful
hardware.
What this means is that you need supercomputers mainly for problems such as physical and chemical simulations where each computation affects a lot of data, which implies that you need to move great amounts of data very quickly between the nodes. When this is not the case, you don't really need a supercomputer; a cluster of workstations, such as a Beowulf, will do.