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.