Speedup
Speedup is the increase in speed of a parallel application, relative to the sequential application.
A parallel application runs in much shorter times than a sequential one. Speedup is calculated as:
Speedup your application
Challenges reside in the application, it is the place to look for speedup.
When a set of tasks must be performed, speedup is obtained by division of labor.
Speedup is roughly proportional to the number of processors - the linear case, the red line
in the figure below, showing a graph of speedup against number of processors.
The parallelization goal is to approach as much as possible the linear case.
Success leads to the application optimal green line.
The badly sub-optimal blue line above, rapidly decays to an horizontal.
At most P1 processors are effectively used, wasting potential parallelism.
The application is starving and unable to enroll available computing power.
Application speedup enrolls P2 processors, increasing speed by an order of magnitude.
PCSpace Programming
PCSpace parallel programming exploits the whole potential parallelism
inherent in the application, or in a clever algorithm.
It offers several advantages:
- flexible redesign - in contrast to a parallel compiler, limited by existing code.
- appropriate size of tasks - sent for execution in parallel. One avoids
too large tasks - which cause idle processes to wait for the longest one -
and tiny tasks incurring communication overheads.
|