Performance: What’s it For?
It almost seems like a silly question: what good is higher performance? The answer depends on the context. Supercomputers of course, are built for high performance, and are often built expressly to run application workloads that demand it. But what good is high performance on ordinary servers and desktops, and for what kinds of applications?
This is an important question for RapidMind, since we help developers squeeze every drop of performance out of all the processors in their computers. Fortunately, many applications need or want all the performance they can get.
Note the two general categories of performance requirements: “need” and “want.”
Some applications just need performance. They may have an absolute requirement, such as the need to meet a certain frame rate, to respond to real-time events within a certain latency, or to complete a financial analysis in time to close a trade. For these applications, “slow” is equivalent to “broken.”
Then there are the applications just that “want” performance, to a greater or lesser degree. There can be several reasons for this, but often this desire can be expressed as an improvement in efficiency. Obtaining higher performance on the same hardware translates into higher space and power efficiency. This can in turn can translate into performing the same computation on fewer machines or with less power, or to tackling larger or more accurate computations within a fixed space and power budget.
For the data center, a desire for efficiency is easy to understand. For the end consumer, improved power efficiency can mean better battery life for mobile devices, less heat, or a lower carbon footprint. On the other hand, some computations can also be scaled up; bigger databases can be searched, higher resolution images can be processed, deeper (and more accurate) financial models can be built and processed within the trading window.
Towards the softer end of the want/need spectrum are interactive applications, where performance improves the responsiveness of the user interface. Below a certain level, the user interface becomes unusable and non-interactive. Conversely, as performance is improved, new types of interactive applications become feasible. It is now becoming possible, for example, to deploy interactive applications that use real-time physics simulation, machine learning, or computer vision.
To put this in perspective, RapidMind has been able to achieve one or even two orders of magnitude improvements in performance, relative to applications written using traditional approaches on the same hardware. We also target multi-core devices, and processors are going to continue scaling up in performance following Moore’s law by adding more cores.
What can an additional two orders of magnitude do for the efficiency of existing applications, and what new applications will such radical improvements in performance enable? The answer is, improvements in performance will enable completely new kinds of interactive applications to be built.
