|[home] [introduction] [types] [applications] [future] [about]|
What are the real applications of parallelism?
The last part of this web page has been using a rather tenuous example that explains the types quite well but unfortunately doesn't show you the real life applications. One major thing parallelism is used for is breaking up algorithms and doing bits separately. Algorithms that utilise a reducing, divide-and-conquer approach produce several smaller problems. As these smaller problems arrive, they can be given to different parallel processors at the same time. An example is merge sort. An unordered list can be sorted by splitting a list in two then applying the same thing to each split part until a only one element remains in each list. Then it merges these small parts back inoto a sorted list. Obviously, each new part could be assigned to a new processor. On a single processor the number of operations taken is N log2 N where n is the size of the list.
Given as many processors as splits this becomes N operations. Obviously this is a substantial increase in efficiency especially for very large lists. Any divide and conquer type program will benefit from this approach.
Quite rarely, some adaptions to parallelism produce N operations in complexity. If you have a correctly sized matrix, you can get N operations.
Larger scale exercises are made possible by parallelism. A major example is weather forcasting. The world's weather systems are highly complex, impossible to model as a whole. But you can try to split it up into discrete systems. Small scale trends in a small system can be modelled quite easily, so if you split the weather up into small zones, assign a processor to each of these zones and process given data according to a model, you can feed back the data that will affect other zones and continue processing. You can thus obtain a model for the forcast. The smaller you split up the zones, the more processors you need and the more advanced integration you need. Thus to be more accurate the bigger parallel computer you need. The accuracy of our weather forcasts in the future depends greatly on parallel computers.